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:

Code: Alles auswählen

Das gewählte Thema oder der Beitrag existiert nicht.
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