Seite 1 von 2
Mitglieder mit 0 Posts löschen?
Verfasst: 28.11.2002 14:19
von chrisredfield_0
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!
Verfasst: 28.11.2002 14:24
von itst
Du musst nur die Query anpassen, die ich mit einem Kommentar markiert habe.
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;
?>
Verfasst: 28.11.2002 14:27
von chrisredfield_0
danke schonmal für die schnelle Antwort, aber kannst du das noch ein bisschen präzisieren (kenn mich mit PHP wirkl nicht gut aus) wo muss ich das anpassen/einfügen?
thx
Verfasst: 28.11.2002 14:36
von itst
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
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";
heissen.
HTH, Sascha
Verfasst: 28.11.2002 15:43
von chrisredfield_0
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
Verfasst: 01.12.2002 23:01
von Guido
Weis einer mit Sicherheit, dass das auch in der 2.01 Vers. läuft ?
Verfasst: 02.12.2002 14:26
von Guido
Also ich habs dann einfach mal riskiert und - - - ES KLAPPT ! auch in Version 2.01 (Classic Style). Und das Teil ist echt super praktisch !
Verfasst: 04.10.2003 16:54
von Pansn
klappt das auch bei deutscher sprache ? (habe das 2.0.6).
Verfasst: 04.10.2003 17:28
von Schumi
Ja, funktioniert mit jeder Sprache.
Verfasst: 05.11.2004 11:56
von rocomat
Gibt es da nicht ein mod, bei dem man einen Zeitraum angeben kann, wann ein 0-poster nach x tagen gelöscht wird. Ich dachte soetwas habe ich schon malgesehen. Das wäre auch sinnvoll bei den Russen spammern.
kennt jemand solch einen Mod?