hab mir gerade mal die DB genauer angeschaut, da gibts einige Zeilen mit einer topic_id die es gar nicht gibt. Gibts da ne Möglichkeit all diese zu löschen ohne die DB von Hand durchsuchen zu müssen?
Volle
Moderieren von Konvertierten Beiträgen
Forumsregeln
phpBB 2.0 hat das Ende seiner Lebenszeit überschritten
phpBB 2.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 2.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf phpBB 3.0, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
phpBB 2.0 hat das Ende seiner Lebenszeit überschritten
phpBB 2.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 2.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf phpBB 3.0, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
wenn ich das Thema von Hand aufrufe erscheint die Meldung: obwohl in der DB eine Teile mit der topic_id vorhanden ist.
Beispiel:
http://forum.berlin133.server4free.de/v ... .php?t=229
Der selbe topic_title ist bei der ID 1437 eingetragen, der Beitrag ist auch wirklich vorhanden.
Volle
Code: Alles auswählen
Das gewählte Thema oder der Beitrag existiert nicht.
Beispiel:
http://forum.berlin133.server4free.de/v ... .php?t=229
Der selbe topic_title ist bei der ID 1437 eingetragen, der Beitrag ist auch wirklich vorhanden.
Volle
so ich hab mich nun mal selbst an das Problem rangemacht und hab mir folgendes Script geschrieben:
spricht was dagegen die DB so zu bearbeiten oder kann man das gefahrlos ausführen?
Volle
Code: Alles auswählen
<?php
include("config.php");
mysql_connect("$dbhost", "$dbuser", "$dbpasswd");
mysql_select_db("$dbname");
$pc = 1;
$i = 0;
while($pc < 2020)
{
$gettopic = mysql_query("SELECT topic_id FROM ".$table_prefix."topics WHERE (topic_id LIKE '".$pc."') LIMIT 0, 1") or die ("Fehler 103: Anfrage fehlgeschlagen");
$getpost = mysql_query("SELECT topic_id FROM ".$table_prefix."posts WHERE (topic_id LIKE '".$pc."') LIMIT 0, 1") or die ("Fehler 103: Anfrage fehlgeschlagen");
if($row = mysql_fetch_array($gettopic, MYSQL_ASSOC))
{
if($row2 = mysql_fetch_array($getpost, MYSQL_ASSOC))
{
}
else
{
echo $row['topic_id'];
echo " - keine Postings mit dieser Topic ID - löschen...<br>";
mysql_query("DELETE FROM ".$table_prefix."topics WHERE (topic_id LIKE '".$pc."') LIMIT 1");
$i = ++$i;
}
}
$pc = ++$pc;
}
echo "<br>$i Zeilen gelöscht!";
mysql_close(mysql_connect("$dbhost", "$dbuser", "$dbpasswd"));
?>
Volle