ich bin gerade an der entwicklung eines kleinen webshop-prototyps.
jedoch jetzt bei der auflistung der einzelnen, vom user ausgewählten elemente auf granit gestoßen.
der benutzer sieht sich das angebot an und wählt produkte per angabe der anzahl des jeweiligen erzeugnisses in einem textfeld aus. nach einem klick auf einen button soll die auswahl temporär gespeichert werden. erste frage: wie und wo spichern?
ich habe entweder an sessions (wobei hier nur eine begrenzte anzahl an bestellungen möglich ist) oder an temporäre speicherung in der DB gedacht.
der benutzer soll verständlicherweise auch mehrere produkte auf einmal bestellen können. frage zwei: wie auflisten und ausgeben?
letzteres bezieht sich auf die generierung der rechnung, die nach dem bestellvorgang eingeblendet wird.
ich weiß, dass mein problem nur schwer zu schildern ist, aber ich hoff’ mal, mich deutlich genug ausgedrückt zu haben.
thx schonmal
Ja genau du könntest eine Tabelle nach folgendem muster anlegen:
Tabelle: Markierte Ware:
Spalte: Benutzer (Integer, Account Nummer)
Spalte: Produkt (Interger, Nummer des Produkts)
Spalte: Anzahl (Integer, Stückzahl)
Spalte: ID (Primär Schlüssel, Einfach weil du einen haben musst)
Dabei ist Benutzer kein Primär Schlüssel weil ein benutzter ja mehrere Produkte auswählen kann (also mehrere einträge auf einen Anwender verweisen) und Produkt ist auch kein primär schlüssel weil ja ein Produkt auch von mehreren Anwendern ausgewählt werden kann.
So kannst du dann für jedes ausgewählte Produkt für jeden Benutzer einen eintrag erstellen.
Dein ansatz mit der Session ist Problematisch weil die auswahl verloren geht wenn er den Browser Schließt. Stört dich das aber nicht wäre das doch gar kein so schlechter ansatz, weil die Benutzer automatisch auseinandergehalten werden (da jeder eine Session erhält). Und die ausgeählten Produkte kannst du wieder über ihre nummer in die session eintragen:
[PHP]$_SESSION[2] = 4; // Produkt Nummer 2 wurde 4 mal bestellt
$_SESSION[46] = 1; // Produkt Nummer 46 wurde 1 mal bestellt[/PHP]
Ich hoffe es wird deutlich wie ich das alles meine.