Problème requête : VARIABLE sur la LIMIT

Eléphant du PHP | 93 Messages

18 sept. 2006, 10:47

Bonjour,

j'ai un petit problème de requête.

Effectuant une RAZ partielle des unités des persos dans mon jeu de rôle, je fais une série de requêtes sans souci pour prendre les informations dont j'ai besoin, mais à la fin j'ai un problème avec la requête LIMIT

Comme chaque perso aura la moitié de ses unités suprimées, à partir des plus récentes, je fais une requête du genre :

( si le perso possède 100 unités de type soldat )
mysql_query("DELETE from unites where type='soldats' and arrakeen='".$nom."' ORDER BY id DESC LIMIT 50");
Là pas de problème évidemment.

CE QUE JE CHERCHE A FAIRE, c'est à avoir une variable au préalable que je trouve sans problème :
$retsoldats=($soldats/2);
Soit la moitié des soldats pour la variable $retsoldats ( soldats à retirer )

Je voudrais que la limite SOIT cette variable , comme ceci :
mysql_query("DELETE from unites where type='soldats' and arrakeen='".$nom."' ORDER BY id DESC LIMIT '".$retsoldats."'");
Et ça ne fonctionne pas.

Comment puis-je faire ?
Avez-vous une idée ?

Merci d'avance pour ceux qui vont se penchr sur le problème.
Car là je cherche et je coince vraiment.
Modifié en dernier par ItaloBADI le 18 sept. 2006, 11:16, modifié 1 fois.

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

18 sept. 2006, 11:11

Dans ta requete où la limite est en dur, tu écrit

Code : Tout sélectionner

LIMIT 50
Dans ta requete avec la variable, tu écrit

Code : Tout sélectionner

LIMIT '".$var."'
ce qui va donner

Code : Tout sélectionner

LIMIT '50'
Est-ce que tu vois le soucis ? ;)

Sinon, même remarque que sur l'autre post : pas la peine de mettre tout le post en gras, c'est agressif. De même, "ca ne marche pas" n'aide pas trop à la compréhension des erreurs ;)
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Eléphant du PHP | 93 Messages

18 sept. 2006, 11:15

Oui, je vois le problème.

Encore désolé pour la mise en gras.
Et quand je disais ça ne marche pas, en effet, j'aurais dpu précisé que rien ne se passait en fait.
Cela s'explique par le fait que du coup, ça devait donner l'ordre LIMIT 0 puisque le chiffre ne passait pas...

Merci beaucoup Zeus ! :wink: