Sohail: EOF Überprufen

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

  1. Hoi,

    wie frage ich bei PHP ab, ob EOF erreicht ist?

    http://php.net/feof

    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

    1. Hoi,

      wie frage ich bei PHP ab, ob EOF erreicht ist?

      http://php.net/feof

      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

      1. 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

        1. 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

          1. 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

            1. 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

              1. Hallo Ludwig, hallo Christian,

                ich danke euch erst mal. Ich werde mich heute Abend damit beschäftigen.

                SOhail

            2. 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