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 :

demande conseil entre JOIN et sql imbriqués [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Invité
    Invité(e)
    Par défaut demande conseil entre JOIN et sql imbriqués
    Bonjour,
    Sans doute récurent, mais j'aimerais savoir comment organiser ma requete

    Entre ceci,(voir plus bas) et une seule requéte avec JOIN.

    Je vais pour une salle de musée, faire un simple SELECT avec $_POST['id_salle'] ,dans ma table musee
    Ceci va me permettre d'afficher sa description

    1er etage , aile nord , grande salle lumineuse etc..

    Donc pas de WHILE j'ais tout directementpar mon
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WHERE salle_ID=$_POST['id_salle']
    Puis je vais ecrire a l'ecran "Salle ou vous trouverez..."
    Et la je vais faire un SELECT sur ma table "oeuvres"
    bien sur avec un WHILE puisque j'aurais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WHERE oeuvres.salle=$_POST['id_salle']
    Mais pratiquant peut les JOINTURES je vous poses la question:

    Dans ce cas précis serait'il mieux de ne faire qu'une requéte avec jointure et quelle syntaxe ?

    Merci d'avance
    Je penses par exemple a
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    <?PHP
    $resultat=mysql_query( "SELECT musee.*,oeuvres.*
    FROM oeuvres INNER JOIN musee
    ON musee.salle_ID = oeuvres.salle
    WHERE oeuvres.salle=$_POST['id_salle']");
     
    while ($row=mysql_fetch_array($resultat)) 
             {
              $nom= $row['musee.salle']);
              //=========etc...
             }
    ?>
    Merci de vos conseils.

  2. #2
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    Si tu utilises une seule requête, tu vas logiquement avoir la description de la salle pour chaque œuvre trouvée.
    Donc : si tu veux afficher une seule fois les infos de la salle, puis la liste des œuvres, il est plus simple de faire deux requêtes.
    Si tu veux afficher des détails sur la salle à chaque œuvre, tu fais une seule requête avec jointure, comme ça tu auras toutes les infos à chaque fois.
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  3. #3
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Celira Voir le message
    Si tu utilises une seule requête, tu vas logiquement avoir la description de la salle pour chaque œuvre trouvée.
    Donc : si tu veux afficher une seule fois les infos de la salle, puis la liste des œuvres, il est plus simple de faire deux requêtes.
    Si tu veux afficher des détails sur la salle à chaque œuvre, tu fais une seule requête avec jointure, comme ça tu auras toutes les infos à chaque fois.
    Merci de ta réponse Celira, je suis bien dans le premier cas, donc il me semblait bien ... pas besoins de JOINTURE .

    juste une question, tu vas me trouver nulle, mais si j'optais pour JOIN, dans le while chaque champ doit étre du type

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $auteur= $row['oeuvres.auteur'];
    ou simplement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $auteur= $row['auteur'];
    sachant qu'il n'y a pas de champ auteur dans la table musee
    Merci encore a toi.
    Dernière modification par Deepin ; 07/10/2010 à 08h59. Motif: merci d'utiliser la balise code (bouton # de l'editeur)!!

  4. #4
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    Je dirais que
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $auteur= $row['auteur'];
    suffirait. Le plus simple étant quand même de faire un print_r de $row une fois pour voir ce qu'il ya réellement dedans et prendre les bons index
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  5. #5
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Celira Voir le message
    Je dirais que $auteur= $row['auteur']; suffirait. Le plus simple étant quand même de faire un print_r de $row une fois pour voir ce qu'il ya réellement dedans et prendre les bons index
    Parfait pour le PRINT_R un test et je saurais pour tout mon projet !
    Encore Merci a toi

    (PS j'avait mis résolu, la c'est super résolu)

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

Discussions similaires

  1. FULL JOIN entre 4 tables SQL / Access
    Par kbrice dans le forum Access
    Réponses: 2
    Dernier message: 07/05/2015, 23h15
  2. [XL-2013] Demande de conseil entre 2 méthodes
    Par StarLord77 dans le forum Excel
    Réponses: 2
    Dernier message: 21/04/2015, 12h56
  3. Inner Join entre deux tables SQL avec VB6
    Par Astragale dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 26/02/2009, 19h35
  4. Lien entre oracle et SQL Server 2000
    Par alpachico dans le forum Décisions SGBD
    Réponses: 14
    Dernier message: 15/06/2005, 14h14

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