Super!!!
funktioniert wunderbar, da wäre ich nie draufgekommen...
Werde mir gleich mal ein gutes Buch zu SQL besorgen, damit ich das irgendwann mal selber hinbekomme
danke nochmal
ich war ver2felt
Hallo,
finde euer Forum richtig super und lese regelmäßig die Postings, bei der Suche habe ich aber leider nichts gefunden, bei google leider auch nichts...
warenkorb:
cart_id produkt_id parent_id parent
1 12 123 parent
2 13 456 parent
3 14 456 child
4 15 456 childarray [0] => parent_id : 123
produkt_id : (12)array [1] => parent_id : 456
produkt_id : (13, 14, 15)mit MySQL ist dies recht einfach. Es gibt die Aggregatsfunktion GROUP_CONCAT
wobei die "parents" Pizzas sein werden und die "childs" Zutaten, wenn man noch nach child und parent innerhalb der arrays sortieren könnte,
die auch eine ORDER-BY-Klausel kennt.
wäre es genial, will aber eure zeit nicht zu arg in Anspruch nehmen...
Das recht einfache SQL-Statement soll also folgendes liefern:
Gib mir
für jede parent_id
die aufsteigend sortierte durch Komma getrennte Liste der produkt_ids
aus der Tabelle warenkorb
wobei es für jede
der parent_id
nur einen Datensatz geben soll.
SELECT -- Gib mir
parent_id, -- die parent_id
[link:http://dev.mysql.com/doc/refman/5.0/en/group-by-functions.html#function_group-concat@title=GROUP_CONCAT]( -- und die Liste der zugehörigen
[link:http://dev.mysql.com/doc/refman/5.0/en/cast-functions.html#function_cast@title=CAST](product_id AS CHAR) -- in Zeichenketten umgewandelten product_ids
ORDER BY product_id -- aufsteigend sortiert,
SEPARATOR ', ' -- durch Komma und Leerzeichen getrennt
) zutaten -- (gib der Spalte einen netten Namen=
FROM -- aus der Tabelle
warenkorb -- warenkorb
GROUP BY -- gruppiert nach (d.h. ein Wert je)
parent_id -- den verschiedenen Werten der parent_id,
ORDER BY -- aufsteigend sortiert nach
parent_id -- der parent_id
>
> liefert bei Deinen Daten folgendes Ergebnis:
>
> parent\_id zutaten
> --------- ----------
> 123 12
> 456 13, 14, 15
>
> [Dein zweiter Beitrag](https://forum.selfhtml.org/?t=180918&m=1196123) läßt mich vermuten, dass Du ein Anfänger in Sachen SQL bist. Das ist nichts Schlimmes: jeder hat einmal angefangen. SQL-Abfragen in Schleifen abzufeuern, ist meist keine gute Idee. Typischerweise will man in solchen Fällen einen JOIN verwenden. Statt über Schleifen diese id-Werte in Namen wie "Pizza Diavolo" und "Peperoni" oder "Salami" umzusetzen, solltest Du diese Namen aus den entsprechenden Tabellen nehmen.
>
> Zu Joins findest Du unter SELFHTML aktuell zwei Artikel, die Dir beim Einstieg helfen können:
>
> - [Einführung in Joins](http://aktuell.de.selfhtml.org/artikel/datenbanken/joins/)
> - [Fortgeschrittene Jointechniken](http://aktuell.de.selfhtml.org/artikel/datenbanken/fortgeschrittene-joins/)
>
>
> Freundliche Grüße
>
> Vinzenz