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 :

php probleme while [PHP 5.2]


Sujet :

Langage PHP

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2013
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2013
    Messages : 7
    Points : 5
    Points
    5
    Par défaut php probleme while
    bonjour tout le monde
    je veux afficher les messages des acteur de mon site mais je veux que le nom de meme acteur ne se repete pas deux fois
    voici le code
    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
    18
    <?php
    // Connexion à la base de données
    include('config.php')
    ?>
     
    <?php
    // On récupère les derniers messages
    $dn = mysql_query('select id, auteur, message from test2');
    while($dnn = mysql_fetch_array($dn))
    {
    ?>
     
    <h2><?php echo htmlentities($dnn['auteur'], ENT_QUOTES, 'UTF-8'); ?><h2>
    <p><?php echo htmlspecialchars($dnn['message'], ENT_QUOTES, 'UTF-8'); ?></p>
     
    <?php
    }
    ?>
    la table test2


    et ca affiche ca

    et je veux qu'il soit comme ca

    pouvez vous me doner un code pour les afficher de cette maniere

  2. #2
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2013
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Services de proximité

    Informations forums :
    Inscription : Février 2013
    Messages : 27
    Points : 56
    Points
    56
    Par défaut
    Bonjour,

    Dans ta boucle while, tu peux enregistrer les informations dans un tableau a deux dimensions comme suit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $list[$ligne['auteur']][] = $ligne['message'];
    Puis tu peux afficher celui-ci via quelque chose comme ceux-ci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    foreach($list as $cle=>$valeur):
        echo 'Auteur : '.$cle.'<br />';
        foreach($valeur as $message):
            echo 'Message : '.$message.'<br />';
        endforeach;
    endforeach;

  3. #3
    Membre averti

    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2011
    Messages
    205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Juin 2011
    Messages : 205
    Points : 409
    Points
    409
    Billets dans le blog
    1
    Par défaut
    Autre solution qui présente l'avantage de ne pas changer la structure de tes données en entrée (et donc éviter de boucler deux fois sur le tableau provenant de ta bdd) : utiliser une variable pour stocker l'auteur courant.
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <?php
    $auteur = '';
    while($dnn = mysql_fetch_array($dn))
    {
        if ($dnn['auteur'] != $auteur)
        {
            $auteur = $dnn['auteur'];
            echo '<h2>'.htmlentities($dnn['auteur'], ENT_QUOTES, 'UTF-8').'<h2>';
        }
        echo '<p>'.htmlspecialchars($dnn['message'], ENT_QUOTES, 'UTF-8').'</p>';
    }
    ?>
    si ce post vous a été utile, si votre problème est résolu.
    Pensez-y !
    __________________________________
    Doc officielle PHP | FAQ PHP | Cours PHP

  4. #4
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2013
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Services de proximité

    Informations forums :
    Inscription : Février 2013
    Messages : 27
    Points : 56
    Points
    56
    Par défaut
    En fait la solution de k'amm est plutôt pas mal mais du coup il faut modifier un peu la requête pour obtenir le comportement voulu avec un group by :

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    select id, auteur, message from test2 GROUB BY auteur

  5. #5
    Membre expérimenté
    Homme Profil pro
    Développeur C++
    Inscrit en
    Avril 2012
    Messages
    771
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur C++
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2012
    Messages : 771
    Points : 1 631
    Points
    1 631
    Par défaut
    Bonsoir,

    cette requête n'est syntaxiquement pas bonne :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    select id, auteur, message from test2 GROUB BY auteur

    GROUP BY doit être utilisé seulement si l'on utilise un fonction de regroupement (count, sum, ...).

    De plus tu a dans la clause SELECT 3 colonne (id, auteur, message) seulement tu ne spécifie qu'une des trois dans le GROUP BY donc tu ne peut pas être certain des valeurs des colonne id et message.
    une réponse vous a permis d'avancer ?

  6. #6
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2013
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Services de proximité

    Informations forums :
    Inscription : Février 2013
    Messages : 27
    Points : 56
    Points
    56
    Par défaut
    Comme le signal très justement Exia93, j'ai dis une co**erie.

    C'est plutôt ORDER BY qu'il faudrait utiliser :

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    select id, auteur, message from test2 ORDER BY auteur

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 27/04/2006, 14h07
  2. [MySQL] php probleme de requête sql
    Par carmen256 dans le forum PHP & Base de données
    Réponses: 21
    Dernier message: 03/04/2006, 23h52
  3. [FLASH MX] [PHP] Probleme d'integration
    Par chocobos dans le forum Flash
    Réponses: 8
    Dernier message: 17/08/2005, 17h18
  4. [XSL][PHP] probleme de passage de parametres...
    Par jesus144 dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 20/06/2005, 23h25
  5. [type MIME] css généré par php -> probleme
    Par prgasp77 dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 23/09/2004, 21h13

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