tony: SQL: eigene Suchfunktion -> eigene Fehlermeldung

Hallo Leute,
ich lasse eine mySQL DB folgendermaßen durchsuchen:

$result = mysql_db_query ($db_name, "SELECT * FROM table WHERE name='$name'");

$name wird von einem Formular übergeben.

Sollte der gesuchte Name nicht vorkommen, will ich eine Fehlermeldung schreiben.
Wie geht das ??

ich hab schon
  if($result==null)
  if($result==false)
  if(!$result)
  if($result=="")
  ...

versucht, aber es klappt nicht :-(

Laut SQL-Manual wäre FALSE der Richtige Ausdruck. Damit überprüft man aber nur, ob der Query überhaupt ausgeührt werden konnte (z.B. ob die table existiert).
Wenn die Table existiert, aber kein Eintrag gefunden wurde ($result also leer ist), liefert es trotzdem TRUE.

Bin bald am verzweifeln, da die Lösung sicher recht einfach ist...

Hoffe es kann mir jemand helfen!!

bye,
tony

  1. Hi Tony,

    Ja, die Lösung ist in der Tat einfach:
    mysql_num_rows($result) liefert die die Anzahl der Spalten. Ist diese 0, wurde keine Spalte mit diesem Namen gefunden.

    MFG

    Philipp

    1. Hey Philipp

      1000 Dank - hat geklappt :-)

  2. $result = mysql_db_query ($db_name, "SELECT * FROM table WHERE name='$name'");

    $name wird von einem Formular übergeben.

    ..und Du prüfst sicherlich vorher, daß im Formular respektive $name kein Anführungszeichen eingetippt wird?

    Sollte der gesuchte Name nicht vorkommen, will ich eine Fehlermeldung schreiben.

    Laut SQL-Manual wäre FALSE der Richtige Ausdruck. Damit überprüft man aber nur, ob der Query überhaupt ausgeührt werden konnte (z.B. ob die table existiert).
    Wenn die Table existiert, aber kein Eintrag gefunden wurde ($result also leer ist), liefert es trotzdem TRUE.

    Nein, mysql_query() liefert entweder false, wenn die Abfrage schiefgegangen ist, oder das Ergebnis der Abfrage, aber niemals true.

    Ein leeres Ergebnis ist aber auch ein Ergebnis, kein Fehler. Informiere Dich doch mal in der PHP-Anleitung, wie man feststellt, wieviele Einträge eine Abfrage geliefert hat.

    Gruß,
      soenk.e