Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1977 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Mysql supprimer donnes anterieure à une date

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Mysql supprimer donnes anterieure à une date

n°1775805
ziha
nezha
Posté le 22-08-2008 à 09:02:10  profilanswer
 

Bonjour,
 
J'aimerai supprimer de ma table tous les données antérieure à une date que je saisi à partir d'un formulaire  
 
le souci est mes dates dans la table sont de format : "Y-m-d h:m:s".  
 
J'ai essayté sa mais sa n'a pas marché. Veuillez me dire svp ce qui ne va pas, merci.  
 
$submit = $_POST['submit'];  
 
if ($submit)  
{  
$ok = false;  
 
 
$date = $_POST['date'];  
 
if ($date)  
{  
 
$db_query = "DELETE * FROM cdr WHERE calldate < '$date'";  
$db_result = mysql_query($db_query);  
$db_query = "UPDATE cdr";  
if (mysql_affected_rows())  
{  
$ok = true;  
}  
 
}

mood
Publicité
Posté le 22-08-2008 à 09:02:10  profilanswer
 

n°1775807
FlorentG
Posté le 22-08-2008 à 09:05:23  profilanswer
 

Faut utiliser la fonction DATEDIFF, genre :

Code :
  1. DELETE * FROM cdr WHERE DATEDIFF(calldate, $date) < 0


Oublie pas aussi un mysql_real_escape_string sur $date

n°1775832
ziha
nezha
Posté le 22-08-2008 à 09:52:46  profilanswer
 

Merci FlorentG mais sa n'a pas marché, j'ai essayé date avec '$date' et comme sa $date,  je comprends pas prk il met cette erreur
 
Error : You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '* FROM cdr WHERE DATEDIFF(calldate, 2008-12-19) < 0' at line 1  

n°1775834
FlorentG
Posté le 22-08-2008 à 09:54:13  profilanswer
 

T'as oublié les quotes c'est pour ça [:sadnoir] Essaye de comprendre ce que tu fait :D Et de lire les messages d'erreurs ;)

 

Aller je vais tout donner :

Code :
  1. $db_query = 'DELETE FROM cdr WHERE DATEDIFF(calldate, \'' . mysql_real_escape_string($date) . '\') < 0';


Message édité par FlorentG le 22-08-2008 à 10:03:09
n°1775838
anapajari
s/travail/glanding on hfr/gs;
Posté le 22-08-2008 à 10:02:20  profilanswer
 

sans l'étoile sinon ça risque pas de marcher [:cupra]

Code :
  1. DELETE FROM...


---------------
Software and cathedrals are much the same - first we build them, then we pray.
n°1775840
FlorentG
Posté le 22-08-2008 à 10:03:16  profilanswer
 

Hein ? [:dawak]

n°1775847
ziha
nezha
Posté le 22-08-2008 à 10:16:48  profilanswer
 

Désolée de t'embêter mais je suis vraiment débutante en mysql et j'ai copié ta ligne mais ça marche tjs pas :( il e fait la même erreur  
 
Error : You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '* FROM cdr WHERE DATEDIFF(calldate, \'' . mysql_real_escape_string(2007-12-24) .' at line 1  
 
Merci  bcp pour votre aide

n°1775851
FlorentG
Posté le 22-08-2008 à 10:23:21  profilanswer
 

Y'a des quotes en trop, regarde il n'a pas exécuté la fonction, mais il l'a mise comme ça dedans... Attention aux quotes et double-quotes (' ou " )

n°1775855
ziha
nezha
Posté le 22-08-2008 à 10:28:01  profilanswer
 

j'ai mis de quotes en trop  
voila ce que j'ai mis
 
$db_query= "DELETE * FROM cdr WHERE DATEDIFF(calldate, \'' . mysql_real_escape_string($date) . '\') < 0";
comme sa aussi sa n'a pas marché
 
$db_query= 'DELETE * FROM cdr WHERE DATEDIFF(calldate, \'' . mysql_real_escape_string($date) . '\') < 0';

n°1775856
anapajari
s/travail/glanding on hfr/gs;
Posté le 22-08-2008 à 10:28:13  profilanswer
 

Je te conseille cette façon d'écrire une requête pour plus te mélanger les pinceaux:

Code :
  1. $query = sprintf("delete from WHERE DATEDIFF(calldate, '%s') < 0",


AMA, c'est la meilleure méthode quand on dispose pas de bind params.


Message édité par anapajari le 22-08-2008 à 10:28:54

---------------
Software and cathedrals are much the same - first we build them, then we pray.
mood
Publicité
Posté le 22-08-2008 à 10:28:13  profilanswer
 

n°1775858
ziha
nezha
Posté le 22-08-2008 à 10:30:01  profilanswer
 

Ok c'étaitle * qu'il voulait pas, mnt ça marche  
merci bcp

n°1775963
grosbin
OR die;
Posté le 22-08-2008 à 13:48:07  profilanswer
 

Cette commande a l'air aussi sympa qu'elle n'est pas dispo chez 1and1 :D


---------------
Photos Panoramiques Montagnes Haute Savoie

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Mysql supprimer donnes anterieure à une date

 

Sujets relatifs
Comment attaquer le probleme php/mysql + chrono ?[VBA] concaténer une chaîne de caractère dans une date
inserer et supprimer des lignes dans un fichierRecherche programmeur php/mysql
technique de Mysqlimport dump mysql en php
[MySQL]Aide pour recuperer des bbcodespetit pg pour supprimer certaines propriétés d'un fichier son (mp3)
creer un bouton supprimer un noeud et pouvoir modifier le nom du noeudMysql : Problème d'encodage des accents...
Plus de sujets relatifs à : Mysql supprimer donnes anterieure à une date


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR