garudra
Messages postés8Date d'inscriptionlundi 21 juillet 2008StatutMembreDernière intervention 1 octobre 2010
-
29 mars 2009 à 18:39
garudra
Messages postés8Date d'inscriptionlundi 21 juillet 2008StatutMembreDernière intervention 1 octobre 2010
-
1 avril 2009 à 16:53
Bonjour,
j' ai un problème pour conserver seulement les 50 derniers messages d'une base de donnée, j'ai essayé les codes suivants:
mysql_query("DELETE * FROM jeux_video ORDER BY ID DESC LIMIT 50, 10000") or die(mysql_error() );
J'obtiens le message suivant:
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 jeux_video ORDER BY ID DESC LIMIT 50, 10000' at line 1
ce code marche nickel avec SELECT !
mysql_query("DELETE FROM jeux_video WHERE ID BETWEEN 50 AND 10000 ORDER BY ID DESC ")or die(mysql_error() );
Là, je n'ai aucun message d'erreur, mais il efface les entrées > 50, sans tenir compte d' ORDER BY ID DESC, qui à priori ne fonctionne pas avec DELETE, alors que ça marche très bien avec SELECT, Je ne comprend plus RIEN!
Vonscott
Messages postés61Date d'inscriptionvendredi 6 janvier 2006StatutMembreDernière intervention19 septembre 2011 30 mars 2009 à 15:38
Salut,
Tu ne pourras pas le faire directement, mais tu peux ruser
$req = mysql_query("SELECT ID FROM jeux_video ORDER BY ID DESC LIMIT 50, 10000") or die(mysql_error() );
while($res = mysql_fetch_array($req))
{
mysql_query("DELETE FROM jeux_video WHERE ID = $res['ID'] ") or die(mysql_error() );
}
garudra
Messages postés8Date d'inscriptionlundi 21 juillet 2008StatutMembreDernière intervention 1 octobre 2010 31 mars 2009 à 21:25
Bonsoir,
Merci de ta réponse et excuses moi de te solliciter à nouveau!
je viens d'essayer ton code à l'instant, j'obtiens le message
Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in E:\wamp\www\ec\jeux.php on line 55
Alors, j'ai fait un essai en supprimant ['ID'] qui m' a semblé en trop vu que $res est une ID
mysql_query("DELETE FROM jeux_video WHERE ID = $res ") or die(mysql_error() );
je n'ai aucun message d'erreur, mais rien ne s'efface de ma base!
Vonscott
Messages postés61Date d'inscriptionvendredi 6 janvier 2006StatutMembreDernière intervention19 septembre 2011 1 avril 2009 à 09:46
Salut,
T_ENCAPSED_AND_WHITESPACE, une erreur de quotes, essaye ca
$req = mysql_query("SELECT ID FROM jeux_video ORDER BY ID DESC LIMIT 50, 10000") or die(mysql_error() );
while($res = mysql_fetch_array($req))
{
mysql_query("DELETE FROM jeux_video WHERE ID = $res[ID] ") or die(mysql_error() );
}
ou ca
$req = mysql_query("SELECT ID FROM jeux_video ORDER BY ID DESC LIMIT 50, 10000") or die(mysql_error() );
while($res = mysql_fetch_array($req))
{
mysql_query("DELETE FROM jeux_video WHERE ID = '$res[ID]' ") or die(mysql_error() );