Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2006
    Messaggi
    45

    Cancellare un annuncio dopo * giorni?

    Salve a tutti! Ho un problema. Come faccio a cancellare un annuncio in un Db Mysql dopo "tot" giorni dopo la data dell'inserimento dell'annuncio? Grazie mille per le vostre risposte e accorgimenti.

  2. #2
    Utente di HTML.it
    Registrato dal
    Jan 2006
    Messaggi
    45
    Io ho utilizzato il seguente codice, ma nel DELETE FROM .... DB (non capisco il motivo) funziona per un po' di giorni, poi devo andare a modificare il <= con un >= (Qualcuno sa spiegarmi perchè succede questo?

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2006
    Messaggi
    45
    Ecco il codice che ho utilizzato (sbagliato)

    $data = date("z");
    //connessione con il database
    $connessione = mysql_connect($dbhost,$dbuser,$dbpasswd) or die ("connessione non riuscita");
    mysql_select_db($dbname) or die ("selezione db non riuscita");

    echo "

    <img src=\"immagini/vendo.gif\" width=\"118\" height=\"39\" align=\"right\">

    ";

    $sql="SELECT data,testo,tel,mail FROM casa WHERE scelta='vendo'";
    $result=mysql_query($sql);
    while ($row=mysql_fetch_array($result)) {
    print("Data: ".$row["data"]."
    ");
    print("Testo:
    ");
    print(nl2br(stripslashes($row["testo"])));
    print("
    e-mail: ".$row["mail"].""."tel: ".$row["tel"]."
    ");
    print("<HR SIZE=\"1\" color=\"#eb880e\">");
    }



    echo "

    <img src=\"immagini/compro.gif\" width=\"118\" height=\"39\" align=\"right\">

    ";
    $sql1="SELECT data,testo,tel,mail FROM casa WHERE scelta='compro'";
    $result1=mysql_query($sql1);

    while ($row=mysql_fetch_array($result1)) {
    print("Data: ".$row["data"]."
    ");
    print("Testo:
    ");
    print(nl2br(stripslashes($row["testo"])));
    print("
    e-mail: ".$row["mail"].""."tel: ".$row["tel"]."
    ");
    print("<HR SIZE=\"1\" color=\"#eb880e\">");

    }

    echo "

    <img src=\"immagini/fitto.gif\" width=\"118\" height=\"39\" align=\"right\">

    ";
    $sql2="SELECT data,testo,tel,mail FROM casa WHERE scelta='fitto'";
    $result2=mysql_query($sql2);

    while ($row=mysql_fetch_array($result2)) {
    print("Data: ".$row["data"]."
    ");
    print("Testo:
    ");
    print(nl2br(stripslashes($row["testo"])));
    print("
    e-mail: ".$row["mail"].""."tel: ".$row["tel"]."
    ");
    print("<HR SIZE=\"1\" color=\"#eb880e\">");

    }


    mysql_query("DELETE FROM casa WHERE scadenza <='$data'")or die (" non è riuscita");
    /* Liberazione delle risorse del risultato */
    mysql_free_result($result);
    mysql_free_result($result1);
    mysql_free_result($result2);
    /* Chiusura della connessione */
    mysql_close($connessione);

  4. #4
    Utente di HTML.it
    Registrato dal
    Mar 2004
    Messaggi
    1,141
    puoi salvare la data di inserimento e quella di cancellazione nel DB, ti fai uno script che controlla la data odierna, nel caso fosse uguale alla data di cancellazione, allora cancelli i records.

    Lo script lo puoi 'crontabbare' se usi linux, qui c'è la pillola che ti spiega come fare:
    http://forum.html.it/forum/showthrea...hreadid=310412

    se ti trovi su win guarda:
    http://www.webcron.org/

    ciao

    [EDIT] ti stavo rispondendo e non ho visto che stavi scrivendo anche il codice...

    CMQ non ho capito:
    in che data vuoi cancellare perchè tu controlli nella query che
    codice:
    ...data scadenza <= '$data'..
    dove $data = date('z');
    ma date('z') restituisce il numero del giorno corrente come giorno dell'anno ( da 0 a 365)...è questo quello che vuoi fare?

  5. #5
    codice:
    DELETE FROM tabella WHERE ADDDATE(data_inserimento, INTERVAL 5 DAY) < NOW()

    con questa query cancelli i record più vecchi di 5 giorni, se questo è quello che ti serve







    Talvolta anche una persona apparentemente inutile si rivela un abile samurai dalla forza di mille uomini, dimostrando di poter rinunciare alla vita e che il suo cuore si è completamente identificato con quello del suo padrone

  6. #6
    Utente di HTML.it
    Registrato dal
    Jan 2006
    Messaggi
    45
    $data = date("d/m/Y");

    $scadenza = date("z")+30;


    questè e il codice inserito in un'altro file. Ora il mio problema è che il codice, a volte funziona, a volte non funziona. Quando non funziona devo inserire <= o >= del DELETE FROM..... etc..
    Sai spiegarmi il motivo?

  7. #7
    Originariamente inviato da moles
    $data = date("d/m/Y");

    $scadenza = date("z")+30;


    questè e il codice inserito in un'altro file. Ora il mio problema è che il codice, a volte funziona, a volte non funziona. Quando non funziona devo inserire <= o >= del DELETE FROM..... etc..
    Sai spiegarmi il motivo?
    la query che ti ho postato l'hai provata? fa quello che chiedi senza dover scrivere righe e righe di codice...
    Talvolta anche una persona apparentemente inutile si rivela un abile samurai dalla forza di mille uomini, dimostrando di poter rinunciare alla vita e che il suo cuore si è completamente identificato con quello del suo padrone

  8. #8
    Utente di HTML.it
    Registrato dal
    Jan 2006
    Messaggi
    45
    Ti ringrazio e ti farò sapere se funziona
    Ciao

  9. #9
    Utente di HTML.it
    Registrato dal
    Jan 2006
    Messaggi
    45
    Un'altra cosa....
    non sono pratico in mysql
    devo inserirla esattamente come me l'hai mandata o devo modificare variabili?

    ciao

  10. #10
    Originariamente inviato da moles
    Un'altra cosa....
    non sono pratico in mysql
    devo inserirla esattamente come me l'hai mandata o devo modificare variabili?

    ciao
    devi naturalmente cambiare i nomi dei campi mettendo i tuoi, e mettendo il numero di giorni che vuoi.


    quando la provi per la prima volta, prima di cancellare fai una copia di backup del db
    Talvolta anche una persona apparentemente inutile si rivela un abile samurai dalla forza di mille uomini, dimostrando di poter rinunciare alla vita e che il suo cuore si è completamente identificato con quello del suo padrone

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.