Suche in DB - Wie "keine Treffer" abfangen ?

toboli

Erfahrenes Mitglied
Hallo,

ich möchte eine Datenbank durchsuchen lassen. Das haut auch alles hin.
Aber wie kann ich, falls die Suche keine Treffer ergibt, die mit z.B. "Keinen Treffer gefunden abfangen?

Hier mal der Code zum ausgeben der Ergebnisse

PHP:
<?php 
while($row = mysql_fetch_object($result)){ 
?>
<table width="300">
<tr>
<td>
<?=$row->fname?>
</td>
</tr>
</table>
<?php } ?>

Hoffe hier kann mir jemand weiterhelfen. Danke jetzt schon...
 
Indem du ie Abfrage in ein IF-Konstrukt einbettet, dass überprüft, ob mysql_num_rows != 0 ist. Sollte das nicht der Fall sein (else) kannst Du deine Fehlermeldung ausgeben.
 
Das ist mir jetzt nicht ganz klar mit der if Abfrage. Ich habe es jetzt mal so gemacht. allerdings erhalte ich dann gar keine Ergebnisse mehr

PHP:
<?php 
if (mysql_num_rows != 0) {
while($row = mysql_fetch_object($result)){ 
?>
<table width="300">
<tr>
<td>
<?=$row->fname?>
</td>
</tr>
</table>
<?php 
}
} else { 
?>
Keine Einträge
<?php
} 
?>

Könntest Du mir bitte evtl den Code posten ?
 
Na klar:
PHP:
$abfrage = "...dein SELECT-Statement...";
$ausgabe = mysql_query($abfrage);
$num = mysql_numrows($ausgabe);
if ($num > 0) {
   while ($row = mysql_fetch_object($ausgabe)) {
       ...hier kommt dann die Ausgabe mit Ergebnissen hin...
   }
else{
   ... hier kommt die Fehlermeldung hin wenn keine Ergebnisse ...
}
 
Kleiner Schreibfehler, das muss natürlich so lauten:
PHP:
$num = mysql_num_rows($ausgabe);

Für die Logik:
Du fragst alle betroffenen Tupel ab. -> [phpf]mysql_query[/phpf]
Dann zählst du diese. Dabei hast du ein Ergebnis, ob 0 oder n, ist egal. -> [phpf]mysql_num_rows[/phpf] (nur SELECT-Abfragen) || [phpf]mysql_affected_rows[/phpf] (Jegliche Abfragen)
 
Laut Referenz heißt die Funktion [phpf]mysql_num_rows[/phpf] und nicht [phpf]mysql_numrows[/phpf]. Nur weil es php duldet (wusste ich gar nicht), muss man aber nicht falsch benannte Funktionen benutzen, oder?

Nur weil der IE viel "Mist" mitmacht, muss ich doch jetzt nicht plötzlich schlampig programmieren, oder?
 
Danke für eure Hilfe, allerdings erhalte ich jetzt folgende Fehlermeldung:

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

Meine SELECT Abfrage lautet so:

$abfrage = mysql_query("SELECT * FROM $tab WHERE fname like '$wort'");
 
Dann gibts irgendeinen Fehler bei dem SELECT-Statement.
Mach mal folgendes:
PHP:
$abfrage = mysql_query("SELECT * FROM $tab WHERE fname like '$wort'") or die(mysql_error()) ;
So bekommst du die Fehlermeldung ausgegeben und weißt woran es liegt.
 
Zurück