mySQL Abfrage
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
abfragen
abrufen
code
dank
datum
eintragen
einzelnen kategorien
feld
kategorie
leute
problem
produkt
set
sitz
suchen
tabelle
unterkategorie
update
zugewiesenen kategorie
zweiten tabelle
-
Hey Leute,
ich sitze vor nem Problem und schaffs nicht, es zu lösen =/
Ich hab 2 Tabellen, eine mit Produkten, in welcher in der Spalte "Kategorie" eben die ID der zugewiesenen Kategorie steht.
In der zweiten Tabelle habe ich die einzelnen Kategorien und Unterkategorien. Also hat jede Zeile ein "ID" und eine "Parent_Kat" Feld.
Nun muss ich ALLE Produkte abfragen, nur müssen alle in die Top-Kategorien angezeigt werden (also wo ID == Parent_Kat) - und hier beginnt mein Problem.
Ich hoffe ich hab mich so halbwegs verständlich ausgedrückt.
Schon mal danke im Vorhinein. -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
SELECT * FROM `produkt` p LEFT JOIN `kategorie` k ON(p.id = k.parent_kat)
ungetestet, sollte aber gehen
mfg -
funktionier leider nicht.
Wenn ich die Kategorie aus der Produkte Tabelle mit der Parent_Kat aus der Kategorien Tabelle vergleiche, sind alle Produkte aus den Unterkategorien eig keiner Kategorie zugewiesen.
Beispiel:
Produkte:
Produkt_A hat Kategorie 1
Produkt_B hat Kategorie 2
Produkt_C hat Karegorie 3
Kategorien:
Kategorie 1 hat Parent 1 //ist also eine "Top"-Kategorie
Kategorie 2 hat Parent 2
Kategorie 3 hat Parent 2 //Also Unterhategorie von 2
Wenn ich jtz die Kategorie von Produkt_C in den Parent_Kat Feldern aus der Kategorien Tabelle suche, wird ja (logischerweiße) keine passende gefunden, also bekomm ich auch kein brauchbares ergebniss zurück.
Ich hoffe du verstehst was ich meine xD -
Hallo freezinger,
das wirst Du mit SQL alleine nicht hinbekommen. Dazu brauchst Du eine Tabelle, die die Verknüpfung zwischen Kategorie und Top-Kategorie herstellt. Das kannst Du entweder mit einer zweiten Tabelle machen oder Du fügst in Deiner Kategorien Tabelle noch ein Top_Kat Feld hinzu.
Um die Tabelle bzw. das Feld zu füllen musst Du Dir erst eine Funktion programmieren, welche zu einer vorgegebenen Kategorie-ID die Top-Kategorie-ID sucht.
D.h. solange Parent_Kat nicht gleich ID ist musst Du "SELECT Parent_Kat FROM Kategorien WHERE ID=<aktuelle ID>" ausführen.
Dann musst Du den Wert in Die Tabelle eintragen. Also entweder "UPDATE Kategorien SET Top_Kat =<top Kategorie> WHERE ID=<Kategorie>"
oder "INSERT INTO kat_top(ID, ID_TOP) VALUES(<Kategorie>,<top Kategorei>)".
Dann kannst Du die gewünschten Daten einfach per Join abrufen. -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage