Verwijderde users & hun posts

Voor discussies rondom phpBB2. phpBB2 wordt niet meer ondersteund en deze berichten kunnen wellicht gedateerd zijn.
Forumregels

Sinds 1 januari 2009 wordt phpBB2 niet meer ondersteund.
Onderstaande informatie is verouderd en dient uitsluitend als archief.
phpBB2.0.x
Gesloten
Stefandv
Berichten: 78
Lid geworden op: 10 jan 2003, 13:49

Verwijderde users & hun posts

Bericht door Stefandv » 10 apr 2006, 11:04

Ik moet een forum voor een vriend wat gaan opruimen.
Zij hebben nogal veel verwijderde users, maar die posts blijven achter.

Ik wil deze graag goed en veilig verwijderen.

Dus verwijder je een user dan worden:
- alle topics gestart door de user (en de reacties van andere op dit topic)
- alle reacties van de user geplaatst in andere topics

Mijn vragen zijn, kan dit dus wel,levert het geen problemen op in je forum, is er al een mod voor, en hoe/waar moet ik beginnen

Mijn idee was, eerst alle topics nagaan of de topic starter nog een user is.
Zo nee, topic met alle post verwijderen.
SQL-query:
SELECT *
FROM `forum_topics`
WHERE topic_poster='-1'


Als dat gedaan is dan moeten de overige posts weer worden bekeken of daar de user nog van bestaat.

Stefandv
Berichten: 78
Lid geworden op: 10 jan 2003, 13:49

Bericht door Stefandv » 10 apr 2006, 13:39

Ik ben al weer wat stapjes verder, klein scriptje geschreven, met opmaak print hij dan het onderstaande.

Afbeelding

Als ik uit de topics table, een topic id heb, kan ik dan nu veilig alles verwijderen uit topics table, de posts table en de post text table?

Dit moet toch dan voldoende zijn?
$del = dan de topic die verwijderd moet worden.

Code: Selecteer alles

$sql = "DELETE FROM `".TOPICS_TABLE."` WHERE topic_id='".$del."'";
$sql = "SELECT * FROM `".POSTS_TABLE."` WHERE topic_id='".$del."' ";
$result = $db->sql_query($sql);
while (($posts = $db->sql_fetchrow($result)) )
	{
	$delete_post_table  .="'".$posts[post_id]."', ";
	}
	//print_r($delete_post_table);
$sql = "DELETE FROM `".POSTS_TABLE."` WHERE topic_id in(".$delete_post_table.") ";
$sql = "DELETE FROM `".POSTS_TEXT_TABLE."` WHERE post_id in(".$delete_post_table.") ";
De code van het plaatje bovenaan.

Code: Selecteer alles

$sql = "SELECT * FROM `".TOPICS_TABLE."` WHERE topic_poster='-1'  ";
$result = $db->sql_query($sql);
while (($topic = $db->sql_fetchrow($result)) )
	{
		$first_post_sql = $db->sql_query("SELECT * FROM `".POSTS_TEXT_TABLE."` WHERE `post_id` ='".$topic[topic_first_post_id]."' LIMIT 0 , 1");
		$first_post_result = $db->sql_fetchrow($first_post_sql);
$sql2 = "SELECT * FROM `".POSTS_TABLE."` WHERE topic_id='".$topic[topic_id]."'  ";
		$result2 = $db->sql_query($sql2);
		while (($posts = $db->sql_fetchrow($result2)) )
			{
$post_ids[] =  $posts[post_id];
}
}
ps, we maken geen gebruik van de guest account.

Stefandv
Berichten: 78
Lid geworden op: 10 jan 2003, 13:49

Bericht door Stefandv » 14 apr 2006, 09:03

Niemand die zeker weet of dit geen problemen geeft?

mn test forum levert nog geen problemen op

Gesloten