EOF Überprufen
Sohail
- php
Hallo nochmal,
wie frage ich bei PHP ab, ob EOF erreicht ist?
ich habe so eine Anweisung in meinem Programm. Es ist aber immer TRUE, egal, ob EOF ist oder nicht:
$result = die Select Anweisung where Passwort='$Pass'
Danke im voraus.
Sohail
Hoi,
wie frage ich bei PHP ab, ob EOF erreicht ist?
ich habe so eine Anweisung in meinem Programm. Es ist aber immer TRUE, egal, ob EOF ist
oder nicht:
$result = die Select Anweisung where Passwort='$Pass'
Was soll das sein?
Gruesse,
CK
Hoi,
wie frage ich bei PHP ab, ob EOF erreicht ist?
EOF = End Of File
$result = die Select Anweisung where Passwort='$Pass'
und nicht End Of Result :)
wenn dein $result aus einer sql query kommt, was willst da mit EOF ?
ich glaub du willst wissen ob der query ein ergebniss liefert, bei mysql könntest mysql_num_rows($result) verwenden.
zb. if(mysql_num_rows($result)>0)
lg
Ludwig
Hallo Ludwig,
ich habe bisher mit ASP Programmiert. Bei PHP ist ziemlich alles anders. Da kann man einfach if RS.EOF=TRUE schreiben und die Sache ist aus der Welt. Bei PHP(My-SQL) soll ich die zurückgegebene rows abfragen? Habe ich richtig verstanden? Es sollte aber einen anderen Weg geben als diesen. Eine MySQL-Anweisung sollte auch ein Boolische wert haben?
Sohail
Hoi,
ich habe bisher mit ASP Programmiert. Bei PHP ist ziemlich alles anders. Da kann man
einfach if RS.EOF=TRUE schreiben und die Sache ist aus der Welt. Bei PHP(My-SQL) soll
ich die zurückgegebene rows abfragen? Habe ich richtig verstanden? Es sollte aber einen
anderen Weg geben als diesen. Eine MySQL-Anweisung sollte auch ein Boolische wert haben?
Es gibt in dem Sinne keine Boolschen Werte. Alles, was != 0 ist, ist true, lediglich 0 ist false. Das
wars. Einige PHP-Funktionen liefern auch explizit false zurueck, aber wenn du das ausgeben
laesst, wirst du feststellen, dass ist eigentlich nur ein 0-Wert.
Gruesse,
CK
Hallo Christian,
und was heisst das genau. Dass ich nicht ohne weiteres auf EOF eine Abfrage starten kann? Wie if ($result=true) oder ($result != false)
Was kann man sonst tun ohne dabei viele Umwege zu gehen?
Sohail
Hallo Christian,
und was heisst das genau. Dass ich nicht ohne weiteres auf EOF eine Abfrage starten kann? Wie if ($result=true) oder ($result != false)
verabschiede dich mal von EOF, das hat nicht das geringste mit Datenbanken zutun..
zu deiner eigentlichen frage:
$result=mysql_query("Select somefiled FROM thetable WHERE pass='$pass'");
if($result){
// query war erfolgreich
}else{
// query war NICHT erfolgreich
}
// ein Query kann auch erfolgreich sein, und KEIN ergebniss liefern, mysql_query liefert nur dann false, wenn du einen syntax fehler im SQL statement hast, oder es keine verbindung zur datenbank gibt.
Willst du jetzt aber wissen ob du eine passende zeile in der Datenbank gefunden hast verwendest am einfachsten mysql_num_rows($result);
wenn $result false ist, hilft dir zur leichteren fehlersuche vielleicht mysql_error() zb. $result=mysql_query($query) or die(mysql_error());
lg
Ludwig
Hallo Ludwig, hallo Christian,
ich danke euch erst mal. Ich werde mich heute Abend damit beschäftigen.
SOhail
Hallo,
und was heisst das genau. Dass ich nicht ohne weiteres auf EOF eine Abfrage starten kann?
Wie if ($result=true) oder ($result != false)
Warum denkst du nicht mal nach?
Wenn alle Werte ausser 0 true sind, dann kannst du jederzeit mit feof() abfragen, ob eine
_Datei_ am Ende angelangt ist. Das MySQL-Result solltest du, wie schon vorher
beschrieben, mit mysql_num_rows ueberpruefen, oder, noch besser, direkt bei der Query:
if(!($result = mysql_query("....")))
{
echo "Fehler: ".mysql_error()."<br />\n";
}
Was kann man sonst tun ohne dabei viele Umwege zu gehen?
s.o.
Gruesse,
CK