Hallo,
habe eine Tabelle Bestellung mit
bestell_id, kunden_id, produkt_id, bestell_datumkommt mir ein wenig problematisch vor. kann man den nicht in einer bestellung mehrere produkte bestellen, bzw. das gleiche produkt mehrmals bestellen ? aber das alles hängt von deiner fachlichkeit ab, die ich nicht kenne.
Handelt sich um ein Abo System. D.h. die Bestellung wird vom Admin initiert und bei jeder Bestellung kann nur ein Produkt ausgeliefert werden. Da es aber passieren könnte, daß ein langjähriger Abo-Kunde schonmal ein gewähltes Produkt bekommen hat (auch der Admin ist nur ein Mensch ;-) ), muß ich für diesen Fall eine Alternative anbieten.
für jede Kunden_id
insert into Bestellung
(kunden_id, produkt_id, bestell_datum) values('$kunden_id','$produkt_id','$datum')das geht auch mit einer einzigen SQL anweisung, du musst nicht für jeden
einzelnen kunden, der das produkt noch nicht bekommen hat ein insert machen.
Wie würde so was aussehen? Wäre natürlich viel einfacher.
insert into Bestellung (kunden_id, produkt_id, bestell_datum) values ('$kunden_id[1]','$produkt_id','$datum'),('$kunden_id[2]','$produkt_id','$datum'), (etc)???
NEBENFRAGE: Datum: wenn ich das Datum an dem die Anweisung ausgeführt wurde ein speichern will wie lautet das bei MySql? CURRENT_DATE nimmt er ja nicht auch NOW und DATE werden nicht akzeptiert. Habe das so gelöst, daß ich $datum über PHP das heutige Datum zuweise -aber da gibt es doch sicherlich auch eine vernünftigere Lösung.
Aber wie kann ich das Splitten?
wenn du den kunden, die das produkt schon vorher hatten, ein anderes produkt zuordnen willst, dann musst du zuerst eine abfrage machen, die dir diese speziellen kunden als ergebnisliste zurück gibt. über die iterierst du in einer schleife, wählst dabei für jeden ein anderes produkt aus. wenn die schleife durch ist, gibtst du den anderen kunden, die das produkt noch nicht haben mit einer einzigen anweisung das ausgewählte produkt.
ALSO:
Select kunden_id from KUNDEN WHERE abo=bestellt
hier habe ich alle Kunden die für das ABO in Frage kommen
Select kunden_id from Bestellung where produkt_id=gewähltes_produkt_id
hier habe ich alle Kunden die das Produkt schon mal bekommen haben.
So weit bin ich ja gekommen, nur mir ist immer noch nicht klar, wie ich nun alle Kunden die das Produkt noch nicht bekommen haben aus der Menge der gesamt Kunden raus bekomme??