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 :

Relations de tables [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2009
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Février 2009
    Messages : 28
    Points : 21
    Points
    21
    Par défaut Relations de tables
    Je veux établir une relation entre ma table ''users'' et ma table ''message'' pour le ''id''....comment je fais cela avec MySQL

    Deuxième question, une fois la base de donnée créée, comment je fais pour envoyer une requête SQL (sur ma page php) pour dire d'envoyer un message where ''user.id = $username''...je ne comprend pas svraiment le principe désolé

  2. #2
    Membre averti
    Avatar de onet
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    365
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2002
    Messages : 365
    Points : 344
    Points
    344
    Par défaut
    Salut,

    Citation Envoyé par 0ColdZero0 Voir le message
    Je veux établir une relation entre ma table ''users'' et ma table ''message'' pour le ''id''....comment je fais cela avec MySQL
    2 solutions: soit tu traite les relations avec PHP (conseillé pour un débutant), soit tu passe tes tables en innoDB, et donc tu peux avoir de l'intégrité référentiel sur tes tables. De ce fait, lors de la création, tu peux leurs donner des clés secondaires.

    Deuxième question, une fois la base de donnée créée, comment je fais pour envoyer une requête SQL (sur ma page php) pour dire d'envoyer un message where ''user.id = $username''...je ne comprend pas svraiment le principe désolé
    Euh... GETA ?

    Onet
    ---
    Retrouvez tout mes tutos et mes articles: http://www.olivierlange.com

  3. #3
    Membre éclairé Avatar de cadoudal56
    Profil pro
    Inscrit en
    Février 2005
    Messages
    694
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France

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

    Informations forums :
    Inscription : Février 2005
    Messages : 694
    Points : 779
    Points
    779
    Par défaut
    Hello,

    Je veux établir une relation entre ma table ''users'' et ma table ''message'' pour le ''id''....comment je fais cela avec MySQL
    On part du principe que tu as deux tables. Une Users qui se resume comme ceci :

    id INT(11)
    name VARCHAR(255)
    email VARCHAR(255)
    Password VARCHAR(255)

    Une table messages qui se résume comme ceci :

    id INT(11)
    title VARCHAR(255)
    message TEXT
    created DATETIME
    sender INT(11)
    receiver INT(11)

    Dans l'idéal, tu aimerais extraire tous les messages destiné a Albert qui a l'identifiant 3 dans la base Users. Donc tu va faire une requete SQL du style :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $user_id = 3;
    $SELECT = "SELECT id, title, message FROM messages WHERE receiver = ".$user_id;
    Mais bon, cela ne dis pas qui a envoyé le message... Donc on va faire ce que l'on appelle une jointure de table. Pour faire une bonne jointure, il faut qu'il y ai un identifiant en commun entre les deux tables. Ici c'est l'ID du user et l'ID du sender dans la table message. Une fois que la jointure est faite, tu peux appeller les champs de l'autre table. Voici comment faire.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    $user_id = 3;
    $SELECT = "SELECT messages.id, messages.title, messages.message, user.name as sender 
    FROM messages 
    JOIN user ON user.id = message.sender
    WHERE receiver = ".$user_id;
    Ainsi on peut récupérer le nom de la personne qui a envoyé le message...

    Maintenant encore plus fort, on va faire une double jointure sur la table user pour récupérer le nom de l'expediteur et aussi le nom du destinataire...
    Pour faire plus simple, on va donner des alias aux appels de table.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    $user_id = 3;
    $SELECT = "SELECT messages.id, messages.title, messages.message, U1.name as sender, U2.name as receiver 
    FROM messages 
    JOIN user AS U1 ON U1.id = message.sender
    JOIN user AS U2 ON U2.id = message.receiver
    WHERE messages.receiver = ".$user_id;
    Maintenant pour en savoir plus, je t'invites a jeter un oeuil sur les cours et tutoriel de ce site sur les jointures de table....


    Pour ta deuxieme question elle n'est pas tres claire....
    A ce que j'en comprends tu demandes comment faire pour que A envoi un message a B....

    Tu crée un formulaire avec des champs destinataire, titre et message. Quand le formulaire est validé, tu inseres les données dans la table...

    @+
    cadou
    LMN24 - Site d'actualité internationale multilingue
    http://www.lmn24.com

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2009
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Février 2009
    Messages : 28
    Points : 21
    Points
    21
    Par défaut
    wow merci beaucoup !

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

Discussions similaires

  1. Access me change mes relations entre tables
    Par karimspace dans le forum Access
    Réponses: 14
    Dernier message: 29/03/2006, 09h57
  2. Les relations entre tables
    Par sheira dans le forum MS SQL Server
    Réponses: 11
    Dernier message: 20/03/2006, 15h03
  3. Récupération des relations entre tables
    Par Themacleod1980 dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 02/02/2006, 11h34
  4. relations entre tables
    Par ilyassou dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 22/11/2005, 07h48
  5. access2000, probleme creation relations de tables
    Par nono_60 dans le forum Access
    Réponses: 2
    Dernier message: 12/09/2005, 22h50

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