Ich habe einen seltsamen Fehler. Und zwar gibt es wohl einen Fehler in der phpbb_forums bezüglich der Sortierung. Die Herachie ist irgendwie verklemmt.
Wie in allen Foren gibt es Kategorien und darin mehrere Foren. Nun habe ich, wenn ich ein Forum bearbeit und beispielsweise umsortieren m;chte, in dem Pulldown/Fenster eine teilweise verschobene Herachie.
Auf dem Bild sieht man z.B. die Kat. 'Rennserien und Markenpokale' welche ja eigentlich top stehen sollte. Auch '2-speed' ist nur ein Forum in der Kat. 'Teamsuport'
Bei dem anderen Bild sieht man, dass auch ein anderes Forum grau ist. Normal ist das Forum vorhanden und auch erreichbar.
Die Sortierung in der Forenuebersicht des Forums ist korrekt. Wenn ich jetzt jedoch eine Aenderung im Forum mache, kann es sein dass ein Forum verschwindet oder an einer ganz anderen Stelle sortiert wird.
Ich werde verrueckt, denn ich finde den Fehler nicht. Was kann ich tun ?
MfG. Stefan
[ externes Bild ]
[ externes Bild ]
Forum sortierung - fehler in der Datenbank
Forumsregeln
phpBB 3.0 hat das Ende seiner Lebenszeit überschritten
phpBB 3.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 3.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf die neuste phpBB-Version, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
phpBB 3.0 hat das Ende seiner Lebenszeit überschritten
phpBB 3.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 3.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf die neuste phpBB-Version, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Forum sortierung - fehler in der Datenbank
RCweb.de Modellbau-Forum - http://www.RCweb.de
Es scheint wirklich so zu sein, dass wir beide mit unserem Problem allein sind. Hey, wir sind was besonderes 
Nur hilft uns das leider nicht weiter.
Der Ansatz könnte doch sein dass die Sortierangaben zu den Foren in der Datenbank (warum auch immer. Ich habe nie etwas von Hand in der Datenbank geändert) falsch sind.
Die Bedeutung von left_id verstehe ich gerade noch, aber right_id bekomme ich nicht hin. Dementsprechend habe ich auch schon versucht die Tabelle (ausserhalb) von hand zu korregieren bzw. den Fehler zu finden. Hat aber leider mangels Knowhow nicht gebracht.
Einen Thread zum Thema left/right_id hier im Forum habe ich gefunden und gelesen. Aber leider nicht verstanden.
Vielleicht findet sich ja doch noch jemand, der Hilfe weis. Ich kann mir nicht vorstellen dass wir zwei die einzigen sind, die dieses Problem haben. Evtl. gibt es ja einen PHP Schnipsel der die Tabelle checken kann ? Oder, wie müsste dieser aussehen um in der Tabelle einen Fehler zu finden ?

