[PHP/MySQL] LIMIT en partant de la fin

LIMIT en partant de la fin [PHP/MySQL] - PHP - Programmation

Marsh Posté le 09-02-2005 à 22:02:22    

Voilà, pour avoir les 10 premiers éléments d'une requête, je fais :

Code :
  1. select * from table limit 0,10


 
Mais pour prendre les 10 derniers, existe-t-il une commande spéciale ou je dois faire comme ceci :

Code :
  1. select * from table limit $nb_total-10,$nb_total

Reply

Marsh Posté le 09-02-2005 à 22:02:22   

Reply

Marsh Posté le 09-02-2005 à 22:07:25    

bah il suffit de mettre le bon "order By [le champ] DESC" exemple

Code :
  1. SELECT * from news ORDER BY date DESC LIMIT 10


Message édité par dreameddeath le 09-02-2005 à 22:08:58
Reply

Marsh Posté le 09-02-2005 à 22:13:16    

Et comment tu fais pour savoir avant d'excécuter la requête combien de ligne la requête va trouver?
Le mieux serait d'utiliser un tri "order by colone".
Pour récupérer les dernier, il suffit d'inverser le tri "order by colone desc" et de prendre que les premiers. Mais faut pas oublier de traiter le résultat de la requête dans le sens inverse de la normale pour te retrouvé avec les données à l'endroit.
La seconde solution, c'est de tout récupérer, de vérifier combien de ligne la base de donnée envoie au script et de déplacer le compteur à la 10éme ligne en partant de la fin. Mais sur une grosse table, le transfert de toutes les données peut prendre beaucoup de temps. Par contre ca poiurait demander moins de changement dans le code php.

Reply

Marsh Posté le 09-02-2005 à 22:13:59    

ah ben vi, maintenant que tu le dis, ça me revient [:ddr555]
[:neowen]

Reply

Sujets relatifs:

Leave a Replay

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