HELP | Verwijder sql op datum..

  • Ik zoek een scriptje, dat een familie uit je criminals database verwijderd die langer dan een week oud is en minder dan 3 leden heeft.


    Zeg maar voorbeeldje:


    PHP
    mysql_query("DELETE FROM `[clans]`'");


    Het probleempje, het aantal leden moet geteld worden vanuit de table [users]


    Stukje SQL

    PHP
    $dbre			= mysql_query("SELECT * FROM `[users]` WHERE `clan`='$name'");
          $nummembers				= mysql_num_rows($dbre);


    Wie mijn kan helpen, graag...

  • Guest, wil je besparen op je domeinnamen? (ad)
  • PHP
    <?php
    $res = mysql_query("SELECT id, naam FROM [clans] WHERE DATE_ADD(added, 1 WEEK) < CURDATE()");
    while($sel = mysql_fetch_array($res)){
    	$res = mysql_query("SELECT id FROM users WHERE clan='".$sel['naam']."'");
    	$leden = mysql_num_rows($res);
    	if($leden < 3){
    		mysql_query("DELETE FROM [clans] WHERE id='".$sel['id']."'");
    	}
    }
    ?>


    Dat moet werken.
    Moet je alleen nog even checken of in de clan tabel er een kolom is die naam heet en een kolom is die added heet (zoniet even in de goede veranderen). Met added bedoel ik een date of een datetime waarde wanneer de clan is aangemaakt.


    Succes ermee.

  • DELETE FROM `[clans]` WHERE DATE_ADD(added, 1 WEEK) < CURDATE() AND (SELECT COUNT(*) FROM `[users]` WHERE `[users]`.`clan`=`[clans]`.`name`) < 3


    Try that.
    En vergeet niet zoals je altijd moet doen als je iets nog getest hebt een backup te maken.


  • Deze is ineffici?nt aangezien hij in een loop is. Die van Darsstar is beter.

    PHP
    DELETE FROM clans WHERE '".time()." - date > '".(60*60*24*21)."' AND (SELECT COUNT(*) FROM users WHERE users.clan=clan.naam) < 3


    Maar, dit zou toch heel eenvoudig moeten zijn voor iemand met zoveel sql en php kennis? Althans, dat staat op je profiel ;)

Participate now!

Heb je nog geen account? Registreer je nu en word deel van onze community!