Nur hilft uns das leider nicht weiter.
Der Ansatz könnte doch sein dass die Sortierangaben zu den Foren in der Datenbank (warum auch immer. Ich habe nie etwas von Hand in der Datenbank geändert) falsch sind.
Die Bedeutung von left_id verstehe ich gerade noch, aber right_id bekomme ich nicht hin. Dementsprechend habe ich auch schon versucht die Tabelle (ausserhalb) von hand zu korregieren bzw. den Fehler zu finden. Hat aber leider mangels Knowhow nicht gebracht.
Einen Thread zum Thema left/right_id hier im Forum habe ich gefunden und gelesen. Aber leider nicht verstanden.
Vielleicht findet sich ja doch noch jemand, der Hilfe weis. Ich kann mir nicht vorstellen dass wir zwei die einzigen sind, die dieses Problem haben. Evtl. gibt es ja einen PHP Schnipsel der die Tabelle checken kann ? Oder, wie müsste dieser aussehen um in der Tabelle einen Fehler zu finden ?
RCweb.de Modellbau-Forum - http://www.RCweb.de
Habe fertig. Danke für die Hilfe 
Letztlich habe ich mir aus anderen Fehlermeldungen hier im Forum eine Lösung zusammen gesucht. Diese war leider nicht wirklich einfach. Dazu galt es erstmal Nested Sets zu verstehen. Dabei hat mir dieser Link geholfen.
Dort wird erklärt wie die Baustruktur logisch aufgebaut ist. Wenn man diese Infos versteht, kann man die Datenbank von Hand reparieren.
Dazu habe ich mir die Datenbank in Excel geholt (mit Mysql Front) und alle Felder entfernt die ich nicht brauche. Übrig blieben (forum_id, parent_id, left_id, right_id, forum_name )
Die Zeilen habe ich mir in die Reihenfolge sortiert, wie sie auch in meinem Forum sind. Die Kategorien (sind als parent = 0 gekennzeichnet) habe ich zur erleichterung farblich hinterlegt. Damit hatte ich jetzt ein schönes Abbild meiner Foren.
Dann bin ich her gegangen und habe die Angaben zu left_id und right_id neu durch nummeriert. Wenn man sich eine kleine Kat. vor nimmt und diese durch geht, wird man das System recht einfach durchblicken.
Man muss eigentlich nur im Kreis zählen. Ist schlecht zu erklären.
ich versuche mal ein Beispiel:
forum parent left_id right_id
Vorne ist nur die Indexnummer. Alle die bei parent eine 0 haben, sind Kategorien.
Nun sortiert man alle die unter parent 144 haben (ist bei Euch natürlich eine andere Zahl) darunter. So wie abgebildet. In die richtige Reihenfolge bringen, so wie die Foren in Euer Forum gehören und dann geht die Zählerei los.
Hier ist die Kat. mit der id 144 mit 4 Foren belegt. Schaut Euch die beiden werte unter left_id und right_id an. Bei left geht das zählen los und bei right endet es. Die 31 gibt vor wo es los geht. Also geht es beim ersten Forum bei 32 (left) los und right ist dann 33. Super, das erste Forum ist schon mal richtig nummeriert. Darunter wird fort gesetzt. Bis das letzte Forum in dieser Kat belegt ist. Das ist in diesem Fall dann mit einer 39.
und jetzt wird in der Kat nur noch die Folgezahl eingetragen (hier also 40) und schon ist eine Kat und deren Foren fertig.
Experten werden sich jetzt die Haare raufen, weil sobald ein Unterforum dabei ist es nähmlich nochmal schwieriger wird. Aber da muss man einfach das selbe System anwenden und das über geordnete Forum so sehen als sei es eine Kategorie. Nachdem ich mir Kat. Forum und Unterforum farblich unterschiedlich markiert hatte, war es ein klacks.
Danach im Excel eine Formel erstellen die die Zellen ausliesst und einen sql Code erstellt. Ab damit in die Datenbank und die Table ist in einem Rutsch wieder heil.
erzeugt z.B.:
Aber die Frage nach dem WARUM hat mich auch beschäftigt und das ist nun heikel. Ein User hier im Forum hat versucht das zu klären und auch zu erklären. In einem Thread, in dem er Hilfe gesucht hat, hat man ihn eher angemacht als dass man ihn geholfen hat. Finde ich schade. Aber ich konnte mir dennoch die nötigen Ansätze aus den 3 Thread ziehen, dass ich damit zu einer Lösung gekommen bin.
Fakt ist, dass es einen Fehler in phpbb gibt. Ob dieser in phpbb .3 behoben ist weis ich nicht (siehe dazu einen anderen Beitrag von mir. Läuft bei mir nicht).
Wenn man ein Forum umsortiert und mit der Maus auf das Pfeilsymbol klickt, dann kann es zu dem Fehler kommen. U.U. ist Eure phpbb_forums damit falsch beschrieben. Beispielsweise wenn man zu schnell klickt und sich der Schreibvorgang in die Datenbank mit dem nächsten Klick überschneidet. Irgendwie so muss es sein. Wenn der Server mal was langsam ist, die MySQL Datenbank im Stress oder sowas in der Art. Dann schreibt phpbb nämlich nicht korrekt die neue Reihenfolge in die DB, sondern vergibt bei mehreren Foren die selbe left_id oder right_id. In dem Fall ist dann der nächste Eintrag (Forum anlegen, ändern oder umsortieren) etwas dass richtig Ärger machen kann. Dann verschwindet u.U. ein Forum oder steht an einer ganz anderen Stelle.
Wenn ich es könnte, würde ich ein php Script erstellen dass die phpbb_forums ausliesst, prüft und ggf. neu schreibt. Dieses Teil braucht es, denn ich bin mir ganz sicher dass dieses Problem eine menge Leute haben. Ich habe es erst nach 3 Monaten bemerkt. Zwischendurch war mal ein Forum weg und ich konnte es mir nicht erklären. Als ich nach monaten das erste mal etwas an meinen Foren tun musste, brach das Chaos aus.
Das wünsche ich niemanden.
Ich hoffe, auch wenn ich es nicht ganz fachmännisch erklären oder eine fertige Lösung presentieren konnte, dass ich trotzdem dem einen oder anderen damit helfen kann, wenn er wie ich hier nach Hilfe sucht.
Stefan

