User nach 2 Monaten löschen

themonk

Erfahrenes Mitglied
Hallo
ich habe eine frage kennt jemand ein script mit den Man die User die länger als 2 monate nicht online warn gelsöcht werden? hae es mal mit dem Code Probiert

PHP:
<?

function getMK($datum) {
   list($year,$month,$day) = explode("-",$datum);
   return mktime(0,0,0,$day,$month,$year);
}
    $sqlkommando = "SELECT * FROM dbuser ORDER BY id DESC  LIMIT 1";
     $sqlanfrage = mysql_query($sqlkommando) or die("Error: " . mysql_error());
     while($daten = mysql_fetch_object($sqlanfrage))
     {
$letzterLogin = "".stripslashes($daten-> letzterlogin)."";

$jetztundheute = date('Y-n-j');

$wartezeit = 60*60*24*31*2; //2 Monate in sekunden, oder ;)

if(getMK($jetztundheute) - getMK($letzterLogin) > $wartezeit) {
?>
hhhh
<?
$sql = 'DELETE FROM tdbuser WHERE id =\''.$daten->id.'\'  LIMIT 1';
?>
<?

}}


?>
nur da passiert nicht und wenn ich bei Delet das WHERE id =\''.$daten->id.'\' weg nehme wird alles gelsöcht aus der Datenbank
 
PHP:
$sql = 'DELETE FROM tdbuser WHERE id =''.$daten->id.''  LIMIT 1';
Ähm... müsste das nicht eigentlich so aussehen?
PHP:
$sql = 'DELETE FROM tdbuser WHERE id ='.$daten->id.'  LIMIT 1';
Ausserdem ist mir der Zweck dieser beiden Zeilen vollkommen schleierhaft:
PHP:
?>
<?
 
Zuletzt bearbeitet:
Original geschrieben von SilentWarrior
PHP:
$sql = 'DELETE FROM tdbuser WHERE id =''.$daten->id.''  LIMIT 1';
Ähm... müsste das nicht eigentlich so aussehen?
PHP:
$sql = 'DELETE FROM tdbuser WHERE id ='.$daten->id.'  LIMIT 1';
aber trotzdem tut sich nichts in der Datenbank
 
Schon mal überlegt einfach gleich zu löschen?

$time = time() - erwünschte_zeit;

delete from TB where `lastlogin` < '$time'

(Syntax und deine Tabellennamen nicht korrekt)
 
ok habe das jetzt so gemacht
PHP:
<?


$time = date('n') - 1 ;


$sql = "DELETE FROM tbwhere letzterLogin < '$time'";







?>

nur es tut sich jetzt nichts
bei echo $time kommt aber 7 raus
 
würde ich jetzt spontan der Syntax zuordnen (vorrausgesetzt es war kein Schreibfehler hier im Forum)

Delete from tb WHERE....
und nicht delete from tbwhere

Unterschied erkannt? ;)

Dass er dir 7 rausgibt, ist klar, denn im Moment haben wir August und 8 -1 = 7

wie schon gesagt, zum Rechnen mit Datumsangaben ist time() sinnvoller.

Kommt natürlich auch drauf an, in welchem Format du den letzten login in deiner Tabelle speicherst!
 
Zuletzt bearbeitet:
hi
das
Delete from tb WHERE....
und nicht delete from tbwhere ist ein schreibfehler hier
und ich habe den letzten login nach tag.monta.jahr gespeichert . ich hatte davor auch da time() - 1 stehen nur da hat das script dann die 1 vom jahr abgezogen
 
Zurück