Grantome Posté 16 Mai 2006 Partager Posté 16 Mai 2006 Bonsoir, Exemple: Une table avec 10 entrées de 0 à 9. Je dois prendre les 3 entrées suivante quand chiffre > 5 par ordre décroissant. Si je fais un ASC, je sélectionne 6, 7, 8. Si je fais un DESC, je sélectionne 9, 8, 7. Bref, je sèche. Comment prendre 8,7,6. Merci Lien vers le commentaire Partager sur d’autres sites More sharing options...
captain_torche Posté 16 Mai 2006 Partager Posté 16 Mai 2006 (modifié) Je ne vois pas d'autre solution que de gérer les résultats avec un array en PHP. Tu ressorts tes résultats 6,7 et 8 avec ta requête, et dans le traitement, tu les stockes dans un array en php. Ensuite, il te suffit d'utiliser la fonction krsort de PHP, pour inverser l'ordre des clés du tableau. Modifié 16 Mai 2006 par captain_torche Lien vers le commentaire Partager sur d’autres sites More sharing options...
Erwin Posté 16 Mai 2006 Partager Posté 16 Mai 2006 Ou utiliser la clause LIMIT dans la requête. http://dev.mysql.com/doc/refman/5.0/fr/select.html Lien vers le commentaire Partager sur d’autres sites More sharing options...
captain_torche Posté 17 Mai 2006 Partager Posté 17 Mai 2006 (modifié) Mais qu'il faudra coupler avec un petit relooking de la requête : Si tu sais que tu ne dois prendre que trois résultats strictement supérieurs à 5, il te suffit de faire une manip du genre : <?php$debut = 5;$nb_res = 3;$fin = $debut+$nb_res;$sql = "SELECT * FROM tatable WHERE id <= $fin ORDER BY id DESC LIMIT $nb_res";?> Modifié 17 Mai 2006 par captain_torche Lien vers le commentaire Partager sur d’autres sites More sharing options...
Grantome Posté 17 Mai 2006 Auteur Partager Posté 17 Mai 2006 Héhé, ça aurait été trop simple... Bon, ej vais mettre ce que j'ai et ce que je veux. Une table de news /**id**/**date**/**texte**/**valid**/ La news est édité seulement si valid =1 La date est à l'origine la date d'insertion de la news, mais elle est modifié en la date de validation si la news est validée. Donc, par exemple, j'ai 10 news comme ceci /**id**/**date**/**texte**/**valid**/ /...0..../..1 mai.../......bla...../.....1....../ /...1..../..2 mai.../......bla...../.....1....../ /...2..../..3 mai.../......bla...../.....1....../ /...3..../..4 mai.../......bla...../.....1....../ /...4..../..5 mai.../......bla...../.....1....../ /...5..../..1 mai.../......bla...../.....0....../ /...6..../..6 mai.../......bla...../.....1....../ /...7..../..3 mai.../......bla...../.....0....../ /...8..../..7 mai.../......bla...../.....1....../ /...9..../..8 mai.../......bla...../.....1....../ Je veux afficher les 2news après le 4 mai. Mais elles doivent être validé et par ordre décroissant. Soit les 8, 6. Si je fait un DESC, j'ai 9, 8. Si je fait un ASC, j'ai 6, 8. Donc, je dois prendre le ASC et l'inverser. Dans ce cas, les limit ne peuvent rien de plus, je vais donc me rabattre sur krsort Merci Lien vers le commentaire Partager sur d’autres sites More sharing options...
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant