überprüfen und dann dantensatz aktuallisieren

oliking

Grünschnabel
Hallo
Ich bin gerade dabei eine Art Auktionshaus für virtuelle Produkte zu erstellen.
Der User kann auch schon Produkte erstellen und seine eigenen Produkte wieder löschen.
Aber da ist noch das kleine Problem mit dem Kaufen.
Auf der seite1.php sieht der User die Angebotenen Artikel von anderen Usern jetzt klickt er auf kaufen und wird weitergeleitet zu seite2.php. Hier wird dann geprüft ob die Spalte ‘kauf‘ immer noch gleich ‘0’ist. Ist das nicht der Fall dann wird eine Fehlermeldung ausgegeben. Ist es der Fall dann bekommt der User nochmal eine kleine und kurze Übersicht des zu kaufenden Artikel und kann auf „kauf bestätigen“ klicken.
So und jetzt kommt auch das Problem
Jetzt wenn der User auf „Kauf bestätigen“ klickt soll noch einmal Überprüft werden ob die Spalte ‘Kauf‘ immer noch gleich ‘0‘ ist, ist das der Fall dann sollen die Spalten ‘kaufer‘, ‘kauferid‘, ‘kauf‘ Aktualisiert werden und anschließend soll der User weitergeleitet werden zu seite1.php?info=1. Ist das Aber nicht der Fall dann soll auf seite1.php?error=1 weitergeleitet werden.

Kann mir da jemand weiter helfen?
lg
Oliking
 
Ich weiß jetzt nicht was dein Problem mit JavaScript zu tun hat (Oder wo dort dein Problem liegt?), aber du solltest unbedingt Transaktionen verwenden, um auszuschließen, dass zwei Leute zeitgleich das gleiche Gebot abgeben. Dann bekommen beide die Erfolgsmeldung, aber nur der letzte steht in der Datenbank.
 
Ohne zu Wissen, welche Datenbank du verwendest, kann ich dir auch nicht helfen. Aber ich sehe nicht wo hier ein JavaScript Problem liegt.
 
Ich habe gedacht das man das Ganze mit JavaScript realisieren kann Deswegen ist es im Java Forum.
Ich benutze eine mysql Datenbank!
 
Das JavaScript läuft in deinem Fall im Browser des Kunden. Dort hat die Geschäftslogik nichts zu suchen.

Wenn du deine Abfrage z.B. in der Form schreibst

SQL:
UPDATE tabelle
SET kaufer='foo', kauferid=1337, kauf=1
WHERE produkt=49592
AND kauf=0/*WICHTIG*/

Dann hast du das Prüfen und das Update in einem. Jetzt kannst du mit PHP prüfen, ob eine oder keine Spalte geupdatet wurde. Im Falle von einer bekommt der Nutzer die Erfolgsmeldung, im Falle von keiner bekommt er die Fehlermeldung.
So werden in Datenbanken, die keine Transaktionen unterstützen eben solche implementiert. Man ließt eine Transaktionsnummer aus, die jedes mal erhöht wird. Wenn du jetzt ein Update machst, übergibst du die Nummer als WHERE Bedingung. Wenn das Update nichts geändert hat, weißt du, dass zwischenzeitlich jemand anderes die Transaktionsnummer erhöht hat und musst es noch mal versuchen (evtl. Nutzer fragen etc.). In deinem Fall entspricht das der Spalte "kauf", die entweder 0 oder 1 ist (nehme ich an).
 
Zurück