IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

[Tableaux] Parcourir un tableau en sens inverse


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    158
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 158
    Points : 69
    Points
    69
    Par défaut [Tableaux] Parcourir un tableau en sens inverse
    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

  2. #2
    Membre expérimenté
    Avatar de Rakken
    Homme Profil pro
    Inscrit en
    Août 2006
    Messages
    1 257
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 1 257
    Points : 1 341
    Points
    1 341
    Par défaut
    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.

  3. #3
    Membre habitué

    Homme Profil pro
    Developpeur web
    Inscrit en
    Septembre 2006
    Messages
    225
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Belgique

    Informations professionnelles :
    Activité : Developpeur web
    Secteur : Enseignement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 225
    Points : 180
    Points
    180
    Par défaut
    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
     
    }

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    158
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 158
    Points : 69
    Points
    69
    Par défaut Merci
    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

  5. #5
    Membre expérimenté
    Avatar de Rakken
    Homme Profil pro
    Inscrit en
    Août 2006
    Messages
    1 257
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 1 257
    Points : 1 341
    Points
    1 341
    Par défaut
    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é
    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.

    Je ne garanti rien, mais si tu peux poster ta requete, j'essairai de jeter un oeil si tu veux.

  6. #6
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par phoque.r
    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
    Effectivement c'est un comportement étrange, logiquement seule la réponse est classée par ordre ascendant ou descandant sans rien modifier à la base.

  7. #7
    Invité
    Invité(e)
    Par défaut
    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?

    array array_reverse ( array array [, bool preserve_keys] )
    Essaie en remplaçant bool preserve_keys comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $tableauInverse = array_reverse ($tontableau, TRUE);
    Dernière modification par webrider ; 13/04/2007 à 08h18.

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    158
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 158
    Points : 69
    Points
    69
    Par défaut Ben voila
    je me suis débrouillé autrement, j'ai inversé l'ordre dans la base, et après apporté les modifications nécessaires au traitement...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 4
    Dernier message: 18/09/2008, 20h44
  2. [Tableaux] Parcourir un tableau
    Par gewixmassiv dans le forum Langage
    Réponses: 2
    Dernier message: 19/03/2008, 17h17
  3. Réponses: 4
    Dernier message: 11/02/2008, 18h03
  4. [Tableaux] Parcourir un tableau PHP
    Par patjaff dans le forum Langage
    Réponses: 3
    Dernier message: 27/12/2007, 16h11
  5. [Tableaux] Parcourir un tableau ?
    Par Kotik dans le forum Langage
    Réponses: 18
    Dernier message: 06/04/2006, 10h01

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo