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 :

Récupérer le nom une seule fois et tous ses messages


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Inscrit en
    Mars 2013
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Mars 2013
    Messages : 70
    Par défaut Récupérer le nom une seule fois et tous ses messages
    Bonjour,
    j'ai plusieurs lignes dans la table utilisateurs.

    le même utiilisateur peut dans cette table avoir dix messages.
    je voudrais afficher le nom de l'utilisateur une seule fois et ses dix messages.Cependant mon code
    affiche autant de fois le nom de de l'utilisateur qu'il y a de messages.Ce que je voudrais éviter. Merci d'avance!

    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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    <?php
      $sql = "SELECT * FROM utilisateurs";
     
      try{
     
       $stmt = $bdd->query($sql);
     
       if($stmt === false){
        die("Erreur");
       }
     
      }catch (PDOException $e){
        echo $e->getMessage();
      }
    ?>
     
     
    <!DOCTYPE html>
    <html>
    <head>Afficher la table users</head>
    <body>
     <h1>Liste des utilisateurs</h1>
     <table>
       <thead>
         <tr>
           <th>NOM</th>
           <th>MESSAGE</th>
         </tr>
       </thead>
       <tbody>
         <?php while($row = $stmt->fetch(PDO::FETCH_ASSOC)) : ?>
         <tr>
           <td><?php echo htmlspecialchars($row['nom']); ?></td>
           <td><?php echo htmlspecialchars($row['message']); ?></td>
         </tr>
         <?php endwhile; ?>
       </tbody>
     </table>
    </body>
    </html>

  2. #2
    Expert confirmé
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 322
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 322
    Billets dans le blog
    17
    Par défaut
    PDO permet de faire un groupement. Ici sur le 1er champ du SELECT (nom) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $sql = 'SELECT ALL nom, message FROM utilisateurs';
    $data = $pdo->query($sql)->fetchAll(PDO::FETCH_GROUP);
    print_r($data);
    Avec ceci tu pourras facilement boucler sur tes utilisateurs puis leurs messages

  3. #3
    Membre actif
    Inscrit en
    Mars 2013
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Mars 2013
    Messages : 70
    Par défaut
    ok j'essaie! merci

  4. #4
    Membre actif
    Inscrit en
    Mars 2013
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Mars 2013
    Messages : 70
    Par défaut
    Ah oui, c'est ce que je cherche! Cependant , n'y a t'il pas de possibilités pour enlever les array qui s'affichent?

  5. #5
    Expert confirmé
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 322
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 322
    Billets dans le blog
    17
    Par défaut
    Les arrays ne s'affichent que si tu le demandes, comme dans mon print_r() qui n'avait que pour objectif de te montrer la structure du résultat.

    Montre-nous ton script.

  6. #6
    Membre actif
    Inscrit en
    Mars 2013
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Mars 2013
    Messages : 70
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    include("configu.php");
    $sql = 'SELECT ALL nom, message FROM utilisateurs';
    $data = $bdd->query($sql)->fetchAll(PDO::FETCH_GROUP);
    print_r($data);
    voici mon script

Discussions similaires

  1. Réponses: 3
    Dernier message: 22/12/2012, 15h32
  2. Réponses: 9
    Dernier message: 20/09/2010, 17h37
  3. lu tous les jours mais exécuté une seule fois par mois
    Par sianto dans le forum Scripts/Batch
    Réponses: 13
    Dernier message: 17/11/2008, 09h08
  4. Réponses: 8
    Dernier message: 23/09/2008, 11h20
  5. Réponses: 10
    Dernier message: 02/05/2007, 10h19

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