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.
Verwijderde users & hun posts
Forumregels
Sinds 1 januari 2009 wordt phpBB2 niet meer ondersteund.
Onderstaande informatie is verouderd en dient uitsluitend als archief.
Sinds 1 januari 2009 wordt phpBB2 niet meer ondersteund.
Onderstaande informatie is verouderd en dient uitsluitend als archief.

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

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.
De code van het plaatje bovenaan.
ps, we maken geen gebruik van de guest account.
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.") ";
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];
}
}