SELECTIONNER les 5 dernière ligne d'une table

Messages postés
3498
Date d'inscription
lundi 16 juillet 2007
Dernière intervention
28 février 2014
- 15 juin 2008 à 17:20 - Dernière réponse :
Messages postés
23250
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
16 novembre 2018
- 7 sept. 2018 à 18:47
Salut,

J'ai un problème avec une requête SQL :

Comme indiqué dans le titre je veus selectionner seuleument les 5 derniere ligne mais dans l'ordre mais ça ne marche pas ...

Ma requête :

$query  = "SELECT * FROM $tb_membres ORDER BY id DESC LIMIT 5 ";

a++

Si la réponse vous convient, pensez : Réponse acceptée !
Afficher la suite 

Votre réponse

10 réponses

Meilleure réponse
Messages postés
3498
Date d'inscription
lundi 16 juillet 2007
Dernière intervention
28 février 2014
- 29 juin 2008 à 10:25
3
Merci
$query  = "SELECT * FROM $tb_membres ORDER BY date DESC LIMIT 5 ";

Si la réponse vous convient, pensez : Réponse acceptée !

Merci nicomilville 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 90 internautes ce mois-ci

oui mais là elles sont en ordre inverse. Donc réponse fausse.
Messages postés
23250
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
16 novembre 2018
- 7 sept. 2018 à 18:47
10 ans plus tard... je ne sais pas si ton commentaire va servir.
A tout hasard.. si ça peut t’intéresser...
il doit être possible de faire un truc du genre
SELECT T.*
FROM (
   SELECT * FROM 
   $tb_membres 
   ORDER BY id DESC LIMIT 5 
) T
ORDER BY T.id ASC LIMIT 5 


Mais bon... la première requête, selon moi, suffisait. La réorganisation (dans l'ordre..) des données pouvant se faire simplement dans le programme en lui même...
En php avec des array_reverse par exemple....
Commenter la réponse de nicomilville
Messages postés
68
Date d'inscription
dimanche 1 avril 2007
Dernière intervention
7 juillet 2008
- 28 juin 2008 à 00:42
2
Merci
Je ne trouve pas TOP dans les manuels MySQL que je possède. Je déconseille donc son utilisation car ce mot-clé n'existe probablement pas dans toutes les versions.

Quant à la requête, elle est formulée correctement, rien ne cloche avec. Reste à savoir quelle est la structure de la table et comment les enregistrements sont supposés être triés. Si id est une clé primaire de type entier, alors le tri est plutôt étrange, on se serait attendu à ce que les membres soient triés par leur pseudo par exemple. Le problème vient sûrement de quelque chose de cet ordre.
Commenter la réponse de Farfadh
Messages postés
3498
Date d'inscription
lundi 16 juillet 2007
Dernière intervention
28 février 2014
- 28 juin 2008 à 10:14
2
Merci
Effectivement les membres sont trié par leurs id et les dernier ont l'id la plus grande donc...

a++

Si la réponse vous convient, pensez : Réponse acceptée !
Commenter la réponse de nicomilville
Messages postés
1
Date d'inscription
lundi 10 janvier 2011
Dernière intervention
2 février 2011
- 2 févr. 2011 à 14:27
1
Merci
Je vous sollicite pour une aide sur une requête sql sous delphi 5, je veut afficher seulement une ligne d'une table qui contient comme clé N°; en introduisant un numéro dans edit, en basant sur ce numéro on doit afficher seulement les autres attribut de ce numéro pour une modification,Merci d'avance.
Commenter la réponse de samirainfo
Messages postés
160
Date d'inscription
lundi 18 février 2008
Dernière intervention
8 janvier 2010
- 16 juin 2008 à 21:59
0
Merci
Utilise l'argument TOP 5 dans ta requête et non Limit 5

Bonne prog
Supra3000
Commenter la réponse de Supra3000
Messages postés
68
Date d'inscription
dimanche 1 avril 2007
Dernière intervention
7 juillet 2008
- 29 juin 2008 à 04:00
0
Merci
Alors je ne sais pas quoi te dire, je viens de tester ton code, il fonctionne chez moi. Du moins comme je pouvais m'y attendre, c'est à dire en renvoyant les cinq dernière lignes triés par ordre numérique d'id décroissant.

Pourrais-tu nous donner la structure complète de la table, le résultat que tu obtiens et ce que tu aurais souhaité obtenir ? Tu peux y ajouter quelques ou tous les enregistrements de ta table si tu juges que c'est nécessaire.
Commenter la réponse de Farfadh
Messages postés
68
Date d'inscription
dimanche 1 avril 2007
Dernière intervention
7 juillet 2008
- 29 juin 2008 à 09:52
0
Merci
Euh, ce que j'obtiens et que tu es sencé obtenir c'est un ordre décroissant. Je ne comprend même pas comment tu peux obtenir un ordre croissant, si SQL avait trié dans ce sens à la base, il t'aurait sélectionné les cinq premiers enregistrements, à moins qu'il ait un boulon mal serré. Je peux voir la portion de ton script où tu définit ta requête, où tu l'effectues et où tu la lit ? Avec quelle fonction tu lis le résultat de ta requête ? Est-ce que tu stockes les enregistrements quelque part ? Ou bien est-ce que tu les affiches directement ? Si tu stockes tes enregistrements dans un tableau il est possible que tu ne le lises pas dans l'ordre original.

Voila mon script qui donne bien un ordre décroissant :
$requete=   ' SELECT   *  FROM  table  ORDER  BY  id  DESC  LIMIT  5';
$resultat =  mysql_query($requete);
if($resultat)
    while($enregistrement=  mysql_fetch_array($resultat))
         echo($enregistrement.  '
');

PS : c'est un détail mais tes deux champs 'valider' et 'code_validation' peuvent être de type TINYINT, et tous tes champs entiers avoir l'option UNSIGNED.
Commenter la réponse de Farfadh
Messages postés
3498
Date d'inscription
lundi 16 juillet 2007
Dernière intervention
28 février 2014
- 17 juin 2008 à 08:01
-1
Merci
merci, je vais essayer !

a++

Si la réponse vous convient, pensez : Réponse acceptée !
Commenter la réponse de nicomilville

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.