Cancellare riga tabella dopo 24 ore

davide1982

Nuovo Utente
14 Giu 2010
26
0
0
Salve,

vorrei cancellare una riga del mio database quando sono trascorse 24 ore dalla data registrata in quella riga.

Ho provato a fare in questo modo

PHP:
$delete_row = "DELETE FROM $id WHERE data_ora = data_ora + 86400";
mysql_query('$delete_row',$link2);

Considerando che $id è il nome della tabella che ottengo dall'url e che 'data_ora' è il campo della mia tabella settato con timestamp, qualcuno sa dirmi cosa sbaglio?

many thanks :)
 
La domanda sorge spontanea...come fa data_ora ad essere uguale a data_ora + 86400? C'è un errore logico alla base. In realtà devi confrontare la data e ora attuali con quelli salvati sul DB.
Prova una cosa del genere:

PHP:
$query = "DELETE FROM $id WHERE data_ora <= DATE_SUB(NOW(), INTERVAL 1 DAY)";
 
Non funziona è troppo generico, non sono un veggente. Hai detto che data_ora è di tipo timestamp vero? Ho fatto delle prove in locale e a me la query postata funziona correttamente.
 
Salve,

vorrei cancellare una riga del mio database quando sono trascorse 24 ore dalla data registrata in quella riga.

Ho provato a fare in questo modo

PHP:
$delete_row = "DELETE FROM $id WHERE data_ora = data_ora + 86400";
mysql_query('$delete_row',$link2);

Considerando che $id è il nome della tabella che ottengo dall'url e che 'data_ora' è il campo della mia tabella settato con timestamp, qualcuno sa dirmi cosa sbaglio?

many thanks :)

Scusa un po'!!!!!! ma cos'è questo?

PHP:
mysql_query('$delete_row',$link2);

Mica devi mettere gli apici attorno al $delete_row !!!!

Perchè non loggate mai gli errori MySql? In modo da capire cosa sta succedendo:

PHP:
mysql_query('$delete_row',$link2) or die ("Errore durante l'esecuzione della query: ".mysql_error());
 
Ultima modifica:
mmmh ok :) ho fatto un po' di confusione... ora funziona.

Cioè le doppie virgolette ho verificato che le potrei mettere (non mi dà errore e funziona), pensavo che fossero equivalenti.... 0:)
 
...Cioè le doppie virgolette ho verificato che le potrei mettere (non mi dà errore e funziona)...

Non può funzionare assolutamente in quanto non è la stessa cosa con le virgolette o senza. Non ti da errore in quanto non invochi la funzione mysql_error() come dovrebbe SEMPRE essere fatto. Se metti le virgolette non esegui la query che hai impostato nella variabile $delete_row, ma esegui la query '$delete_row' che non ha senso in quanto non è SQL. La funzione mysql_error() ti avrebbe avvertito di un errore di sintassi nella query.
 

Discussioni simili