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 :

Affichage d'une requête


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2008
    Messages : 41
    Par défaut Affichage d'une requête
    Bonjour à tous,
    Voilà, je souhaiterai afficher les pages consultées (rubriques) par des membres lors de leur visite ; ceci dans un tableau, qui listerait les pages consultées par membre.
    Pour cela j'ai créé une requête :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $reponse = $bdd->query('SELECT distinct r.nom, r.id, c.contact_nom, c.contact_prenom, c.contact_pseudo, s.date, s.id_rubrique, s.pseudo  FROM statistiques s INNER JOIN rubrique r ON s.id_rubrique = r.id INNER JOIN contacts c ON s.pseudo = c.contact_pseudo HAVING s.date > NOW()-INTERVAL 1 MONTH ORDER BY c.contact_nom ASC');
    $donnees = $reponse->fetch();
    et j'ai créé mon tableau :
    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
     
    <table width="100%">
    <tr id="entete-tableau">
    <td >Nom</td>
    <td>Prénom</td>
    <td>Rubrique</td>
    </tr>
    <?php
    while ($donnees = $reponse->fetch())
    {
     ?>	
    <tr id="tableau">
    <td><?php echo $donnees['contact_nom'] ?></td>
    <td><?php echo $donnees['contact_prenom'] ?></td>
    <td><?php 
    $rubrique .= '<br />';
    $rubrique .= $donnees['nom'];
    echo $rubrique ?></td>
    </tr>
    <?php
    }
     $reponse->closeCursor();
    ?>
    </table>
    Or ceci, me retourne pour chaque membre la même liste à laquelle est ajoutée à chaque fois un nouvel élément.
    Je suis coincé et n'arrive pas à avancer sur ce pb.
    Quelqu'un pourrait-il m'aider ?

  2. #2
    Membre chevronné Avatar de rikemSen
    Homme Profil pro
    Analyste Développeur Web - Fizzup.com
    Inscrit en
    Décembre 2007
    Messages
    387
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Bas Rhin (Alsace)

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

    Informations forums :
    Inscription : Décembre 2007
    Messages : 387
    Par défaut
    Je ne suis pas bien sûr de ma réponse car je ne suis pas bien sûr de la compréhension du problème mais...

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    WHERE id_membre = $lid_du_membre

    ???

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2008
    Messages : 41
    Par défaut
    Ce n'est pas très clair en effet.
    Le résultat (normal) de la requête retourne autant de lignes que de pages consultées (rubrique), en répétant systématiquement le nom du membre.
    Je souhaiterai regrouper le résultat pour qu'il y ait une ligne par membre, et dans cette ligne, une liste des pages consultées.

  4. #4
    Membre chevronné Avatar de rikemSen
    Homme Profil pro
    Analyste Développeur Web - Fizzup.com
    Inscrit en
    Décembre 2007
    Messages
    387
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Bas Rhin (Alsace)

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

    Informations forums :
    Inscription : Décembre 2007
    Messages : 387
    Par défaut
    Le plus simple serait je pense de tester l'id utilisateur.

    En algo ça donnerait un truc du genre: (oui, en algo car là j'ai le cerveau en compote :/)

    -> requete
    -> premier enregistrement de la requete
    -> affecte id_membre à $variable_iduser.
    -> on créé une ligne tableau
    -> on met dans une colonne nom/prenom
    -> dans la colonne suivante on met la rubrique.
    -> on passe à l'enregistrement suivant (de la requête)
    -> on teste si l'id_user de l'enregistrement = $variable_iduser
    -> si oui, on ajoute simplement la rubrique dans la colonne
    -> si non, on finit la ligne de l'utilisateur, on en créé une nouvelle, on met nom/prénom dans une colonne et on change $variable_iduser
    -> rebelote
    Est-ce compréhensible?

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2008
    Messages : 41
    Par défaut
    Merci pour ton aide,
    en fait, je ne vois pas comment insérer cette condition au milieu de la boucle.
    Je vais faire des recherches, si quelqu'un a une idée, merci par avance.

  6. #6
    Membre expérimenté

    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    191
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 191
    Par défaut
    ta requete n'est pas correcte si tu cherche a avoir les rubriques ton "from" doit pointer sur ta table rubrique moi je ferai cette requete
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    SELECT DISTINCT r.nom, r.id, c.contact_nom, c.contact_prenom, c.contact_pseudo, s.date, s.id_rubrique, s.pseudo
    FROM rubrique r
    INNER JOIN statistiques s
    ON s.id_rubrique = r.id
    INNER JOIN contacts c
    ON c.contact_pseudo = s.pseudo
    HAVING s.date > NOW()-INTERVAL 1 MONTH
    ORDER BY c.contact_nom ASC'
    attention au JOIN en mysql il peut retourner null dans les champs concernés il faut mettre les conditions absolues (qui retourne pas de valeur null) dans la clause WHERE ci nécessaire
    si DISTINCT ne marche pas comme il faut essai avec GROUP BY sur plusieurs champs

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

Discussions similaires

  1. affichage d'une requête
    Par poula dans le forum Forms
    Réponses: 2
    Dernier message: 18/12/2006, 14h47
  2. Affichage d'une requête
    Par Sorcier157 dans le forum Zend_Db
    Réponses: 6
    Dernier message: 27/10/2006, 10h30
  3. [MySQL] affichage d'une requête
    Par gailup dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 01/06/2006, 10h20
  4. [MySQL] Affichage d'une requête
    Par leloup84 dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 31/01/2006, 10h54
  5. Modifier l'affichage d'une requête
    Par seal dans le forum Langage SQL
    Réponses: 3
    Dernier message: 21/09/2005, 14h26

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