Wo liegt das Problem bei diesem Update?

Hallo !

Ich hab folgendes MySQL-Statement definiert:

$abfrage = „update artikelstamm set bestand = bestand - 1 where artikelnummer = ‚$artnr‘ AND bestand > 0“;
$erg = mysql_db_query($dbname,$abfrage,$verbindung);
if ($erg > 0) {
echo „Ok, verbucht!“;
} else {
echo „Nicht mehr verfügbar!“;
}

Gedacht ist das so, dass nur dann das Update erfolgen soll, wenn der Bestand vorher noch mindestens 1 beträgt, also höchstens durch das Update auf den Minimalbestand von 0 geraten kann.
Das soll natürlich abgefragt werden und da eine nicht erfolgreiche Abfrage doch einen negativen Wert in $erg schreibt (?) sollte doch die Sache klappen.
Aber leider läuft er mir immer in das „Ok, verbucht“ rein.
Also, das Update wird korrekterweise auch nur dann ausgeführt, aber wie frage ich ab, „ob er’s getan hat oder nicht“ ?

Danke für Eure Hilfe!

Knud

Hi,

Das soll natürlich abgefragt werden und da eine nicht
erfolgreiche Abfrage doch einen negativen Wert in $erg
schreibt (?) sollte doch die Sache klappen.

Kleiner Denkfehler. Das SQL Statement an sich wurde sehr wohl erfolgreich ausgeführt. Es wurde zwar nix in die Table geschrieben (wegen der WHERE Bedingung), aber der Befehl als solcher war erfolgreich.

Also erst ein SELECT auf bestand und falls der gleich 0 ist, kein UPDATE Statement ausführen, sondern gleich „Nicht erfolgreich“ ausgeben.

Viel Spass

Harald