Forum sortierung - fehler in der Datenbank

Fragen zur Bedienung von phpBB 3.0.x, Probleme bei der Benutzung und alle weiteren Fragen inkl. Update auf die neuste phpBB 3.0.14 Version
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.
Antworten
sdait
Mitglied
Beiträge: 33
Registriert: 23.09.2007 01:54

Forum sortierung - fehler in der Datenbank

Beitrag von sdait »

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 ]
RCweb.de Modellbau-Forum - http://www.RCweb.de
Fishy3
Mitglied
Beiträge: 6
Registriert: 22.11.2008 14:33
Kontaktdaten:

Beitrag von Fishy3 »

Habe den Fehler auch schon seit einiger Zeit, jedoch konnte mir da leider auch noch keiner helfen :(
mfg Fish
sdait
Mitglied
Beiträge: 33
Registriert: 23.09.2007 01:54

Beitrag von sdait »

Komm, gemeinsam sind wir stark :-)
Ich habe Hoffnung.
RCweb.de Modellbau-Forum - http://www.RCweb.de
sdait
Mitglied
Beiträge: 33
Registriert: 23.09.2007 01:54

Beitrag von sdait »

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 ?
RCweb.de Modellbau-Forum - http://www.RCweb.de
sdait
Mitglied
Beiträge: 33
Registriert: 23.09.2007 01:54

Beitrag von sdait »

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

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
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.

Code: Alles auswählen

Excel Formel
="update phpbb_forums SET left_id='"&C2&"', right_id='"&D2&"' WHERE forum_id='"&A2&"';"
erzeugt z.B.:

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
Fishy3
Mitglied
Beiträge: 6
Registriert: 22.11.2008 14:33
Kontaktdaten:

Beitrag von Fishy3 »

Wow! Vielen Dank :D ichw erd mich die tage auchmal ransetzten und versuchen mein Forum zu reparieren. Jetzt weiß ich auch woher der Fehler evtl. kam ^^ danke dir nochmal.
mfg Fish
Antworten

Zurück zu „[3.0.x] Administration, Benutzung und Betrieb“