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 :

Associer des données d'utilisateurs (liaison)


Sujet :

Langage PHP

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Etudiant terminale
    Inscrit en
    Juillet 2012
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Etudiant terminale

    Informations forums :
    Inscription : Juillet 2012
    Messages : 23
    Points : 9
    Points
    9
    Par défaut Associer des données d'utilisateurs (liaison)
    Bonjours à tous.
    Comme vous vous en doutez sans doute : je m'apprette a demander de l'aide

    Plus sérieusement :
    J'ai un site sur lequel s'affiche un "flux" propre à chaque membre (à l'instar du mur Facebook) sur lequel les autres utilisateurs peuvent poster.

    J'ai 2 tables :
    Table users : (avec les id, avatar, nom, pseudo etc...)
    Et la table userfeed (avec l'id du proprietaire , l'id du posteur etc...)

    Le petit problème c'est que je n'arrive pas à afficher l'avatar de la personne qui a posté le "commentaire".

    J'ai evidemment pensé à une liaison (afficher l'avatar de l'user donc l'id correspond à id du posteur)mais je n'ai pas réussit à bien le rédiger (c'est une premiere pour moi, Ô grand débutant) .

    Y'a t-il une alternative ?

    J'avais aussi essayé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    mysql_query('select * from users WHERE id='. $ddb['postuserid'] .' ORDER BY create_date DESC LIMIT 0, 6
    ');
    Ou ...peux t'on m'aider et me guider pour la liaison ?
    Merci d'avance...

  2. #2
    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
    Bonjour,

    l'avatar est stocké dans la table users ? Si oui ou est le problème de liaison si tu à l'id du posteur ?
    une réponse vous a permis d'avancer ?

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Etudiant terminale
    Inscrit en
    Juillet 2012
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Etudiant terminale

    Informations forums :
    Inscription : Juillet 2012
    Messages : 23
    Points : 9
    Points
    9
    Par défaut
    ... c'est moi le probleme
    Nan en fait je n'ai pas réussis à les associer correctement :/

    Ce que je demande en fait : c'est un exemple à utiliser dans ce cas

  4. #4
    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
    Si tu veux joindre la table user et userfeed une simple jointure suffit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $sql = 'select * from users u
    INNER JOIN userfeed f on u.id = f.idPosteur
    where f.idProprietaire =' . $bdd['idProprietaire'] . ' ORDER BY f.create_date DESC LIMIT 0, 6';
    une réponse vous a permis d'avancer ?

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Etudiant terminale
    Inscrit en
    Juillet 2012
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Etudiant terminale

    Informations forums :
    Inscription : Juillet 2012
    Messages : 23
    Points : 9
    Points
    9
    Par défaut
    Donc :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $sql = 'select * from users u
    INNER JOIN userfeed f on u.id = f.idPosteur
    where f.idProprietaire =' . $bdd['idProprietaire'] . ' ORDER BY f.create_date DESC LIMIT 0, 6';
    Je l'ai adapté ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     $sql = 'select * from users u
    INNER JOIN userfeed f on u.id = f.postuserid
    where f.userid =' . $id . ' ';
    Dans userfeed :
    postuderid = id du posteur.
    userid = id du proprietaire

    $id est une variable deja renseignée par un $_get qui indique l'id de l'utilisateur dont on veux afficher la page (et donc, le flux).

    PB : Les images ne s'affichent toujours pas :/

  6. #6
    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
    Bonjour,

    Essaye de lancer la requête directement dans ton SGBDR et regarde le résultat, Si y'a le résultat que tu souhaite c'est que ton problème viens de ton script php qui affiche ton image sinon c'est la requête SQL.
    une réponse vous a permis d'avancer ?

  7. #7
    Futur Membre du Club
    Homme Profil pro
    Etudiant terminale
    Inscrit en
    Juillet 2012
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Etudiant terminale

    Informations forums :
    Inscription : Juillet 2012
    Messages : 23
    Points : 9
    Points
    9
    Par défaut
    Il semble que ce soit la requête

  8. #8
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Salut,

    poste la structure de tes 2 tables.

  9. #9
    Futur Membre du Club
    Homme Profil pro
    Etudiant terminale
    Inscrit en
    Juillet 2012
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Etudiant terminale

    Informations forums :
    Inscription : Juillet 2012
    Messages : 23
    Points : 9
    Points
    9
    Par défaut
    Table users


    Table user_feed

  10. #10
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    ok, merci
    je considère que la colonne avatar contient le chemin vers l'image
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    SELECT 
        u.`avatar`
        uf.`userid`,
        uf.`data`
    FROM
        user_feed uf 
        INNER JOIN users u ON uf.postuserid = u.id
    WHERE
        uf.postuserid = :uid
    ORDER BY
        uf.create_date DESC
    LIMIT 
        0, 6

    Tu remplaces :uid par l'id du posteur

  11. #11
    Futur Membre du Club
    Homme Profil pro
    Etudiant terminale
    Inscrit en
    Juillet 2012
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Etudiant terminale

    Informations forums :
    Inscription : Juillet 2012
    Messages : 23
    Points : 9
    Points
    9
    Par défaut
    Non : ça ne fonctionne pas : voici mon 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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    <?php include('config.php'); ?>
    <link rel='stylesheet' href='css/userfeed.css' type='text/css' >
    <?php  
    $id = intval($_GET['id']); 
    $feed = mysql_query('SELECT 
        u.avatar,
        uf.userid,
        uf.data
    FROM
        user_feed uf 
        INNER JOIN users u ON uf.postuserid = u.id
    WHERE
        uf.postuserid = "'.$id.'"
    ORDER BY
        uf.create_date DESC
    LIMIT 
        0, 6');
     
    ?>
    <div id="feedobjects">
    <table cellspacing="1" cellpadding="0" border="0" width="250" >
     <tr>
      <td width="50" rowspan="2">
      <img src="<?php echo htmlspecialchars($feed['avatar']); ?>" style="width:50px; height:50px;" onerror="this.src='image/noimage.png'"><br>
      </td>
      <td align="left">
      <FONT size="2pt"><?php echo htmlspecialchars($feed['data']);  ?> </font>
      </td>
     </tr>
     <tr>
     <td>
     <FONT size="1pt" color="#818281"><?php echo date('d/m/Y H:i:s' ,$feed['create_date']); ?></font>
     </td>
     <td align="right">
     <div id="deletebutton"><a onmouseover="this.style.cursor='pointer'"><img src="image/delete.png" style="width:10px;"></div><?php echo $objectid; ?>
     </td>
     </tr>
    </table> 
    </div><br>
    Donc ici la réponse dois etre un tableaux qui affiche la derniere donnée de la requête $data
    Config.php contiens les id de connexion
    et $id est un paramètre envoyé depuis l'URL

    J'obtiens le résultat suivant :

    (j'en déduis qu'il ne reçoit rien).

    :/

  12. #12
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Salut,

    c'est normal que tu n'ais rien : lis donc un peu la doc de mysql_query() et inspire toi de l'exemple.
    Tu verras il te manque juste un petit bout de code (celui qui lit les données récupérées... )

  13. #13
    Futur Membre du Club
    Homme Profil pro
    Etudiant terminale
    Inscrit en
    Juillet 2012
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Etudiant terminale

    Informations forums :
    Inscription : Juillet 2012
    Messages : 23
    Points : 9
    Points
    9
    Par défaut
    J'ai trouvé !
    J'avais oublié le
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mysql_fetch_array($variable);
    Merci beaucoup à vous !

  14. #14
    Membre éclairé Avatar de laloune
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Mai 2005
    Messages
    484
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Mai 2005
    Messages : 484
    Points : 873
    Points
    873
    Par défaut
    juste en passant comme ca: ne vaudrait-il pas mieux utiliser PDO ?

    il me semble avoir lu qu'il n'était plus vraiment conseillé d'utiliser les fonctions mysql_* pour la connectivité avec la base de données...
    laloune
    Consultant B.I.
    Spécialité(s): Excel, SQL, Business Intelligence (Jedox Palo, Talend)

    "A problem worthy of attack proves its worth by fighting back." Piet Hein

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 16/08/2014, 13h00
  2. [MySQL] récupérer des données d'utilisateurs
    Par tati12 dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 01/05/2012, 08h03
  3. Association des données de deux tables
    Par TOTOTAR dans le forum Langage SQL
    Réponses: 3
    Dernier message: 05/11/2010, 02h00
  4. Réponses: 2
    Dernier message: 26/07/2006, 12h46

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