Letztlich habe ich mir aus anderen Fehlermeldungen hier im Forum eine Lösung zusammen gesucht. Diese war leider nicht wirklich einfach. Dazu galt es erstmal Nested Sets zu verstehen. Dabei hat mir dieser Link geholfen.
Dort wird erklärt wie die Baustruktur logisch aufgebaut ist. Wenn man diese Infos versteht, kann man die Datenbank von Hand reparieren.
Dazu habe ich mir die Datenbank in Excel geholt (mit Mysql Front) und alle Felder entfernt die ich nicht brauche. Übrig blieben (forum_id, parent_id, left_id, right_id, forum_name )
Die Zeilen habe ich mir in die Reihenfolge sortiert, wie sie auch in meinem Forum sind. Die Kategorien (sind als parent = 0 gekennzeichnet) habe ich zur erleichterung farblich hinterlegt. Damit hatte ich jetzt ein schönes Abbild meiner Foren.
Dann bin ich her gegangen und habe die Angaben zu left_id und right_id neu durch nummeriert. Wenn man sich eine kleine Kat. vor nimmt und diese durch geht, wird man das System recht einfach durchblicken.
Man muss eigentlich nur im Kreis zählen. Ist schlecht zu erklären.
ich versuche mal ein Beispiel:
forum parent left_id right_id
Code: Alles auswählen
forum parent left_id right_id
144 0 31 40
13 144 32 33
25 144 36 37
64 144 34 35
118 144 38 39
Nun sortiert man alle die unter parent 144 haben (ist bei Euch natürlich eine andere Zahl) darunter. So wie abgebildet. In die richtige Reihenfolge bringen, so wie die Foren in Euer Forum gehören und dann geht die Zählerei los.
Hier ist die Kat. mit der id 144 mit 4 Foren belegt. Schaut Euch die beiden werte unter left_id und right_id an. Bei left geht das zählen los und bei right endet es. Die 31 gibt vor wo es los geht. Also geht es beim ersten Forum bei 32 (left) los und right ist dann 33. Super, das erste Forum ist schon mal richtig nummeriert. Darunter wird fort gesetzt. Bis das letzte Forum in dieser Kat belegt ist. Das ist in diesem Fall dann mit einer 39.
und jetzt wird in der Kat nur noch die Folgezahl eingetragen (hier also 40) und schon ist eine Kat und deren Foren fertig.
Experten werden sich jetzt die Haare raufen, weil sobald ein Unterforum dabei ist es nähmlich nochmal schwieriger wird. Aber da muss man einfach das selbe System anwenden und das über geordnete Forum so sehen als sei es eine Kategorie. Nachdem ich mir Kat. Forum und Unterforum farblich unterschiedlich markiert hatte, war es ein klacks.
Danach im Excel eine Formel erstellen die die Zellen ausliesst und einen sql Code erstellt. Ab damit in die Datenbank und die Table ist in einem Rutsch wieder heil.
Code: Alles auswählen
Excel Formel
="update phpbb_forums SET left_id='"&C2&"', right_id='"&D2&"' WHERE forum_id='"&A2&"';"
Code: Alles auswählen
update phpbb_forums SET left_id='2', right_id='5' WHERE forum_id='1';
Aber die Frage nach dem WARUM hat mich auch beschäftigt und das ist nun heikel. Ein User hier im Forum hat versucht das zu klären und auch zu erklären. In einem Thread, in dem er Hilfe gesucht hat, hat man ihn eher angemacht als dass man ihn geholfen hat. Finde ich schade. Aber ich konnte mir dennoch die nötigen Ansätze aus den 3 Thread ziehen, dass ich damit zu einer Lösung gekommen bin.
Fakt ist, dass es einen Fehler in phpbb gibt. Ob dieser in phpbb .3 behoben ist weis ich nicht (siehe dazu einen anderen Beitrag von mir. Läuft bei mir nicht).
Wenn man ein Forum umsortiert und mit der Maus auf das Pfeilsymbol klickt, dann kann es zu dem Fehler kommen. U.U. ist Eure phpbb_forums damit falsch beschrieben. Beispielsweise wenn man zu schnell klickt und sich der Schreibvorgang in die Datenbank mit dem nächsten Klick überschneidet. Irgendwie so muss es sein. Wenn der Server mal was langsam ist, die MySQL Datenbank im Stress oder sowas in der Art. Dann schreibt phpbb nämlich nicht korrekt die neue Reihenfolge in die DB, sondern vergibt bei mehreren Foren die selbe left_id oder right_id. In dem Fall ist dann der nächste Eintrag (Forum anlegen, ändern oder umsortieren) etwas dass richtig Ärger machen kann. Dann verschwindet u.U. ein Forum oder steht an einer ganz anderen Stelle.
Wenn ich es könnte, würde ich ein php Script erstellen dass die phpbb_forums ausliesst, prüft und ggf. neu schreibt. Dieses Teil braucht es, denn ich bin mir ganz sicher dass dieses Problem eine menge Leute haben. Ich habe es erst nach 3 Monaten bemerkt. Zwischendurch war mal ein Forum weg und ich konnte es mir nicht erklären. Als ich nach monaten das erste mal etwas an meinen Foren tun musste, brach das Chaos aus.
Das wünsche ich niemanden.
Ich hoffe, auch wenn ich es nicht ganz fachmännisch erklären oder eine fertige Lösung presentieren konnte, dass ich trotzdem dem einen oder anderen damit helfen kann, wenn er wie ich hier nach Hilfe sucht.
Stefan
RCweb.de Modellbau-Forum - http://www.RCweb.de