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 :

Classer selon un champs et rassembler


Sujet :

PHP & Base de données

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 4
    Points : 4
    Points
    4
    Par défaut Classer selon un champs et rassembler
    Bonjour ou bonsoir.

    Voilà, j'ai un petit problème, j'ai dans ma base de données tous les (anciens) articles de mon site.
    Et je voudrais les classer sur le site.
    Alors j'ai à droite une colonne et je voudrais les classer dedans par ordre chronologique.

    Ce qui va me servir c'est le champs que j'ai appelé par exemple IID (id étant le numéro de l'article, en auto-incrément).

    J'ai donc plusieurs articles qui ont le même IID car ils datent de la même époque, mais il ont bien sur un id différent (car ce ne sont pas les même).

    Comment donc puis-je faire pour:
    que les id soient dans l'ordre croissant et comporte chacun leur propre article aux aussi dans l'ordre croissant ?

    Comme c'est compliqué à expliquer je vous montre;
    je voudrais avoir tous les IID avec dedans les articles classés par id:

    IID1:
    id1
    id2
    id2
    ...

    IID2:
    id1
    id2
    id2

    ...

    IID3:
    id1
    id2
    id2

    et ainsi de suite.

    J'ai essayé mais je n'y arrive pas.

    Voilà une partie du code que j'ai fais:

    $result = mysql_query('SELECT * FROM liste_article WHERE IID = '.mysql_real_escape_string($_GET['ID']).' ORDER BY IID');
    while ($row =mysql_fetch_array ($result) )
    {
    echo '<h3 class="titredroite">IID '.$row['IID'].'</h3>
    <p class="titredroitep">
    <a class="b" href="http://monsite.com/index.php?ID='.$row['ID'].'">Article n° '.$row['id'].' </a>
    </p>';}



    Donc seulement ce code ne va pas car il m'organise de cette façon:

    IID1
    id1

    IID1 (encore)
    id2

    IID1
    id3

    IID2
    id1

    IID2
    id2

    et ainsi de suite.

    Je m'en remet donc à vous pour m'aider à trouver comment faire.

    Merci beaucoup d'avance et bonne journée.

    P.S: attention à différencier dans mon exemple ID et id, ID ici n'a rien à voir.

  2. #2
    Membre confirmé Avatar de guigo
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    612
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 612
    Points : 576
    Points
    576
    Par défaut
    Tu dois faire une comparaison avec tonIID precedent.
    ex :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    $Pre=0;
    while(){
        if($Pre!=$row['IID'])
                   echo '<h3 class="titredroite">IID '.$row['IID'].'</h3>';
     
        echo ....;
        $Pre=$Col['IID'];
    }

    Guigo

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 4
    Points : 4
    Points
    4
    Par défaut
    Merci bien Guigo de m'aider.

    Cependant même en appliquant ton code sa ne marche pas.

    Voici ce que j'ai d'affiché:
    http://nsa11.casimages.com/img/2009/...3015834369.jpg

    Merci de ton aide.

    Bonne journée.

  4. #4
    Membre confirmé Avatar de guigo
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    612
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 612
    Points : 576
    Points
    576
    Par défaut
    c'est plus simple si tu poste le code...

    Le code que je tes donnés est a titre d'ex je ne l'ai pas teste.
    en entier, mais non teste :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
     
    $Pre=0;
    while ($row =mysql_fetch_array ($result) )
    {   
        if($Pre!=$row['IID'])
             echo '<h3 class="titredroite">IID '.$row['IID'].'</h3>
     
        echo '<p class="titredroitep">
        <a class="b" href="http://monsite.com/index.php?ID='.$row['ID'].'">Article n° '.$row['id'].' </a></p>';
     
        $Pre=row['IID'];
    }

  5. #5
    Membre du Club
    Inscrit en
    Octobre 2008
    Messages
    79
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 79
    Points : 50
    Points
    50
    Par défaut
    Salut,

    Je pense que tu as une petite erreur dans ta requête :
    Tu écris :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $result = mysql_query('SELECT * FROM liste_article WHERE IID = '.mysql_real_escape_string($_GET['ID']).' ORDER BY IID');
    Puisque tu mets
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WHERE IID = "une valeur"
    ça ne sert à rien de mettre ORDER BY IID puisque IID n'a qu'une valeur.

    Il crois qu'il te faudrait mettre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    $result = mysql_query('SELECT * FROM liste_article GROUP BY IID ORDER BY IID, id');
    $Pre=0;
    while ($row =mysql_fetch_array ($result) )
    {
        if($Pre!=$row['IID'])
             echo '<h3 class="titredroite">IID '.$row['IID'].'</h3>
     
        echo '<p class="titredroitep">
        <a class="b" href="http://monsite.com/index.php?ID='.$row['ID'].'">Article n° '.$row['id'].' </a></p>';
     
        $Pre=row['IID'];
    }
    J'ai pas testé non plus, mais c'est une piste.

Discussions similaires

  1. Réponses: 3
    Dernier message: 17/10/2006, 09h16
  2. requete concatené selon les champ sont renseignés ou pas
    Par Damish dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 22/09/2006, 14h14
  3. Tri selon un champ dans un état
    Par soso78 dans le forum Access
    Réponses: 4
    Dernier message: 14/06/2006, 09h38
  4. Couleur differente selon un champ dans zone liste
    Par banbanne dans le forum Access
    Réponses: 1
    Dernier message: 14/03/2006, 10h50
  5. ordonner selon un champ d'un autre table
    Par Mister dans le forum Langage SQL
    Réponses: 3
    Dernier message: 27/10/2003, 14h40

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