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 Essaye de comprendre ce que tu fait 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
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
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;
}
}