Funktion: cat*_left / cat*_right in Tabelle präfix_category
Posted: Sun Sep 16, 2007 1:28 am
Hi,
ist vielleicht etwas ungewöhnlich die Frage aber ich importiere gerade Daten aus meiner Datenbank und will nicht alle 54 Unterkategorien einer Oberkategorie per Hand erstellen und die 8.778 Einträge zu den Unterkategorien erst recht nicht.
Deshalb schreib ich mir ein Script dafür, nun hab ich ein Problem nämlich die Spalten category_left und category_right in der Tabelle [präfix]_category ich versteh die Funktionsweise nicht ganz 100%ig und will nicht das Script durchforsten. Ich muß einfach nur wissen wie ich diese beiden Spalten zählen und eintragen muß.
Ich hab schon bemerkt das dabei dann auch die Oberkategorie eine Rolle spielt. Also ich denk mir das so... Bsp.:
Denke ich jetzt richtig das wenn ich die Kategorien '21' - '75' als Unterkategorien von Kategorie '20' eintragen will, Kategorie '20' sein *_left von '39' behält und das *_right von '40' auf '148' gesetzt werden muß und die Kategorien '21' bis '75' jeweils dann wie bei Kategorie '5' und '6' immer eins hoch gezählt werden?
Bsp.:
Oder hab ich da einen Denkfehler drin? Ich will nur auf Nummer sicher gehen, Backup hab ich schon gemacht und ich weiß auch was ich tue wenn ich PHP anfasse.
ist vielleicht etwas ungewöhnlich die Frage aber ich importiere gerade Daten aus meiner Datenbank und will nicht alle 54 Unterkategorien einer Oberkategorie per Hand erstellen und die 8.778 Einträge zu den Unterkategorien erst recht nicht.
Deshalb schreib ich mir ein Script dafür, nun hab ich ein Problem nämlich die Spalten category_left und category_right in der Tabelle [präfix]_category ich versteh die Funktionsweise nicht ganz 100%ig und will nicht das Script durchforsten. Ich muß einfach nur wissen wie ich diese beiden Spalten zählen und eintragen muß.
Ich hab schon bemerkt das dabei dann auch die Oberkategorie eine Rolle spielt. Also ich denk mir das so... Bsp.:
Code: Select all
Kategorie '5' und '6' sind Unterkategorien von Kategorie '4'
Kategorie '4' hat *_left '7' und *_right '12' // Oberkategorie
Kategorie '5' hat *_left '8' und *_right '9' // Unterkategorie 1
Kategorie '6' hat *_left '10' und *_right '11' // Unterkategorie 2
Also das die *_left und *_right von 5 und 6 genau zwischen denen von 4 liegen.Bsp.:
Code: Select all
Kategorie 20 hat *_left '39' und *_right '148' // Oberkategorie
Kategorie 21 hat *_left '40' und *_right '41' // Unterkategorie 1
Kategorie 22 hat *_left '42' und *_right '43' // Unterkategorie 2
......
Kategorie 74 hat *_left '144' und *_right '145' // Unterkategorie 53
Kategorie 75 hat *_left '146' und *_right '147' // Unterkategorie 54