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.
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.
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?
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);
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
ma date('z') restituisce il numero del giorno corrente come giorno dell'anno ( da 0 a 365)...è questo quello che vuoi fare?codice:...data scadenza <= '$data'.. dove $data = date('z');
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
$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...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?
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
Ti ringrazio e ti farò sapere se funziona
Ciao
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.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
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