Ich will, dass Man zwischen verschiedenen Unterkategorien blättern kann. Dies habe ich schon hinbekommen, aber ich will, dass man in der aktuellen Kategorie bleibt. Die Kategorien und Unterkategorien sind in einer Tabelle abgespeichert. Hier mein MySQL-Code:
x ist hier die aktuelle Unterkategorie.
Bitte helft mir
Gerne - wenn du uns erklären könntest, wobei denn eigentlich …?
Schaut so aus, als ob du Kategorien und Unterkategorien nicht sonderlich optimal in der Db abgelegt hättest. Wenn das nur über zwei Ebenen gehen soll - dann schlage ich vor, du legst eine Spalte für Haupt- und eine für Unterkategorie an.
Wenn das ganze hingegen bis in beliebige Verschachtelungstiefen gehen können soll - dann würde ich dir Beschäftigung mit Nested Sets empfehlen.
ich habe 2 tabellen:
-eine mit den kategorien
-eine mit den unterkategorien
und ein eintrag in der mit den unterkategorien verweist auf eines der kategorie
außerdem habe ich noch eine, in der die eigentlichen beiträge stehen.
außerdem: ich will nicht unbedingt die ganze DB erneuern
Sorry, ich habe das Problem etwas unklar beschrieben.
Machen wir ein Beispiel:
Ich habe die Kategorien A und B und die Unterkategorien 1, 2, 3 und 4.
Die Unterkategorien 1 und 4 gehören zu A und die Unterkategorien 2 und 3 zu B.
Wenn ich jetzt die Unterkategorie 1 öffne, würde ich gerne auf einen Pfeil klicken können, um zur nächsten Unterkategorie der Kategorie zu springen. Die Unterkategorien sind mit einem Verweis auf eine Kategorie in einer Tabelle abgespeichert. Nun möchte ich wissen, wie man dies realisiert, d. h. wie man bestimmte Datensätze aus einer WHERE-Klausel ausschließt. Hier wären das die Unterkategorien, die nicht zu der aktuell ausgewählten Kategorie gehören.
Kann man das mit MySQL machen? Oder muss ich eine FOR-Schleife machen?
Hoffentlich kann mir jemand helfen.
is doch ganz einfach…
Bei der URI dieses Pfeiles hinterlegst du ganz einfach die Kategorie und die Unterkategorie:
index.php?cat=A&subcat=4
Oder dann so:
index.php?cat=A&subcat=1&next
Und dann machst du son kleines Script: SELECT * FROM unterkategorie WHERE uebergeordnet = ‘$_GET[“cat”]’ AND id > ‘$_GET[“subcat”]’ LIMIT 0,1
Dann überprüfst du mit mysql_num_rows(), ob da was gefunden wurde, ansonsten nimmst du dann so wider die erste: SELECT * FROM unterkategorie WHERE uebergeordnet = ‘$_GET[“cat”]’ ORDER BY id DESC LIMIT 0,1
Aber dann wird nur ein Wert zurückgeliefert, wenn der nächste Eintrag in der Tabelle zu der aktuellen Kategorie gehört. Ich suche den nächsten Eintrag in der Tabelle, der zu dier aktuellen Kategorie gehört und der könnte 10 Zeilen weiter sein.