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 :

probleme de jointure entre 2 tables [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre averti Avatar de guy2004
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    805
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 805
    Points : 377
    Points
    377
    Par défaut probleme de jointure entre 2 tables
    Bonjour,
    J'ai donc 1 table "user" qui contient un champs "iduser".
    J'ai une table "stories" qui contient la clé étrangère "iduser" et j'ai ma requete qui doit me recuperer tous les enregistrements de la table "stories" dont l'iduser correspond a celui de la table "user".
    Voici ma requete qui cloche :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $sql = "select stories.id, stories.page, stories.headline, stories.story_text, stories.created, stories.modified, stories.published from stories, user 
    where stories.userid = user.iduser order by published asc";
    mais elle ne me recupere pas ce que je demande

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    1 012
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 012
    Points : 1 093
    Points
    1 093
    Par défaut
    "stories" contient la clé "iduser" et tu fais un where utilisant stories.userid
    cela expliquerait ?

  3. #3
    Membre averti Avatar de guy2004
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    805
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 805
    Points : 377
    Points
    377
    Par défaut
    désolé me suis tropmé : "stories" contient "userid" et "user" contient "iduser"

  4. #4
    Membre averti
    Homme Profil pro
    Webmaster
    Inscrit en
    Mars 2003
    Messages
    898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Mars 2003
    Messages : 898
    Points : 442
    Points
    442
    Par défaut
    Où est ta connection?
    Pourquoi tu ne mets pas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $sql = "select stories.*, user.iduser from stories, user 
    where stories.userid = user.iduser order by published asc" $connection;

  5. #5
    Membre averti Avatar de guy2004
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    805
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 805
    Points : 377
    Points
    377
    Par défaut
    non cela ne change rien.
    Voici le debut du code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $conn = db_connect();
     $sql = "select * from user where iduser = '$_SESSION[userid]'";
      $result = mysql_query($sql, $conn);
     $w = mysql_fetch_array($result);
     echo $w['iduser'];
    Là par exemple cela m'affiche '2' comme iduser.
    Ensuite sur ma requete :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $sql = "select stories.id, stories.page, stories.headline, stories.story_text, stories.created, stories.modified, stories.published from stories, user 
    where stories.userid = user.iduser order by published asc";
    Cela devrait m'afficher les enregistrements avec le iduser egal à '2' Non ?

  6. #6
    Membre chevronné
    Avatar de ska_root
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2005
    Messages
    1 203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Août 2005
    Messages : 1 203
    Points : 1 839
    Points
    1 839
    Par défaut
    Salut,

    Qu'as tu comme retour ?
    Il y a t-il un message d'erreur ?
    le champs `published` existe-t-il aussi dans la table `user` ?

    sinon essaies d'executer ta requête dans un client mysql comme phpMyAdmin ( s'il s'agit d'une base MySQL bien sûr )
    ;-)

  7. #7
    Membre émérite
    Avatar de Nesmontou
    Homme Profil pro
    Architecte logiciel
    Inscrit en
    Septembre 2004
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Architecte logiciel
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2004
    Messages : 1 612
    Points : 2 969
    Points
    2 969
    Par défaut
    Salut, dans tes requêtes, pour les champs numériques, il ne faut pas mettre de ' et pour le reste si.

    Ta requête devrait donc être
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $sql = "select * from user where iduser = ".$_SESSION['userid'];
    Voilà, la remarque et faite, sinon, tu es sûr qu'il y a des enregistrements correspondant à ce que tu recherches :

    Tu peux essayer en faisant une requête plus simple avant de mettre tous les champs dont tu as besoin

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $sql = "SELECT stories.id";
    $sql .= " FROM stories";
    $sql .= " INNER JOIN user ON user.iduser = stories.userid";
    $sql .= " WHERE user.iduser = 2"
    Ca te donne quoi comme résultat : Tu as ce que tu attendais :

    Bon développement ;-)

  8. #8
    Membre averti Avatar de guy2004
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    805
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 805
    Points : 377
    Points
    377
    Par défaut
    ok c'est réglé, finalement j'ai abandonné la jointure et fais comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $sql = "select * from user where iduser = ".$_SESSION['userid'];
    Merci à ceux qui m'on aidé 8)

  9. #9
    Membre émérite
    Avatar de Nesmontou
    Homme Profil pro
    Architecte logiciel
    Inscrit en
    Septembre 2004
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Architecte logiciel
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2004
    Messages : 1 612
    Points : 2 969
    Points
    2 969
    Par défaut
    Petite remarque en passant, le
    c'est mal

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

Discussions similaires

  1. Probleme Jointure entre 2 tables
    Par backdraf dans le forum Développement
    Réponses: 3
    Dernier message: 24/04/2009, 17h54
  2. Probleme sur jointure entre 2 tables
    Par chicken92000 dans le forum Langage SQL
    Réponses: 10
    Dernier message: 10/11/2008, 15h21
  3. PROBLEME DE JOINTURE ENTRE DEUX TABLE
    Par DarkMax dans le forum Langage SQL
    Réponses: 13
    Dernier message: 13/01/2005, 16h11
  4. [jointure]requete possible de double jointure entre 2 tables
    Par akira_le_gaucher dans le forum Langage SQL
    Réponses: 4
    Dernier message: 11/05/2004, 16h03
  5. Jointure entre 2 tables et OR
    Par PyRoFlo dans le forum Requêtes
    Réponses: 2
    Dernier message: 02/02/2004, 19h42

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