Mysql supprimer donnes anterieure à une date - PHP - Programmation
Marsh Posté le 22-08-2008 à 09:05:23
Faut utiliser la fonction DATEDIFF, genre : 
| Code : 
 | 
 
Oublie pas aussi un mysql_real_escape_string sur $date
Marsh Posté le 22-08-2008 à 09:52:46
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  
Marsh Posté le 22-08-2008 à 09:54:13
T'as oublié les quotes c'est pour ça ![[:sadnoir] [:sadnoir]](https://forum-images.hardware.fr/images/perso/sadnoir.gif) Essaye de comprendre ce que tu fait
 Essaye de comprendre ce que tu fait  Et de lire les messages d'erreurs
 Et de lire les messages d'erreurs 
Aller je vais tout donner :
| Code : 
 | 
Marsh Posté le 22-08-2008 à 10:02:20
sans l'étoile sinon ça risque pas de marcher ![[:cupra] [:cupra]](https://forum-images.hardware.fr/images/perso/cupra.gif) 
 
| Code : 
 | 
Marsh Posté le 22-08-2008 à 10:16:48
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
 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
Marsh Posté le 22-08-2008 à 10:23:21
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 " )
Marsh Posté le 22-08-2008 à 10:28:01
 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';
Marsh Posté le 22-08-2008 à 10:28:13
Je te conseille cette façon d'écrire une requête pour plus te mélanger les pinceaux:
| Code : | 
AMA, c'est la meilleure méthode quand on dispose pas de bind params.
Marsh Posté le 22-08-2008 à 10:30:01
Ok c'étaitle * qu'il voulait pas, mnt ça marche  
merci bcp
Marsh Posté le 22-08-2008 à 13:48:07
Cette commande a l'air aussi sympa qu'elle n'est pas dispo chez 1and1 
Marsh Posté le 22-08-2008 à 09:02:10
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;
}
}