Suppression du plus ancien enregistrement

Suppression du plus ancien enregistrement - PHP - Programmation

Marsh Posté le 03-12-2004 à 12:42:24    

Bonjour,
Dans le cadre de mon jeu en ligne, j'aimerais établir un historique des transferts d'argent à l'intérieur de l'alliance, limitant cet historique a 20 enregistrements par alliance.
 
J'aimerais donc que lorsque qu'arrive le 21eme enregistrement, on supprime le plus vieux des 20 actuellement existant, et l'on ajoute le 21eme.
 
Comment procoder pour selectionner le plus vieux des 20.
 
Je pense à quelque chose du style:
DELETE FROM matable WHERE date_transfert<NOW() AND alliance=$id_de_mon_alliance LIMIT 0,1
 
Suis je dans la bonne voix ?

Reply

Marsh Posté le 03-12-2004 à 12:42:24   

Reply

Marsh Posté le 03-12-2004 à 13:07:01    

ORDER BY date_transfert LIMIT 1;
 
(ASC ou DESC) testes les 2 ....


---------------
from here and there -- \o__________________________________ -- la révolution de la terre, en silence
Reply

Marsh Posté le 03-12-2004 à 13:11:11    

Yop simogeo !!
Ca ne marche pas :
delete from matable ORDER BY chp_date ASC LIMIT 1

Code :
  1. Something is wrong in your syntax près de 'ORDER BY chp_date ASC LIMIT 1' à la ligne 1


Reply

Marsh Posté le 03-12-2004 à 13:15:03    

ca semble poyurtant être supporté :/
http://dev.mysql.com/doc/mysql/fr/DELETE.html


---------------
from here and there -- \o__________________________________ -- la révolution de la terre, en silence
Reply

Marsh Posté le 03-12-2004 à 13:34:15    

Hm, je testes des "variantes", mais toujours le même résultat.

Reply

Marsh Posté le 03-12-2004 à 13:37:45    

Code :
  1. Si la commande DELETE inclut la clause ORDER BY, les lignes sont effacées dans l'ordre spécifiée par cette clause. Elle n'est vraiment utilise que lorsqu'elle est couplée avec la clause LIMIT. Par exemple, la commande suivante applique la condition WHERE, trie les lignes avec la colonne timestamp, et efface la ligne la plus ancienne :
  2. DELETE FROM somelog
  3. WHERE user = 'jcole'
  4. ORDER BY timestamp
  5. LIMIT 1


...C'est exactement cela..

Reply

Marsh Posté le 03-12-2004 à 13:39:15    

Code :
  1. ORDER BY peut être utilisée avec DELETE depuis MySQL version 4.0.0.


Client API version 3.23.39 ...ca explique tout !


Message édité par smilm le 03-12-2004 à 13:39:29
Reply

Marsh Posté le 03-12-2004 à 14:00:48    

aaaaah! ca c'est pas de chance quand même!
T'as plus qu'a faire deux requètes séparées quoi ... :/

Reply

Marsh Posté le 03-12-2004 à 17:53:00    

SmilM a écrit :

Code :
  1. ORDER BY peut être utilisée avec DELETE depuis MySQL version 4.0.0.


Client API version 3.23.39 ...ca explique tout !


 
quel hebergeur ?


---------------
from here and there -- \o__________________________________ -- la révolution de la terre, en silence
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed