Newsgroup: it.comp.www.php
Titolo: cancellare i dati vecchi

Ciao a tutti. Spero possiate aiutarmi!
Ho fatto questo codice:
<?php
session_start();
$nome_precedente=$_SESSION["nome"];
$pw_precedente=$_SESSION["password"];
[...]
include("dati.php");
include("connessione.php");
$qCancella="DELETE FROM centro WHERE ora <= DATE_SUB (ora, INTERVAL 14 
MINUTES)";
?>
Lo scopo sarebbe cancellare i dati nella tabella "centro" che sono più 
vecchi di 1/4 d'ora...
Ma non funziona e non riesco ad uscirne, mi trovo sempre gli stessi dati 
in visualizzazione... come posso fare? grazie a tutti...

 MINUTES)";
[...]
Mi sembra che tu stia confrontando il datatime contenuto nel
campo ora con il medesimo datatime diminuito di 14 minuti, per
cui la condizione della WHERE non è mai verificata.
Prova con:
$qCancella = 'DELETE FROM centro '.
             'WHERE '.
             'ora <= DATE_SUB(NOW(), INTERVAL 14 MINUTES)';
Ciao.
-- 
Federico R.

 Ciao.
Grazie mille, ma non mi funziona nemmeno così... :(
$qCancella = 'DELETE FROM centro '.
              'WHERE '.
              'ora <= DATE_SUB(NOW(), INTERVAL 14 MINUTES)';
altre idee??
ciao e grazie ancora!
kevin

 altre idee??
$qCancella = 'DELETE FROM centro '.
             'WHERE '.
             'ora <= DATE_SUB(NOW(), INTERVAL 14 MINUTE)';
 
La keyword corretta è MINUTE e non MINUTES. Mi era sfuggita
nel primo post...
Ciao.
-- 
Federico R.

 Ciao.
Non funziona ancora...
Cmq nel db č settato il campo ora come "time" e "00:00:00"
Puņ cambiar qualcosa? Ciao e di nuovo grazie di tutto...
Kevin

 Puņ cambiar qualcosa? 
No, ho provato e anche se il campo ora č di tipo TIME la query
funziona correttamente. A questo punto l'errore č da qualche
altra parte.
Come esegui la query? Imposta l'error_reporting in modo da
visualizzare tutti gli errori. Eventualmente riporta una parte
del codice. Hai provato ad eseguire direttamente la query
tramite qualche tool come PHPMyADMIN o simili?
-- 
Federico R.

 
in effetti hai ragione te... purtroppo perň se la uso nella pagina php 
non funziona... Invece in phpmyadmin funziona benissimo... non so che dire..
In pratica ho una prima pagina in cui includo la seconda che richiama la 
query.. in questo modo:
<?php
//pagina1.php
session_start();
$nome_precedente=$_SESSION["nome"];
$pw_precedente=$_SESSION["password"];
include("pagina3.php");
include("pagina4.php");
include("cancella.php");
/* poi il codice va avanti eseguendo il resto correttamente..*/
?>
<?php
/* Questa č la seconda pagina (la pagina della cancellazione appunto) ed 
č scritta cosě:*/
session_start();
$nome_precedente=$_SESSION["nome"];
$pw_precedente=$_SESSION["password"];
include("pagina3.php");
include("pagina4.php");
$qCancella = 'DELETE FROM centro '.
              'WHERE '.
              'ora <= DATE_SUB(NOW(), INTERVAL 14 MINUTE)';
/*come puoi vedere questa pagina inizia e finisce coi tag php e se 
aggiungo un "Echo" da qualche parte lo esegue correttamente..
Pagina3 e Pagina4 sono le pagine che mi servono per stabilire la 
connessione e selezionare il db con le relative password..*/
?>
Ti ringrazio ancora del tuo prezioso aiuto...
ciao, Kevin.

               'ora <= DATE_SUB(NOW(), INTERVAL 14 MINUTE)';
[...]
Dov'č che esegui la query?
-- 
Federico R.

Federico R. ha scritto:

ehm... ops! come la eseguo? io avevo provato a fare:
$qCancella->execute;
perň nn funzionva lo stesso...

 però nn funzionva lo stesso...
Devi usare la funzione mysql_query().
Per esempio:
$qCancella = 'DELETE FROM centro '.
             'WHERE '.
             'ora <= DATE_SUB(NOW(), INTERVAL 14 MINUTE)';
$result = mysql_query($qCancella) or die (mysql_error());
Ulteriori informazioni:
http://it.php.net/manual/it/function.mysql-query.php
-- 
Federico R.

Federico R. ha scritto:

Funziona alla perfezione! Grazie Mille!
Grazie di tutto... ciao...
Kevin