Seite 1 von 1

Neusortierung nach Datenbankfusion?

Verfasst: 05.08.2007 01:41
von uniquex
Hallo Community!

Nach endlosen Bastelstunden ist es mir gelunden zwei phpBB Dumps aus verschiedenen Foren erfolgreich zu fusionieren (mergen).
Das einzige Problem was jetzt jedoch leider besteht, ist folgendes:

Die Sortierung der Threads in den einzelnen Unterforen ist nicht mehr korrekt. Vorher erfolgte dies nach Datum (des letzen Beitrags in absteigender Reihenfolge), jetzt nicht mehr (auf keinen der Beiträge wurde geantwortet, die Sortierung sollte also stimmen, tut sie aber nicht):

[ externes Bild ]

Ich habe versucht die Foren zu 'resynchronisieren', ebenso habe ich es mit einen Maintenance Script versucht, leider erfolglos!
Wer kann mir einen Ansatz geben, diesen Fehler zu korregieren oder mir vll. sogar zur Hand gehen (soll nicht kostenlos sein)?

Die Daten manuell zu ändern kommt aufgrund von über 50.000 merged Postings nicht in Frage.

Danke
uniquex

Verfasst: 06.08.2007 20:34
von cYbercOsmOnauT
In der viewforum.php findet sich nach Zeile 311

Code: Alles auswählen

// Grab all the basic data (all topics except announcements)
die SQL welches die Themen aus der DB liest. Wie man am Ende erkennen kann

Code: Alles auswählen

ORDER BY t.topic_type DESC, t.topic_last_post_id DESC
sortiert das erste die wichtigen Themen vor den normalen. Danach wird nach dem Wert der Zelle topic_last_post_id sortiert.
Das phpBB Forum geht davon aus, dass die post_id's auch chronologisch vergeben werden (ist ja auch normal so) und sortiert deswegen einfach nach diesen post_id's. Da Du jedoch 2 DB's verschmolzen hast, ist diese chronologische Reihenfolge nicht mehr gegeben.
Soviel zur Erklärung der Ursache.

Lösung:
Ändere die ORDER Zeile zu

Code: Alles auswählen

ORDER BY t.topic_type DESC, p2.post_time DESC
dies sollte dann wieder eine chronologische Sortierung anzeigen.

Viele Grüße,
Tekin

Verfasst: 09.08.2007 23:51
von uniquex
Vielen Dank für den Hinweis, werde ich direkt mal ausprobieren!

Btw. Wie kann das denn passieren? Die Sortierung stimmte ja vorher und es wurde nichts am Script geändert! Korregiert die o.g. Lösung auch geshiftete Threads in der Sortierung?

edit: ok, Erklärung verstanden (nach nochmaligen Lesen)!