Mitglieder mit 0 Posts löschen?
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.1, 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.1, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Mitglieder mit 0 Posts löschen?
Hi!
Weiß jemand wie man Mitglieder mit 0 Posts löschen kann? Vielleicht auch mit phpmyadmin oder so.. Kenn' mich da nicht so gut aus aber jeder hilfe wär' super!
Weiß jemand wie man Mitglieder mit 0 Posts löschen kann? Vielleicht auch mit phpmyadmin oder so.. Kenn' mich da nicht so gut aus aber jeder hilfe wär' super!
- itst
- Ehrenadmin
- Beiträge: 7418
- Registriert: 21.08.2001 02:00
- Wohnort: Büttelborn bei Darmstadt
- Kontaktdaten:
Du musst nur die Query anpassen, die ich mit einem Kommentar markiert habe.
Ohne Gewähr
Ohne Gewähr

Code: Alles auswählen
<?php
define('IN_PHPBB', true);
$phpbb_root_path = '../';
include($phpbb_root_path . 'extension.inc');
include($phpbb_root_path . 'common.'.$phpEx);
$p = $c = 0;
$con = mysql_connect ($dbhost, $dbuser, $dbpasswd);
mysql_select_db($dbname);
$now = time();
$days = 90;
$quar = $now - (86400*$days);
// diese query anpassen, um die user auszuwählen, die gelöscht werden sollen.
$sql = "select user_id, username, user_email, user_lastvisit, user_regdate, user_posts from " . $table_prefix . "users where user_id >0 and (user_regdate<=$quar and user_lastvisit<=$quar)";
$res = mysql_query($sql);
echo "$days Tage sind seit dem " . gmdate("d.M.Y", $quar) . " vorbei. Timestamp für diesen Tag: $quar.<br /><br />";
echo "<b>Abfrage</b>:<br /><i>$sql</i>";
echo "<h2>Seit mehr als $days Tagen nicht mehr aktive User</h2>\n";
while ($row = mysql_fetch_array($res)) {
set_time_limit(30);
echo gmdate("d.m.Y", $row['user_regdate']) . ":" . gmdate("d.m.Y", $row['user_lastvisit']) . $row['username'] . ": " . $row['user_email'] . ": " . $row['user_posts'] . ": ";
$sql2 = "select count(post_id) as ps from " . $table_prefix . "posts as p where p.poster_id= " . $row['user_id'];
$res2 = mysql_query($sql2);
$row2 = mysql_fetch_array($res2);
$p += $row2['ps'];
echo $row2['ps'] . ": ";
$c++;
$user_id = $row['user_id'];
$sql = "SELECT g.group_id
FROM " . USER_GROUP_TABLE . " ug, " . GROUPS_TABLE . " g
WHERE ug.user_id = $user_id
AND g.group_id = ug.group_id
AND g.group_single_user = 1";
if( !($result = $db->sql_query($sql)) )
{
echo 'Could not obtain group information for this user';
}
set_time_limit(30);
$row = $db->sql_fetchrow($result);
$sql = "UPDATE " . POSTS_TABLE . "
SET poster_id = " . ANONYMOUS . ", post_username = '$username'
WHERE poster_id = $user_id";
if( !$db->sql_query($sql) )
{
echo 'Could not update posts for this user';
}
set_time_limit(30);
$sql = "UPDATE " . TOPICS_TABLE . "
SET topic_poster = " . ANONYMOUS . "
WHERE topic_poster = $user_id";
if( !$db->sql_query($sql) )
{
echo 'Could not update topics for this user';
}
set_time_limit(30);
$sql = "DELETE FROM " . USERS_TABLE . "
WHERE user_id = $user_id";
if( !$db->sql_query($sql) )
{
echo 'Could not delete user';
}
set_time_limit(30);
$sql = "DELETE FROM " . USER_GROUP_TABLE . "
WHERE user_id = $user_id";
if( !$db->sql_query($sql) )
{
echo 'Could not delete user from user_group table';
}
set_time_limit(30);
$sql = "DELETE FROM " . GROUPS_TABLE . "
WHERE group_id = " . $row['group_id'];
if( !$db->sql_query($sql) )
{
echo 'Could not delete group for this user';
}
set_time_limit(30);
$sql = "DELETE FROM " . AUTH_ACCESS_TABLE . "
WHERE group_id = " . $row['group_id'];
if( !$db->sql_query($sql) )
{
echo 'Could not delete group for this user';
}
set_time_limit(30);
$sql = "DELETE FROM " . TOPICS_WATCH_TABLE . "
WHERE user_id = $user_id";
if ( !$db->sql_query($sql) )
{
echo 'Could not delete user from topic watch table';
}
echo 'User deleted<br />';
}
echo $c . " " . $p;
?>
Sascha A. Carlin,
phpBB.de Ehrenadministrator
phpBB.de Ehrenadministrator

- itst
- Ehrenadmin
- Beiträge: 7418
- Registriert: 21.08.2001 02:00
- Wohnort: Büttelborn bei Darmstadt
- Kontaktdaten:
Nix PHP, SQL. In Zeile 13 steht die Anfrage, die genutzt wird, um die USer auszuwählen, die gelöscht werden.
Für alle 0-Poster müsste sie
heissen.
HTH, Sascha
Für alle 0-Poster müsste sie
Code: Alles auswählen
$sql = "select user_id, username, user_email, user_lastvisit, user_regdate, user_posts from " . $table_prefix . "users where user_id >0 and user_posts=0";
HTH, Sascha
Sascha A. Carlin,
phpBB.de Ehrenadministrator
phpBB.de Ehrenadministrator

thx..
hab jetzt auch ein script gefunden, mit dem man 0-posts leute und inaktive automatisch löschen kann
http://www.phpbbhacks.com/viewhack.php?id=346
hab jetzt auch ein script gefunden, mit dem man 0-posts leute und inaktive automatisch löschen kann
http://www.phpbbhacks.com/viewhack.php?id=346
Weis einer mit Sicherheit, dass das auch in der 2.01 Vers. läuft ?chrisredfield_0 hat geschrieben:thx..
hab jetzt auch ein script gefunden, mit dem man 0-posts leute und inaktive automatisch löschen kann
http://www.phpbbhacks.com/viewhack.php?id=346