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 :

Regrouper des champs identiques [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre à l'essai
    Homme Profil pro
    Webmaster
    Inscrit en
    Avril 2009
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Avril 2009
    Messages : 29
    Points : 23
    Points
    23
    Par défaut Regrouper des champs identiques
    Bonjour,

    je viens chercher de l'aide car je nage dans mon peu de connaissance Phpeuse.

    Voila, j'ai dans ma BDD, plusieurs enregistrements que je voudrais regrouper par rubrique en affichant qu'une seule fois la nom de la rubrique auquel tous les enregistrements appartiennent.

    Exmple de la Bbb :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Id       Rub             titre                Lien
    1        Telephone        Nokia              Nokia.php
    2        Telephone        Siemens            siemens.php
    3        Telephone        HTC                HTC.php
    4        Ecran            Acer               acer.php
    5        Ecran            Asus               Asus.php
    Sortie désirée :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Telephone    : 
                 Nokia            Nokia.php
                 Siemens          siemens.php
                 HTC              HTC.php
     
    Ecran         : 
                 Acer            acer.php
                 Asus            Asus.php
    Donc je vérifie le nom de la rubrique, puis j'affiche une seule fois son nom, et je trie tous les éléments qui portent le même nom pour les structurer après.
    Le nom de la rubrique n'est pas connu au départ.

    Alors j'ai essayé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    $nextrub = "";
     do { 
    $rub = $row_selectPages['rub'];
    $rub = htmlentities($row_selectPages['rub'], ENT_COMPAT, 'iso-8859-1');
    //echo $rub;
    if ($rub != $nextrub) {
    $nextrub = $row_selectPages['rub']; ?>
                <h4><strong><?php echo $nextrub; ?></strong></h4>
    <?php echo $row_selectPages['titre']; ?>
    <?php } else { ?>
                <h4><strong><?php echo $rub; ?></strong></h4>
    <?php echo $row_selectPages['titre']; ?>
       <?php }} while($row_selectPages = mysql_fetch_assoc($selectPages)); ?>
    Mais ça ne marche pas. Je pense même que ce n'est pas dans ce sens qu'il faut chercher. Faudrait pas parcourir 2 fois la BDD ?

    Help. D'avance merci.

  2. #2
    Expert confirmé
    Avatar de N1bus
    Homme Profil pro
    Dev. Web & OpenERP
    Inscrit en
    Janvier 2003
    Messages
    2 827
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Dev. Web & OpenERP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 827
    Points : 5 673
    Points
    5 673
    Par défaut
    Bonjour,

    Tu peux regarder ceci :
    http://www.developpez.net/forums/d69...e/#post4073703

    C'est pour afficher des évènements par date, mais ce serait catégorie ce serait pareil. le principe est là

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    265
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 265
    Points : 281
    Points
    281
    Par défaut
    C'est juste un problème d'algo il me semble, déroule ta boucle et tu verras.

    Déjà au début tu as $nextrub = "" donc ton if ($rub != $nextrub) va forcément être vrai dès lors que ta rubrique a un nom, ce qui n'est pas le but recherché il me semble. Ensuite tu donnes à ce $nextrub la valeur $row_selectPages['rub'], cette même valeur qui va être attribuée à $rub dès le retour en début de boucle, faisant que ton if ($rub != $nextrub) deviendra toujours faux...

  4. #4
    Membre à l'essai
    Homme Profil pro
    Webmaster
    Inscrit en
    Avril 2009
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Avril 2009
    Messages : 29
    Points : 23
    Points
    23
    Par défaut
    Royal !
    Saisissant !
    Ce forum est... d'enfer !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    If (pb > 1) {
     Goto => $Forum_Devellopez.net;
    Var Solution = +1;
    }
    Echo merci !

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

Discussions similaires

  1. [Requête]Regrouper des champs d'un mème enregistrement
    Par jojo_perso dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 22/04/2007, 22h25
  2. [XSLT] regrouper des noeuds identiques
    Par DelphLaga dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 14/11/2006, 17h07
  3. Regrouper des champs par mois
    Par nou366 dans le forum Bases de données
    Réponses: 4
    Dernier message: 17/05/2006, 14h23
  4. Réponses: 3
    Dernier message: 11/07/2005, 15h20
  5. Regrouper des champs dans un GROUP BY
    Par kaiserazo dans le forum Langage SQL
    Réponses: 7
    Dernier message: 11/07/2005, 08h43

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