// on efface les lignes périmees de la table
$sql = "DELETE QUICK FROM liste WHERE date1 < '$dixjours'";
mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
En fait je ne vois pas ce que tu veux dire...Est-ce que tu as regardé le code SQL que tu génères comme je l'ai dit dans mon premier message ?
Oui c'est exactement ça, c'est bien mon problème.le test de comparaison qui est mauvais : tu compares une colonne de type DATE (AAAA-MM-JJ) avec un timestamp UNIX, ça ne peut pas fonctionner
$dansdixjours = mktime(0, 0, 0, date("m") , date("d") - 10, date("Y"));
$requete = "DELETE FROM Liste WHERE date1 >='$dansdixjours'";
echo $requete;
Code qui doit ressembler à ça :
Code : Tout sélectionner
DELETE FROM Liste WHERE date1 >= '12345679890'
$Tdansdixjours = mktime(0, 0, 0, date("m") , date("d") - 10, date("Y")); // ce serait plutôt "il y a 10 jours"
$Ddansdixjours = date("Y-m-d", $Tdansdixjours);
$requete = "DELETE FROM Liste WHERE date1 <='$Ddansdixjours'";
Là ça devrait fonctionner Code : Tout sélectionner
DELETE FROM Liste
WHERE date1 <= DATE_SUB(NOW(), INTERVAL 10 DAY);
Mon echo me donne : 2006-02-23 et même quand je colle cette date dans mon champ date1 cela ne me l'efface pas !$Tdansdixjours = mktime(00, 00, 00, date("m") , date("d") - 10, date("Y"));
$Ddansdixjours = date("Y-m-d", $Tdansdixjours);
echo $Ddansdixjours;
$requete = "DELETE FROM Liste WHERE date1 <='$Ddansdixjours'";
$Tdansdixjours = mktime(00, 00, 00, date("m") , date("d") - 10, date("Y"));
$Ddansdixjours = date("Y-m-d", $Tdansdixjours);
$requete = "DELETE FROM Liste WHERE date1 <='$Ddansdixjours'";
echo $requete; // tester ceci dans phpMyAdmin
mysql_query($requete) or die (mysql_error()); // pour voir les erreurs