cdrik75016
Messages postés12Date d'inscriptionmardi 4 octobre 2005StatutMembreDernière intervention20 février 2017
-
23 mai 2006 à 14:41
aieeeuuuuu
Messages postés698Date d'inscriptionjeudi 16 janvier 2003StatutMembreDernière intervention20 mai 2011
-
23 mai 2006 à 17:17
Bonjour tous le monde, je voudrais vider chaque table de ma base (a part client et serveur) en fonction d'une date récupéré dans un XML. Alors j'ai fais ceci :
//On récupère le nom de toutes les tables
$query = "SHOW TABLES FROM nombdd";$result mysql_query($query) or die('>> Erreur SQL :'.$query.'
'.mysql_error());
//On parcours chaque table
while ($row = mysql_fetch_row($result))
{
//Si la table n'est pas client ou serveur
if( ($row[0]!= 'client') && ($row[0]!= 'serveur') )
{
//On vide les enregistrements de la table supérieur à 15jours
$query2 = "DELETE FROM ".$row[0]." WHERE SUBDATE('".$dateModif."', INTERVAL 15 DAY)";
//$query2 = "DELETE FROM ".$row[0]." WHERE (TO_DAYS(NOW()) - TO_DAYS('".$dateModif."')) > 15"; $result2 mysql_query($query2) or die('>> Erreur SQL :'.$query2.'
'.mysql_error());
echo "=> $row[0] vidée...
";
}
}
Comme vous voyez, j'ai essayé deux méthodes . Les deux me vide bien mes tables mais quel que soit la date...On est le 2006-05-23, et ça ma viré un enregistrement ayant dans le champ Date 2006-05-18, pourtant ça daté bien de moins de 15jours.
Si vous avez une réponse a mon probleme, faites moi signe !!!!
PS : je précise que les champs des tables que je veux vidé sont bien de type date et la date récupéré dans le xml est bien sous la forme AAAA-MM-JJ
aieeeuuuuu
Messages postés698Date d'inscriptionjeudi 16 janvier 2003StatutMembreDernière intervention20 mai 20113 23 mai 2006 à 15:57
salut
je ne vois pas ou tu compare ta date avec ton champs date.
en fait je ne vois pas ou tu appelle ton champs date. si j'ai bien compris ton code, ton $dateModif est ta date de référence, et donc dans ta requete tu compare la date du jour (NOW) a ta date de reference. donc le resultat est toujours vrai, et il supprime tous les enregistrements.
Je pense qu'il faut donc que tu rajoute 15 jour a ta date de reference, et que tu supprimer tous les enregistremenents dont la date est inferieure
aieeeuuuuu
Messages postés698Date d'inscriptionjeudi 16 janvier 2003StatutMembreDernière intervention20 mai 20113 23 mai 2006 à 17:17
bah ouais, plus vite que moi en tout cas :)
nan en fait j'ai commencé a repondre, puis j'ai du faire autre chose, et j'ai repris plus tard, mais comme j'ai pas rafraichit ma fenetre, je n'ai pas vu ta reponse...