Datenbankabfrage - Fehlermeldung beim nicht finden eines gesuchten Wertes

Hallo,

ich habe ein kleines Problem und komme nicht weiter.

Ich habe ein PHP Script, welches auf eine Datenbank-Tabelle zugreift und mir
dann einen Artikel sucht und die Daten hierzu ausgiebt.

Wenn der Benutzer eine Nummer eingibt, die nicht existriert, soll ausgegeben
werden "Artikel nicht gefunden" oder so was.

Es klappt auch soweit gut wenn der Artikel gefunden wird. Wenn der Artikel
nicht in der Datenbank ist, wird nur der Tabellenkopf aufgebaut und sonst
nichts.
Ich will aber vermeiden, dass der Tabellenkopf aufgebaut wird. Ich will
anstelle nur eine Fehlermeldung.

Wer kann mir sagen, was ich ändern muß, damit es funktioniert (das mit der
Fehlermeldung).

Hier mein Script:

<?PHP

$dbh = mysql_connect(<Server>, <User>, <Passwort>);
$query = "use preisauskunft";
if (!mysql_query($query, $dbh)) die("Datenbank existiert nicht.n");

$ergebnis = mysql_query("SELECT * FROM markenshop WHERE nummer=$artnr") or
die("Fehler bei der Ausführung der Abfrage: ".mysql_error());



echo("<table border='1' width='100%' cellspacing='0'>");
echo(" <tr>");
echo(" <td width='33%' align='center'
bgcolor='#C0C0C0'><b>Artikelnummer</b></td>");
echo(" <td width='33%' align='center'
bgcolor='#C0C0C0'><b>Bezeichnung</b></td>");
echo(" <td width='34%' align='center'
bgcolor='#C0C0C0'><b>Preis</b></td>");
echo(" </tr>");

while ($row2 = mysql_fetch_array($ergebnis)){
$nummer = $row2["nummer"];
$text = $row2["text"];
$M1 = $row2["menge1"];
$P1 = $row2["preis1"];
$M2 = $row2["menge2"];
$P2 = $row2["preis2"];
$M3 = $row2["menge3"];
$P3 = $row2["preis3"];



echo(" <tr>");
echo(" <td width='33%'>$nummer</td>");
echo(" <td width='33%'>$text</td>");
echo(" <td width='34%'>");
echo(" <table border='1' width='100%' cellspacing='0'>");
echo(" <tr>");
echo(" <td width='50%' align='center'>ab Stück</td>");
echo(" <td width='50%' align='center'>Preis</td>");
echo(" </tr>");
echo(" <tr>");
echo(" <td width='50%'>$M1</td>");
echo(" <td width='50%'>$P1 Euro</td>");
echo(" </tr>");
echo(" <tr>");
echo(" <td width='50%'>$M2</td>");
echo(" <td width='50%'>$P2 Euro</td>");
echo(" </tr>");
echo(" <tr>");
echo(" <td width='50%'>$M3</td>");
echo(" <td width='50%'>$P3 Euro</td>");
echo(" </tr>");
echo(" </table>");
echo(" </td>");
echo(" </tr>");

}
echo("</table>");
mysql_close();


?>
Daniel Reifenrath [ Mo, 02 Oktober 2006 19:39 ] [ ID #1485933 ]

Re: Datenbankabfrage - Fehlermeldung beim nicht finden eines gesuchtenWertes

Daniel Reifenrath schrieb:

> Wenn der Benutzer eine Nummer eingibt, die nicht existriert, soll ausgegeben
> werden "Artikel nicht gefunden" oder so was.

> Wer kann mir sagen, was ich �ndern mu�, damit es funktioniert (das mit der
> Fehlermeldung).

Du suchst mysql_num_rows().

> $dbh = mysql_connect(<Server>, <User>, <Passwort>);
> $query = "use preisauskunft";
> if (!mysql_query($query, $dbh)) die("Datenbank existiert nicht.n");

> $ergebnis = mysql_query("SELECT * FROM markenshop WHERE nummer=$artnr") or
> die("Fehler bei der Ausf�hrung der Abfrage: ".mysql_error());

if(mysql_num_rows() == 0) {
echo "<em>Keine Datensätze!</em>";
}

else {

> echo("<table border='1' width='100%' cellspacing='0'>");
> echo(" <tr>");
> echo(" <td width='33%' align='center'
> bgcolor='#C0C0C0'><b>Artikelnummer</b></td>");
> echo(" <td width='33%' align='center'
> bgcolor='#C0C0C0'><b>Bezeichnung</b></td>");
> echo(" <td width='34%' align='center'
> bgcolor='#C0C0C0'><b>Preis</b></td>");
> echo(" </tr>");

27.3. Trenne Aussehen und Inhalt
http://www.php-faq.de/q/q-stil-content-code.html

> while ($row2 = mysql_fetch_array($ergebnis)){
> $nummer = $row2["nummer"];
> $text = $row2["text"];
> $M1 = $row2["menge1"];
> $P1 = $row2["preis1"];
> $M2 = $row2["menge2"];
> $P2 = $row2["preis2"];
> $M3 = $row2["menge3"];
> $P3 = $row2["preis3"];

Was hast du für ein komisches Datenmodell? Das sieht stark danach aus,
als wenn das nicht normalisiert ist (3NF). Und das $row2 klingt schon
verdächtig nach einer rekursiven Abfrage.

> echo(" <tr>");
> echo(" <td width='33%'>$nummer</td>");
> echo(" <td width='33%'>$text</td>");
> echo(" <td width='34%'>");
> echo(" <table border='1' width='100%' cellspacing='0'>");
> echo(" <tr>");
> echo(" <td width='50%' align='center'>ab St�ck</td>");
> echo(" <td width='50%' align='center'>Preis</td>");
> echo(" </tr>");
> echo(" <tr>");
> echo(" <td width='50%'>$M1</td>");
> echo(" <td width='50%'>$P1 Euro</td>");
> echo(" </tr>");
> echo(" <tr>");
> echo(" <td width='50%'>$M2</td>");
> echo(" <td width='50%'>$P2 Euro</td>");
> echo(" </tr>");
> echo(" <tr>");
> echo(" <td width='50%'>$M3</td>");
> echo(" <td width='50%'>$P3 Euro</td>");
> echo(" </tr>");
> echo(" </table>");
> echo(" </td>");
> echo(" </tr>");
>
> }
> echo("</table>");

}

> mysql_close();
dafox [ Mo, 02 Oktober 2006 20:06 ] [ ID #1485934 ]
PHP » de.comp.lang.php.datenbanken » Datenbankabfrage - Fehlermeldung beim nicht finden eines gesuchten Wertes

Vorheriges Thema: remote mySQL Zugriff scheitert (PHP Version 4.3.10-16)
Nächstes Thema: [FAQ/2006-10-01] Loesungen fuer deine PHP-Probleme