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] tri sur un tableau multi-dimensionnel


Sujet :

Langage PHP

  1. #1
    Membre averti Avatar de nicoaix
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2004
    Messages
    571
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : Décembre 2004
    Messages : 571
    Points : 362
    Points
    362
    Par défaut [Tableaux] tri sur un tableau multi-dimensionnel
    Bonjour,
    Comme le titre l'indique j'ai un petit souci sur le tri d'un tableau.
    Pour commencer voici le code:
    <?php
    //Requête SQL&#160;&#160;&#160;&#160;&#160;&#160;
    $sql_liv="SELECT * FROM Livraisons ;";
    $query_liv=mysql_query($sql_liv);
    $debut = 0;
    $fin = mysql_num_rows($query_liv);
    &#160;&#160;&#160;&#160;&#160;&#160;
    for(
    $i=$debut;$i<$fin;$i++){
    &#160;&#160;&#160;&#160;&#160;&#160;
    //Récupération des données de la base dans le tableau liv
    &#160;&#160;&#160;&#160;&#160;&#160;
    $liv&#91;'chp1'] = mysql_result($query_liv,$i,'chp1');
    &#160;&#160;&#160;&#160;&#160;&#160;
    $liv&#91;'chp2'] = mysql_result($query_liv,$i,'chp2');
    &#160;&#160;&#160;&#160;&#160;&#160;
    $liv&#91;'chp3'] = mysql_result($query_liv,$i,'chp3');
    &#160;&#160;&#160;&#160;&#160;&#160;
    $liv&#91;'chp4'] = mysql_result($query_liv,$i,'chp4');
    &#160;&#160;&#160;&#160;&#160;&#160;
    $liv&#91;'chp5'] = mysql_result($query_liv,$i,'chp5');
    &#160;&#160;&#160;&#160;&#160;&#160;
    &#160;&#160;&#160;&#160;&#160;&#160;
    //Création du tableau de tableau
    &#160;&#160;&#160;&#160;&#160;&#160;
    $tab&#91;] = $liv;
    }
    &#160;&#160;
    // composition des clés de tri
    &#160;&#160;&#160;&#160;&#160;&#160;
    foreach($tab as $k=>$v){
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;
    $chp1&#91;$k] = $v&#91;'chp1'];
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;
    $chp2&#91;$k] = $v&#91;'chp2'];
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;
    $chp3&#91;$k] = $v&#91;'chp3'];
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;
    $chp4&#91;$k] = $v&#91;'chp4'];
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;
    $chp5&#91;$k] = $v&#91;'chp5'];
    &#160;&#160;&#160;&#160;&#160;&#160;}
    &#160;&#160;&#160;&#160;&#160;&#160;
    //Tri du tableau
    &#160;&#160;&#160;&#160;&#160;&#160;
    array_multisort($chp1,SORT_ASC,$tab);
    &#160;&#160;&#160;&#160;&#160;&#160;
    //Affichage de la 1ere ligne du tableau contenant les intitulés des colonnes
    &#160;&#160;&#160;&#160;&#160;&#160;
    echo"
    &#160;&#160;&#160;&#160;&#160;&#160;<table width=\"100%\" border=\"1\">
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<tr>
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<td><div align=\"right\">chp1</div></td>
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<td><div align=\"right\">chp2</div></td>
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<td><div align=\"right\">chp3</div></td>
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<td><div align=\"right\">chp4</div></td>
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<td><div align=\"right\">chp5</div></td>
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</tr>"
    ;
    &#160;&#160;&#160;&#160;&#160;&#160;
    &#160;&#160;foreach(
    $tab as $cle => $valeur){
    &#160;&#160;&#160;&#160;&#160;&#160;echo
    "
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<tr>
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<td><div align=\"right\">"
    .$tab&#91;$cle]&#91;'chp1']."</div></td>
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<td><div align=\"right\">"
    .$tab&#91;$cle]&#91;'chp2']."</div></td>
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<td><div align=\"right\">"
    .$tab&#91;$cle]&#91;'chp3']."</div></td>
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<td><div align=\"right\">"
    .$tab&#91;$cle]&#91;'chp4']."</div></td>
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<td><div align=\"right\">"
    .$tab&#91;$cle]&#91;'chp5']."</div></td>
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</tr>
    &#160;&#160;&#160;&#160;&#160;&#160;"
    ;
    &#160;&#160;}
    //Affichage de la balise de fermeture du tableau&#160;&#160;
    echo"<\table>";
    &#160;&#160;&#160;&#160;&#160;&#160;
    ?>
    Colorez votre code PHP sur les forums grâce à Developpez.com

    Le principe est le suivant:
    1- Extraction des données de la table Livraisons de la base de données.
    2- Incorporation de chaque ligne de la table Livraisons dans un tableau php intitulé liv
    3- Incorporation des tableaux liv dans le tableau intitulé tab
    4- Tri du tableau tab
    5- Affichage du tableau tab

    Le problème est que le tri tel que je le fais ne fonctionne pas et je ne vois pas ce qui pose problème.

    Merci pour votre aide.

  2. #2
    Membre éprouvé
    Inscrit en
    Juillet 2004
    Messages
    1 027
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 1 027
    Points : 1 164
    Points
    1 164
    Par défaut
    Ce ne serait pas plus simple de le trier dans ta requete directement ?

    Quelque chose comme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $sql_liv="SELECT * 
    FROM Livraisons 
    ORDER BY chp1 ASC, chp2 DESC,chp3 ASC,chp4 DESC,chp5 ASC";
    non ?

    Les ASC c'est juste pour l'exemple j'ai mis sa comme sa hein.

Discussions similaires

  1. Réponses: 2
    Dernier message: 14/12/2011, 13h12
  2. Réponses: 5
    Dernier message: 13/02/2008, 17h52
  3. [Tableaux] tri sur un tableau multidimensionnel
    Par maysa dans le forum Langage
    Réponses: 3
    Dernier message: 11/04/2007, 08h53
  4. [Tableaux] Tri sur un tableau à 2 dimensions
    Par DrOOMMgba dans le forum Langage
    Réponses: 4
    Dernier message: 03/04/2007, 19h47
  5. [Tableaux] Tri d'un tableau multi-dimensions
    Par lodan dans le forum Langage
    Réponses: 6
    Dernier message: 05/12/2006, 10h08

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