ma requete MySQL me retourne un tableau, mais je voudrais le parcourir en sens inverse.
J'ai voulu inversé avec array_reverse, mais ca plante
ma requete MySQL me retourne un tableau, mais je voudrais le parcourir en sens inverse.
J'ai voulu inversé avec array_reverse, mais ca plante
Ben le plus simple est de modifier ta requete avec un order by "desc" a la place de "asc".
Sinon, tu peux aussi utiliser count pour savoir combien il y a d'élément dans ton tableau, placer un indice a la valeur de count et parcourir ton tableau de "count" a 0.
Il doit y avoir moyen de le faire plus rapidement mais ceci devrait marcher :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 $tab = array(); while($donnees = mysql_fetch_array($req)) { $tab[] = $donnees; } for($i=count($tab);$i>0;$i--) { // Ici le tableau est parcouru en sens inverse }
j'ai déjà essayé en modifiant la requète. Mais par défaut, c'est enregistré avec DESC, et si je fait la requete avec order by ... ASC, ca inverse tout la base, et pas le résultat, donc le résultat est changé
Je testerai la réponse de Oprichnik demain. Je te tient au courant
merci
Euh... asc et desc servent précisement a retourner un résultat dans un ordre précis, a moins que t'ai un cas vicieux, ca devrait pourvoir se faire.j'ai déjà essayé en modifiant la requète. Mais par défaut, c'est enregistré avec DESC, et si je fait la requete avec order by ... ASC, ca inverse tout la base, et pas le résultat, donc le résultat est changé
Je ne garanti rien, mais si tu peux poster ta requete, j'essairai de jeter un oeil si tu veux.
Effectivement c'est un comportement étrange, logiquement seule la réponse est classée par ordre ascendant ou descandant sans rien modifier à la base.Envoyé par phoque.r
Ah oui j'oubliais aussi de dire que j'ai utilisé la fonction array_reverse pour parcourir un tableau à l'envers et ça marche très bien avec un foreach. N'aurais-tu pas oublié le paramètre optionnel de la fonction que tu dois passer à TRUE?
Essaie en remplaçant bool preserve_keys comme ceci :array array_reverse ( array array [, bool preserve_keys] )
Code : Sélectionner tout - Visualiser dans une fenêtre à part $tableauInverse = array_reverse ($tontableau, TRUE);
Dernière modification par webrider ; 13/04/2007 à 08h18.
je me suis débrouillé autrement, j'ai inversé l'ordre dans la base, et après apporté les modifications nécessaires au traitement...
Partager