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

PHP & Base de données Discussion :

ORDER BY fonctionne pas [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre actif
    Inscrit en
    Février 2009
    Messages
    626
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 626
    Points : 237
    Points
    237
    Par défaut ORDER BY fonctionne pas
    Bonjour,

    J'essai d'appliquer ORDER BY à ma requete pour classer des catégories par ordre alphabétique mais c'est curieux ça fonctionne pas, la liste s'affiche mais ordre croissant de l'id



    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
    16
    17
    public function setListCategories()
    {
    	$query = mysql_query("SELECT * FROM categories ORDER BY cat_nom ASC");
    	while ($row = mysql_fetch_array($query))
    	{
    		$cat_id = $row["cat_id"];
    		$cat_nom = $row["cat_nom"];
    		$cat_desc = $row["cat_description"];
    		// Construction : Tableau de tableau
    		$this->lstCat[$cat_id]["catId"] = $cat_id;
    		$this->lstCat[$cat_id]["catNom"] = $cat_nom;
    		$this->lstCat[$cat_id]["catDesc"] = $cat_desc;
    		// echo $gFc->lstCat[2]['idCat']; // Retourne l'id catégorie
    	}
    	# Libère la mémoire allouée
    	mysql_free_result($query);
    }

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Comment affiches-tu cette liste ?

  3. #3
    Membre actif
    Inscrit en
    Février 2009
    Messages
    626
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 626
    Points : 237
    Points
    237
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <?php
              $gFc->setListCategories();
              for ($i=1;$i<=count($gFc->lstCat);$i++) {
    ?>
     
    <tr ..
    <td ..
    <?php echo $gFc->lstCat[$i]['catNom']; ?>
    </td>
    </tr

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Tu parcoures ton tableau id par id, c'est normal qu'il soit classé par id.
    Utilise foreach au lieu d'un boucle for

  5. #5
    Membre actif
    Inscrit en
    Février 2009
    Messages
    626
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 626
    Points : 237
    Points
    237
    Par défaut
    Dans la fonction, je construit un tableau de tableau, ça n'a rien avoir avec l'id
    je comprends pas...

  6. #6
    Expert confirmé Avatar de papajoker
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2013
    Messages
    2 201
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nièvre (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2013
    Messages : 2 201
    Points : 4 665
    Points
    4 665
    Par défaut
    Citation Envoyé par dominos Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <?php
              $gFc->setListCategories();
              for ($i=1;$i<=count($gFc->lstCat);$i++) {
    En fait je ne vois pas comment cela peu marcher

    Ca ne marche uniquement que si dans la table a "cat_id" qui va de 1...à...x sans aucun trou; très bon de faire un système qui ne marche que dans une seule configuration.
    Un foreach() et le tri est bien fait et en plus le système fonctionne toujours.

    Citation Envoyé par dominos Voir le message
    Dans la fonction, je construit un tableau de tableau, ça n'a rien avoir avec l'id
    Le tableau est bien construit, mais a l'affichage on demande bien d'afficher les valeurs de 1 à xx (boucle for). C'est bien for qui fait le tri

  7. #7
    Membre actif
    Inscrit en
    Février 2009
    Messages
    626
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 626
    Points : 237
    Points
    237
    Par défaut
    Une ou deux ligne de code pour exemple merci

  8. #8
    Expert confirmé Avatar de papajoker
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2013
    Messages
    2 201
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nièvre (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2013
    Messages : 2 201
    Points : 4 665
    Points
    4 665
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <?php
    $gFc->setListCategories();
    foreach($gFc->lstCat as $id=>$cat) {
        echo '<tr>
            <td>'.$cat['catNom'].'</td>
        </tr>'; 
    }
    ?>

  9. #9
    Membre actif
    Inscrit en
    Février 2009
    Messages
    626
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 626
    Points : 237
    Points
    237
    Par défaut
    ok merci mais c'est koi $id=>$cat ?

  10. #10
    Expert confirmé Avatar de papajoker
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2013
    Messages
    2 201
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nièvre (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2013
    Messages : 2 201
    Points : 4 665
    Points
    4 665

  11. #11
    Membre actif
    Inscrit en
    Février 2009
    Messages
    626
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 626
    Points : 237
    Points
    237
    Par défaut
    Merci pour votre aide, j'ai remplacé

    par et ça fonctionne c'est parce que j'ai pas mal de $i qu'il faut que je remplace par $id, sinon toujours pas compris

    l'expression
    as $i=>$cat
    Que fait $cat ? et $id ?

  12. #12
    Membre actif
    Inscrit en
    Février 2009
    Messages
    626
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 626
    Points : 237
    Points
    237
    Par défaut
    ok c'est bon merci

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

Discussions similaires

  1. [MySQL-4.0] ALTER ORDER fonctionne pas sur une table, sauf renommée
    Par hobby dans le forum Requêtes
    Réponses: 1
    Dernier message: 05/01/2014, 08h44
  2. EclipseLink + DB2 ORDER BY ne fonctionne pas
    Par Lexuor76 dans le forum JPA
    Réponses: 1
    Dernier message: 13/03/2012, 17h10
  3. ORDER BY RAND() ne fonctionne pas dans INSERT
    Par cedrick21 dans le forum Requêtes
    Réponses: 1
    Dernier message: 17/08/2010, 11h46
  4. Un order by qui me fonctionne pas
    Par vb dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 24/12/2009, 19h38
  5. SQLExpress2005 "order by" ne fonctionne pas
    Par cbleas dans le forum MS SQL Server
    Réponses: 11
    Dernier message: 02/08/2006, 12h15

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