Menu

MySQL : Accès au X derniers enregistrements [Fermé]

zebiloute 105 Messages postés mardi 15 janvier 2002Date d'inscription 14 avril 2005 Dernière intervention - 25 janv. 2002 à 11:55 - Dernière réponse : jisisv 3662 Messages postés dimanche 18 mars 2001Date d'inscriptionContributeurStatut 15 janvier 2017 Dernière intervention
- 25 janv. 2002 à 15:10
Ayant des connaissance très limité en SQL, je désire obtenir, les X derniers enregistrements d'une table.

Au début je faisais ç avec la clé primaire qui est en 'autoincrément'. Mais le Pb est quand je supprime un des enregitrements cela fout tous en vrac. La méthode qui consiste à tous les récupérer (SELECT * FROM table) et ne prendre que les X dernier prend beaucoup trop de ressources( Et ren plus ce n'est po propre du tout (Au niveau code)!! )

Donc si il y a un gourou SQLien(ne) qui peut me filer un coup de main, cela serait sympa.

Merci d'avance.

Quand ça veut Po ça veut po !!!
- Et ben y a plus qu'à attendre -
Afficher la suite 

3 réponses

jisisv 3662 Messages postés dimanche 18 mars 2001Date d'inscriptionContributeurStatut 15 janvier 2017 Dernière intervention - 25 janv. 2002 à 15:10
+4
Utile
Essye une requête SQL du genre

SELECT field1,field2 FROM table1 ORDER BY id DESC LIMIT $X

Johan Daine
Cette réponse vous a-t-elle aidé ?  
Freedoomer - 25 janv. 2002 à 12:26
+3
Utile
Tu dois mettre un id sur ta table avec la valeur autoincrement, et lors de ta requete tu rajoute order by id desc .. ensuite tu boucle pour n'afficher que les dix premiers.
zebiloute 105 Messages postés mardi 15 janvier 2002Date d'inscription 14 avril 2005 Dernière intervention - 25 janv. 2002 à 13:40
C'est ce que je faisais avant :

Ex pour les Id :

1, 2, 3, 4 , 8, 9, 10, 11, 14, 15, 17

Moi ce que je voudrais c'est qu'une requête ne me fournissent que les 5 derniers enregistrements. donc

10, 11, 14, 15, 17.

La méthode basic voudrais que je fasse :
"SELECT * FROM table ORDER BY Id" et avec la fonction "mysql_fetch_array", ou alors "mysql_data_seek", je vais directement au pointeur d'enregistrements (COUNT-5).

Mais là tu vois que la requête de base doit stocker tous les enregistrements de la table dans une zone mémoire. Ceci n'est pas terrible d'un point de vue programmation. en effet on alloue énormement de mémoir (Là y qu'une 15ène d'enregistrement, mais lorsqu'il y en a 10000 le Pb de mémoire va devenir pharaonique).

Tu vois le Pb. Je ne connais pas assez ce domaine, et c'est pour cela que je demande si il y a une méthode simple et efficace d'obtenir les X dernier enregistrement d'une tabel sachant que les séquence ne sont pas linéaire (voir Ex).

Quand ça veut Po ça veut po !!!
- Et ben y a plus qu'à attendre -