Seite 2 von 2
Verfasst: 16.04.2003 18:03
von Volle
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
Verfasst: 16.04.2003 18:12
von Mister_X
öh woher weißt du, dass es diese Themen nicht gibt ?
Verfasst: 16.04.2003 18:23
von Volle
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
Verfasst: 18.04.2003 14:58
von Volle
so ich hab mich nun mal selbst an das Problem rangemacht und hab mir folgendes Script geschrieben:
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"));
?>
spricht was dagegen die DB so zu bearbeiten oder kann man das gefahrlos ausführen?
Volle