SELECTIONNER les 5 dernière ligne d'une table

nicomilville 3498 Messages postés lundi 16 juillet 2007Date d'inscription 28 février 2014 Dernière intervention - 15 juin 2008 à 17:20 - Dernière réponse : jordane45 22553 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 23 septembre 2018 Dernière intervention
- 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
nicomilville 3498 Messages postés lundi 16 juillet 2007Date d'inscription 28 février 2014 Dernière intervention - 29 juin 2008 à 10:25
2
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 2

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 96 internautes ce mois-ci

oui mais là elles sont en ordre inverse. Donc réponse fausse.
jordane45 22553 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 23 septembre 2018 Dernière intervention - 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
Farfadh 68 Messages postés dimanche 1 avril 2007Date d'inscription 7 juillet 2008 Dernière intervention - 28 juin 2008 à 00:42
1
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
nicomilville 3498 Messages postés lundi 16 juillet 2007Date d'inscription 28 février 2014 Dernière intervention - 28 juin 2008 à 10:14
1
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
samirainfo 1 Messages postés lundi 10 janvier 2011Date d'inscription 2 février 2011 Dernière intervention - 2 févr. 2011 à 14:27
0
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
Supra3000 160 Messages postés lundi 18 février 2008Date d'inscription 8 janvier 2010 Dernière intervention - 16 juin 2008 à 21:59
-1
Merci
Utilise l'argument TOP 5 dans ta requête et non Limit 5

Bonne prog
Supra3000
Commenter la réponse de Supra3000
Farfadh 68 Messages postés dimanche 1 avril 2007Date d'inscription 7 juillet 2008 Dernière intervention - 29 juin 2008 à 04:00
-1
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
Farfadh 68 Messages postés dimanche 1 avril 2007Date d'inscription 7 juillet 2008 Dernière intervention - 29 juin 2008 à 09:52
-1
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
nicomilville 3498 Messages postés lundi 16 juillet 2007Date d'inscription 28 février 2014 Dernière intervention - 17 juin 2008 à 08:01
-2
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.