So, ich leg gleich mal los
Ich will Kategorien als Unterkategorie einer anderen Kategorie definieren. Dazu hab ich eine extra Spalte in der Tabelle der Kategorien namens "kategorie".
Hat diese Spalte den Wert "none" gilt diese Kategorie als Hauptkategorie, andernfalls hat diese Spalte den Wert der ID der jeweiligen Unterkategorie.
Da ich nun aber evtl auch eine Unterkategorie einer Kategorie zuordnen will, die selber schon eine Unterkategorie ist, bekomme ich ein Probleme bei z.B. der Zählung der Beiträge einer Hauptkategorie, die selber Beiträge hat, aber auch mehrere Unterkategorien mit noch mehr Beiträgen, diese haben wiederum auch noch Unterkategorien mit Beiträgen.
Da ich aber nun nur bis zur jeweils einer Ebene drüberliegenden Kategorie weiss, welcher Oberkategorie diese angehört, die aber wiederrum auch einer Oberkategorie angehören kann, ergeben sich schnell Probleme bei den Abfragen, da ich, wenn ich mehr als zwei Ebenen haben will, jedesmal eine neue Datenbankabfrage starten muss, die ich coden muss.
Etwas anders dargestellt:
Ich könnte ja aber auch eine bestimmte Tiefe an Ebenen auf meinetwegen 5 festlegen und müsste dann jedesmal das ding eben bis auf eine Ebenentiefe von 5 Abfragen von Hand schreiben.
Nun zu der Frage ob das nicht vielleicht besser geht. Vielleicht will ich ja dann mal mehr als nur 5 Unterkategorien erstellen. Ich hab zwar jetzt kein Beispiel aber kann ja mal vorkommen, dass dieser Fall eintrifft
Eigentlich gehts mir bei der ganzen Sache nur um die Darstellung in nem Select, indem ich die Unterkategorien eingerückt unter deren Oberkategorien aufzähle
Zur besseren Erlärung vielleicht das angehängte Bild. Die Farben der Selects haben nichts mit der Stufe der Kategorie zu tun, dienen lediglich der Verdeutlichung, welchen Status die jeweiligen Kategorien haben (Grün = Aktiv, Rot = Inaktiv )
Ich hoffe, ich hab das ganze relativ klar dargestellt und freue mich auf Tipps
Ich will Kategorien als Unterkategorie einer anderen Kategorie definieren. Dazu hab ich eine extra Spalte in der Tabelle der Kategorien namens "kategorie".
Hat diese Spalte den Wert "none" gilt diese Kategorie als Hauptkategorie, andernfalls hat diese Spalte den Wert der ID der jeweiligen Unterkategorie.
Da ich nun aber evtl auch eine Unterkategorie einer Kategorie zuordnen will, die selber schon eine Unterkategorie ist, bekomme ich ein Probleme bei z.B. der Zählung der Beiträge einer Hauptkategorie, die selber Beiträge hat, aber auch mehrere Unterkategorien mit noch mehr Beiträgen, diese haben wiederum auch noch Unterkategorien mit Beiträgen.
Da ich aber nun nur bis zur jeweils einer Ebene drüberliegenden Kategorie weiss, welcher Oberkategorie diese angehört, die aber wiederrum auch einer Oberkategorie angehören kann, ergeben sich schnell Probleme bei den Abfragen, da ich, wenn ich mehr als zwei Ebenen haben will, jedesmal eine neue Datenbankabfrage starten muss, die ich coden muss.
Etwas anders dargestellt:
PHP:
$sql_ebene0 = mysql_query("SELECT ID,name,kategorie FROM die_kategorien WHERE kategorie = "none"",$conn);
while ($kateebene0 = mysql_fetch_assoc($sql_ebene0)) {
echo $katebene0["name"];
$sql_ebene1 = mysql_query("SELECT ID,name,kategorie FROM die_kategorien WHERE kategorie = '".$katebene0["kategorie"]."'",$conn);
while ($kateebene1 = mysql_fetch_assoc($sql_ebene0)) {
echo $katebene1["name"];
$sql_ebene2 = mysql_query(....
usw usw
}
}
Ich könnte ja aber auch eine bestimmte Tiefe an Ebenen auf meinetwegen 5 festlegen und müsste dann jedesmal das ding eben bis auf eine Ebenentiefe von 5 Abfragen von Hand schreiben.
Nun zu der Frage ob das nicht vielleicht besser geht. Vielleicht will ich ja dann mal mehr als nur 5 Unterkategorien erstellen. Ich hab zwar jetzt kein Beispiel aber kann ja mal vorkommen, dass dieser Fall eintrifft
Eigentlich gehts mir bei der ganzen Sache nur um die Darstellung in nem Select, indem ich die Unterkategorien eingerückt unter deren Oberkategorien aufzähle
Zur besseren Erlärung vielleicht das angehängte Bild. Die Farben der Selects haben nichts mit der Stufe der Kategorie zu tun, dienen lediglich der Verdeutlichung, welchen Status die jeweiligen Kategorien haben (Grün = Aktiv, Rot = Inaktiv )
Ich hoffe, ich hab das ganze relativ klar dargestellt und freue mich auf Tipps