kostenloser Webspace werbefrei: lima-city


mySQL Abfrage

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    f********r

    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.
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. SELECT * 
    FROM `produkt` p 
         LEFT JOIN `kategorie` k ON(p.id = k.parent_kat)


    ungetestet, sollte aber gehen

    mfg
  4. Autor dieses Themas

    f********r

    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
  5. 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.
  6. Autor dieses Themas

    f********r

    oke, dann werd ich mir da noch was überlegen :D

    danke vielmals ;D
  7. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!