Datenbankabfrage Result prüfen
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
aktion
anfragen
anweisung
bedeuten
beitrag
ergebnis
fehler
folgende frage
mache
manual
obigen verweis
objekt
result
tip
unterschied
-
Hi,
ich bin neu in PHP, und habe folgende Frage:
Ich mache eine einfache Select-Abfrage an eine Datenbank. Nun möchte ich in PHP prüfen ob die Abfrage ein Ergebnis zurückliefert. Ist dies der Fall möchte ich das Ergebnis ausgeben, ansonsten den String "Nichts gefunden".
Kann mir jemand sagen wie das geht?
Danke,
manug9 -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Wenn Du mysql_query() verwendest, um die Anfrage abzusetzen, so kannst Du durch ein einfaches Überprüfen auf FALSE feststellen, ob sie fehlgeschlagen ist:
<? $result = mysql_query('SELECT [..]'); if(FALSE === $result) // weitere Aktion ?>
andernfalls werden die Datenbankeinträge geliefert:
<? $result = mysql_query('SELECT [..]'); if(FALSE === $result) { print('Nichts gefunden'); } else { while($row = mysql_fetch_assoc($result)) print_r($row); } ?>
=> http://de.php.net/manual/de/function.mysql-query.php
=> http://de.php.net/manual/de/function.mysql-fetch-assoc.php -
Was genau ist der Unterschied zwischen mysql_fetch_object und mysql_fetch_assoc ? Scheint irgendwie das gleiche zu sein, weil ich immer object verwende für sowas.
Und was genau hat das _r an dem print zu bedeuten ? -
ist nicht das gleiche.
Das eine gibt ein Array, das andere ein Objekt zurück. ;D
Les dir alles genau durch. -
Hi,
danke schonmal für die Tips. Aber bei mir funktionierts irgendwie nicht...
Folgenden Code habe ich:
$query = "SELECT name FROM suche WHERE name LIKE '$b%'"; $result = mysql_query($query) or die("Anfrage fehlgeschlagen: " . mysql_error()); if (FALSE === $result){ echo "Leider nichts gefunden!"; } else{ while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) { foreach ($line as $col_value) { echo $col_value; echo "<br>"; } } }
Warum geht das nicht? Er gibt mir wenn kein Treffer vorliegt einfach nicht "Nichts gefunden" aus...
EDIT:
Hab jetzt ne Lösung gefunden, die genau das macht was ich will:
if (mysql_num_rows($result) == 0){ echo "Leider nichts gefunden!"; } else{ ...
Ciao,
manug9
Beitrag geändert: 10.10.2007 10:25:49 von manug9 -
Warum geht das nicht? Er gibt mir wenn kein Treffer vorliegt einfach nicht "Nichts gefunden" aus...
Mein Fehler: mysql_query liefert als Rückgabewert FALSE wenn die Abfrage fehlgeschlagen ist. Wurden keine entsprechenden Datensätze gefunden, bedeutet das nicht zwingend dass ein Fehler aufgetreten ist^^
Ausserdem bewirkt [..]or die("Anfrage fehlgeschlagen: " . mysql_error()); dass bei einer fehlgeschlagenen Abfrage das Script mit dem obigen Verweis abgebrochen wird. Somit wird der erste Teil der if-Anweisung nie ausgeführt werden.
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage