Robert21: MySQL: liefert es ein Ergebnis?

Hi!

Wie kann ich überprüfen ob MySQL ein Ergebnis zurückliefert?

=>
$result = mysql_query("SELECT * FROM table WHERE id="2323");

wenn ich jetzt mysql_num_rows($result) nutze erhalte ich nen Fehler soferns kein Ergebnis gibt, ich möcht aber ne if-else-Konstruktion.

danke
Robert

  1. wenn ich jetzt mysql_num_rows($result) nutze erhalte ich nen Fehler soferns kein Ergebnis gibt, ich möcht aber ne if-else-Konstruktion.

    prüfe vorher, was $result liefert

    if (!$result) {  
      // fehlerbehandlung  
    } else {  
      mysql_num_rows($result);  
    }
    
  2. Hi,
    eigentlich dürftest Du keinen Fehler erhalten, sondern nur einen leeren Datensatz, und dann könntest Du überprüfen:

      
    $menge = mysql_num_rows($result);  
    if($menge > 0){  
        mache das  
    }else{  
        mache jenes  
    }  
    
    

    Gruß
    Tunnel85

    1. nö:

      Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in ...

      lg
      Robert

      1. nö:

        Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in ...

        lg
        Robert

        Das hört sich aber eher nach einem Fehler in deinem Select-Befehl an....

        Übernimm doch mal den Select-Befehl und gib in über phpMYAdmin ein, und schaue ob Du dann einen Fehler erhälst

        1. echo $begrüßung;

          Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in ...
          Das hört sich aber eher nach einem Fehler in deinem Select-Befehl an....

          Es gibt die Funktion mysql_error(), die in diesem Fall (konkret, wenn eine der mysql_*-Funktionen (außer *_fetch_*) ein false zurückgibt) den Fehlermeldungstext des MySQL-Servers bereitstellt.

          Übernimm doch mal den Select-Befehl und gib in über phpMYAdmin ein, und schaue ob Du dann einen Fehler erhälst

          Vorher sollte man sich das erzeugte Statement zur Kontrolle ausgeben lassen. Dazu ist es günstig, es zunächst in einer Variablen zusammenzubauen, und diese dann dem mysql_query() zu übergeben.

          P.s. erhalsen -> erhälst vs. erhalten -> erhältst

          echo "$verabschiedung $name";

    2. eigentlich dürftest Du keinen Fehler erhalten,

      richtig, darum ist es wichtig das ergebnis der abfrage zu prüfen ob dort nicht etwa ein fehler ist - in jedem schritt (verbindung, selektieren der datenbank, senden der abfrage, auswerten der abfrage) sollte auf fehler geprüft werden

  3. Hi!

    Aloha 'oe,

    Wie kann ich überprüfen ob MySQL ein Ergebnis zurückliefert?

    =>
    $result = mysql_query("SELECT * FROM table WHERE id="2323");

    Das Problem ist ein anderes. Schau dir nochmals an, wie du deine Anführungszeichen gesetzt hast und was das für Auswirkungen hat.

    Gruß, Volker

    --
    „I conclude that there are two ways of constructing a software design: One way is to make it so simple that there are obviously no deficiencies and the other way is to make it so complicated that there are no obvious deficiencies."
    - Tony Hoare