[mysql] Vider une table en fonction d'une date [Résolu]

Messages postés
12
Date d'inscription
mardi 4 octobre 2005
Dernière intervention
20 février 2017
- 23 mai 2006 à 14:41 - Dernière réponse :
Messages postés
698
Date d'inscription
jeudi 16 janvier 2003
Dernière intervention
20 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

Merciiiiiiiii ^^
Afficher la suite 

Votre réponse

5 réponses

Meilleure réponse
Messages postés
12
Date d'inscription
mardi 4 octobre 2005
Dernière intervention
20 février 2017
- 23 mai 2006 à 15:34
3
Merci
OK je suis trop laid, j'ai trouvé tous seul, un truc con j'avais oublié de mettre le champ date :

$query2 = "DELETE FROM ".$row[0]." WHERE `Date` < SUBDATE('".$dateModif."', INTERVAL 15 DAY)";

Je suis trop bidon ^^

Merci cdrik75016 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 88 internautes ce mois-ci

Commenter la réponse de cdrik75016
Messages postés
698
Date d'inscription
jeudi 16 janvier 2003
Dernière intervention
20 mai 2011
- 23 mai 2006 à 15:57
0
Merci
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






 
Commenter la réponse de aieeeuuuuu
Messages postés
698
Date d'inscription
jeudi 16 janvier 2003
Dernière intervention
20 mai 2011
- 23 mai 2006 à 16:08
0
Merci
mouarfff, j'etais en trian de te repondre justement

:)
Commenter la réponse de aieeeuuuuu
Messages postés
12
Date d'inscription
mardi 4 octobre 2005
Dernière intervention
20 février 2017
- 23 mai 2006 à 16:10
0
Merci
lol j'allais répondre, j'comprenais pas ton message par rapport a ma derniere réponse ^^ ça va trop vite internet de nos jours :p
Commenter la réponse de cdrik75016
Messages postés
698
Date d'inscription
jeudi 16 janvier 2003
Dernière intervention
20 mai 2011
- 23 mai 2006 à 17:17
0
Merci
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...

au moins comme ca on est bien sur :)
Commenter la réponse de aieeeuuuuu

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.