Problem:
Bei einem Shop kann ein Kunde (test_benutzer) bestellen. Dazu legt er
die Produkte im Warenkorb.
1 | DATENBANKTABELLE WARENKORB
|
2 | id produktid benutzer
|
3 | 1 47 test_benutzer
|
4 | 2 925 test_benutzer
|
5 | 3 12 einbenutzer
|
6 | DATENBANKTABELLE KATALOG
|
7 | id name verfügbar
|
8 | 47 Widerstand 1K 10
|
9 | 12 Kondensator 2pF 0
|
10 | 925 Fernseher 12
|
Dann kommt der Bestellprozess (bei nichtverfügbarkeit geblockt), der
Kunde gibt seine Daten an, diese werden in SESSIONS gespeichert.
Nun möchte ich, dass die folgenden Dinge passieren:
- in die Tabelle bestellungen werden die Daten eingegeben (gelöst).
- jedes Produkt, das er im Warenkorb hat, wird in der Tabelle Katalog 1
weniger verfügbar. (?)
$user ist definiert.
So würde ein herausfinden der Datensätze aussehen:
1 | $db=mysqli_connect("host","xxxxxxxx","xxxxxxxx");
|
2 | mysqli_set_charset($db,"utf8");
|
3 | mysqli_select_db($db,"shop");
|
4 | $sql = "SELECT * FROM warenkorb WHERE benutzer='$user'";
|
5 | $result = mysqli_query($db,$sql);
|
6 | while ($row = mysqli_fetch_assoc($result)){
|
7 | //mache was mit den Daten
|
8 | }
|
9 | mysqli_close($db);
|
Nur wie kann man die Verfügbarkeit für JEDES der Produkte im Warenkorb
von Benutzer $user um 1 dekriminieren?
Für 1 Produkt kann man das so machen, wobei ? die produktid aus der
Tabelle warenkorb ist.
1 | $sql="UPDATE katalog SET verfuegbarkeit=verfuegbarkeit-1 WHERE id=?"
|