Hallo,
folgendes Szenario:
Geht um ne Art MArktplatz:
Person A und B klicken von ihren Rechnern beinahe Zeitgleich auf einen Posten den sie damit "sofort" kaufen.
Problem: Es kam nun öfter vor, dass beide Personen das Produkt bekommen haben!!! Weil Person B den Kaufquery noch ausführt bevor Person A beim delete angekommen ist um den Datensatz zu löschen. Ziemlicher Mist den ich da gerade erfahre![Frown](https://www.php-resource.de/forum/core/images/smilies/frown.gif)
Dann dachte ich mir:
Jener der schneller ist, trägt seine ID und den Posten in die DB ein, nur wenn meine ID in der DB steht, kann ich diesen dann auch kaufen und ist für Person B gesperrt. Denkst, denn wenn der Eintrag von Person A nicht schneller in der DB ist, als Person B am Check angelangt ist, ists dasselbe Resultat. Blöd!
Nun dachte ich mir:
Den eben beschriebenen Check in einer Schleife laufen lassen (so 100x)... Dann sollte es doch engültig möglich sein das "wirklich" nur einer den Posten bekommt?? Habe das noch nicht ausprobiert, aber denke theoretisch eine "sichere" Methode?
Ich brauche echt kreative Köpfe die mir eine Idee geben können, wie ich dieses Problem beheben kann ohne auf das "Ein Klick - Sofort kaufen" zu verzichten.
Nein ich will keine Auktion programmieren, sondern meinen Marktplatz meines Onlinegames sicher machen..... Is schon ne Art Bugusing dadurch entstanden:/
Wenn 100 Leute einen Posten wollen, bekommen meisten 3 das Produkt ins Lager .... Hoffe jemand kann mir einen Denkanstoss geben.
Danke ^^
Maikel
folgendes Szenario:
Geht um ne Art MArktplatz:
Person A und B klicken von ihren Rechnern beinahe Zeitgleich auf einen Posten den sie damit "sofort" kaufen.
Problem: Es kam nun öfter vor, dass beide Personen das Produkt bekommen haben!!! Weil Person B den Kaufquery noch ausführt bevor Person A beim delete angekommen ist um den Datensatz zu löschen. Ziemlicher Mist den ich da gerade erfahre
![Frown](https://www.php-resource.de/forum/core/images/smilies/frown.gif)
Dann dachte ich mir:
Jener der schneller ist, trägt seine ID und den Posten in die DB ein, nur wenn meine ID in der DB steht, kann ich diesen dann auch kaufen und ist für Person B gesperrt. Denkst, denn wenn der Eintrag von Person A nicht schneller in der DB ist, als Person B am Check angelangt ist, ists dasselbe Resultat. Blöd!
Nun dachte ich mir:
Den eben beschriebenen Check in einer Schleife laufen lassen (so 100x)... Dann sollte es doch engültig möglich sein das "wirklich" nur einer den Posten bekommt?? Habe das noch nicht ausprobiert, aber denke theoretisch eine "sichere" Methode?
Ich brauche echt kreative Köpfe die mir eine Idee geben können, wie ich dieses Problem beheben kann ohne auf das "Ein Klick - Sofort kaufen" zu verzichten.
Nein ich will keine Auktion programmieren, sondern meinen Marktplatz meines Onlinegames sicher machen..... Is schon ne Art Bugusing dadurch entstanden:/
Wenn 100 Leute einen Posten wollen, bekommen meisten 3 das Produkt ins Lager .... Hoffe jemand kann mir einen Denkanstoss geben.
Danke ^^
Maikel
Kommentar