spezielle Abfrage über mehrere Tabellen mit PHP
Bobby
- datenbank
0 suit1 Vinzenz Mai
Moin
Ich weiß nicht so recht wie ich mein Problem schildern soll.
zumindest komme ich einfach nicht weiter. Folgende Ausgangssituation:
ich habe 2 MySQL-Tabellen.
Tabelle "kat":
id name
1 Kategorie1
2 Kategorie2
Tabelle "artikel":
id name katid
1 Artikel1 1
2 Artikel2 1
3 Artikel4 2
4 Artikel5 2
Nun möchte ich mit einen SQL-Statement und PHP die Abfrage der Kategorien und der Artikel erledigen.
Am Ende soll ein Objekt (oder Array) mit folgender Struktur rauskommen:
$ergebnis[0][name]=>"Kategorie1"
[id]=>"1"
[artikel][0][name]=>"Artikel1"
[id]=>"1"
[1][name]=>"Artikel2"
[id]=>"2"
[1][name]=>"Kategorie2"
[id]=>"2"
[artikel][0][name]=>"Artikel4"
[id]=>"3"
[1][name]=>"Artikel5"
[id]=>"4"
ich möchte dieses Ergebnis unbedingt durch 1 Query erhalten. Leider blieben alle Versuche erfolglos. Das Ergebnis ist immer 1 Dimensional.
Wie bekomm ich das Ergebnis entsprechend des oben genannten Datenmusters mit 1 Query hin. Wo liegt mein Denkfehler?
Ich habe es versucht mit AS, mit LEFT JOIN, UNION. Nichts brachte das gewünschte Ergebnis.
Gruß Bobby
Wie bekomm ich das Ergebnis entsprechend des oben genannten Datenmusters mit 1 Query hin. Wo liegt mein Denkfehler?
garnicht - die mysql funktionen liefern keine mehrdimensionalen arrays - du musst dir in erster linie mit einer abfrage das holen was du brauchs (JOIN ist übrigens ein guter ansatz)
mit mysql_fetch_assoc() erhältst du dann ein assoziatives array, dies kannst du dann deinen wünschen gerecht verarbeiten
btw: ggf solltest du über dein wunsch array nochmal nachdenken, mir kommt das nicht recht logisch vor
Hallo Bobby,
Ich weiß nicht so recht wie ich mein Problem schildern soll.
ich möchte dieses Ergebnis unbedingt durch 1 Query erhalten. Leider blieben alle Versuche erfolglos. Das Ergebnis ist immer 1 Dimensional.
das Ergebnis einer Abfrage ist normalerweise eine Tabelle. Ein Tabelle ist typischerweise zweidimensional, die eine Dimension sind die Spalten, die andere sind die Zeilen. Es kann vorkommen, dass eine Abfrage keine Zeilen zurückliefert, dann ist das Ergebnis in der Tat "eindimensional".
Alles andere ist ein Problem der Verarbeitung des Ergebnisses in der API, bei Dir PHP. Ein Stichwort für Deine Suche wäre "Gruppenwechsel".
Freundliche Grüße
Vinzenz