Zitat:
Zitat von lebuek
wenn ich die Bedingung in die sql Abfrage packe - habe ich nicht mehr die Möglichkeit, einen Text anzuzeigen.
|
Und wieso nicht? echo oder print funktionieren doch.
Zitat:
Es sollte so funktionieren:
Solange anzahl > 0 wird der bestand jeweils um 1 minimiert
Wenn anzahl == 0 soll ein Text ausgegeben werden:
'color_gelb' nicht mehr verfügbar.
|
Falsche Reihenfolge. Du mußt erst fragen, ob anzahl > 0 ist und, falls nicht, den Text ausgeben.
Falls größer 0, dann das UPDATE.
Da das aber 2 Abfragen sind, die Zeit kosten, kann man das auch mit einer Abfrage erledigen und affected_rows auswerten:
Code:
UPDATE tabelle SET anzahl = anzahl -1 WHERE anzahl > 0
Ist anzahl größer 0, ist affected_rows = 1, sonst = 0.
Ungetestet (Tippfehler nicht ausgeschlossen):
PHP-Code:
$db = new mysqli($host, $user, $pass, $dbname);
$res = $db->query('UPDATE tabelle SET anzahl = anzahl -1 WHERE anzahl > 0');
if ($res->affected_rows > 0){
echo "Ware wird geliefert";
}else{
echo "Die gewünschte Farbe ist leider nicht mehr vorrätig.";
}
Hinweis:
da die
mysql Extension auf der Abschußliste steht, solltest Du die
mysqli Extension verwenden.
http://www.php.net/manual/en/class.mysqli.php
http://www.php.net/manual/en/mysqli.affected-rows.php