Datenbankabfrage - Fehlermeldung beim nicht finden eines gesuchten Wertes

Datenbankabfrage - Fehlermeldung beim nicht finden eines gesuchten Wertes

am 02.10.2006 19:39:30 von Daniel Reifenrath

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:


$dbh = mysql_connect(, , );
$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("

");
echo(" ");
echo(" ");
echo(" ");
echo(" ");
echo(" ");

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(" ");
echo(" ");
echo(" ");
echo(" ");
echo(" ");

}
echo("
bgcolor='#C0C0C0'>Artikelnummer bgcolor='#C0C0C0'>Bezeichnung bgcolor='#C0C0C0'>Preis
$nummer$text");
echo(" ");
echo(" ");
echo(" ");
echo(" ");
echo(" ");
echo(" ");
echo(" ");
echo(" ");
echo(" ");
echo(" ");
echo(" ");
echo(" ");
echo(" ");
echo(" ");
echo(" ");
echo(" ");
echo(" ");
echo("
ab StückPreis
$M1$P1 Euro
$M2$P2 Euro
$M3$P3 Euro
");
echo("
");
mysql_close();


?>

Re: Datenbankabfrage - Fehlermeldung beim nicht finden eines gesuchtenWertes

am 02.10.2006 20:06:05 von dafox

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(, , );
> $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 "Keine Datensätze!";
}

else {

> echo("

");
> echo(" ");
> echo(" ");
> echo(" ");
> echo(" ");
> echo(" ");

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(" ");
> echo(" ");
> echo(" ");
> echo(" ");
> echo(" ");
>
> }
> echo("
> bgcolor='#C0C0C0'>Artikelnummer > bgcolor='#C0C0C0'>Bezeichnung > bgcolor='#C0C0C0'>Preis
$nummer$text");
> echo(" ");
> echo(" ");
> echo(" ");
> echo(" ");
> echo(" ");
> echo(" ");
> echo(" ");
> echo(" ");
> echo(" ");
> echo(" ");
> echo(" ");
> echo(" ");
> echo(" ");
> echo(" ");
> echo(" ");
> echo(" ");
> echo(" ");
> echo("
ab St�ckPreis
$M1$P1 Euro
$M2$P2 Euro
$M3$P3 Euro
");
> echo("
");

}

> mysql_close();