• User Attivo

    Cancellare ultimo record se superano il massimo consentito

    Buonpomeriggio,

    ho creato una chat e vorrei che, se ci sono ad esempio 70 messaggi nel database, all' invio di uno nuovo se ne cancellasse l' ultimo.
    Allora nella funzione di invio messaggi ho proceduto così:

    [PHP] // Controllo il numero di records
    $result=@mysql_query("SELECT COUNT(messaggio) FROM chat");
    $righe=@mysql_num_rows($result);
    for ($i=0;$i<$righe;$i++)
    {
    $array_result=mysql_fetch_row($result);
    $count = $array_result[0];
    }

    if($count == 70) { // se ci sono 70 messaggi
    $querydlt = @mysql_query("DELETE FROM chat ORDER BY datatime ASC LIMIT 1"); // cancello l' ultimo
    }[/PHP]
    

    Datatime contiene le date di invio messaggi simile a "2010-10-08 16:11:30".
    Il problema è che non funziona!
    Idee ?


  • ModSenior

    Ciao RoxasShadow,

    prova cosi:
    [php]
    // Controllo il numero di records
    $result=mysql_query("SELECT COUNT(messaggio) FROM chat");
    $righe=mysql_num_rows($result);

    if($count == 70) { // se ci sono 70 messaggi 
    $querydlt = mysql_query("DELETE FROM chat ORDER BY datatime ASC LIMIT 1"); // cancello l' ultimo 
    }  
    

    [/php]


  • User Attivo

    Niente, non funziona, ho anche provato così

    [PHP]
    // Controllo il numero di records
    $result=mysql_query("SELECT COUNT(messaggio) FROM chat");
    $righe=mysql_num_rows($result);

    if($count > 50) { // se ci sono più di 50 messaggi
    $querydlt = mysql_query("DELETE FROM chat ORDER BY datatime ASC LIMIT 1"); // cancello l' ultimo
    }
    [/PHP]


  • ModSenior

    Scusa errore mio, il nome di una variabile non è errato:
    [php]
    // Controllo il numero di records
    $result=mysql_query("SELECT COUNT(messaggio) FROM chat");
    $righe=mysql_num_rows($result);

    if($righe == 70) { // se ci sono 70 messaggi 
    $querydlt = mysql_query("DELETE FROM chat ORDER BY datatime ASC LIMIT 1"); // cancello l' ultimo 
    }  
    

    [/php]
    Tieni presente che con questo sistema se sono presenti 71 messaggi, non funzionerà, devono essercene massimo 70.