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 :

PHP-MYSQL: Requête avec jointures


Sujet :

PHP & Base de données

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    227
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 227
    Points : 81
    Points
    81
    Par défaut PHP-MYSQL: Requête avec jointures
    Bonsoir à tous,

    Je viens de faire ma première requête sur des tables liées.
    Pourriez-vous me dire si cela vous semble correcte?

    J'utilise 3 tables qui ont toutes le champs 'nom'.
    Je pensais faire un mysql_fetch_array mais je n'ai pas réussi à trouver comment gérer mes noms de champs identiques.
    J'ai donc utilisé mysql_fetch_object avec AS et ->

    LES TABLES DE LA BASE:

    table société:
    id
    nom
    url

    table categorie:
    id
    nom

    table societe_categorie:
    societe_id
    categorie_id

    table contact:
    id contact
    nom
    societe_id

    Le 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
    		$sql = "
    		SELECT  societe.nom AS NOMSOC, categorie.nom AS NOMCAT, contact.nom AS NOMCON
    		FROM (societe INNER JOIN societe_categorie ON societe.id = societe_categorie.societe_id) 
    		INNER JOIN categorie ON categorie.id = societe_categorie.categorie_id
    		INNER JOIN contact ON contact.societe_id=societe.id
     
    		WHERE societe.nom LIKE '$test2'"; 
     
    		// on lance la requête (mysql_query) et on impose un message d'erreur si la requête ne se passe pas bien (or die)  
    		$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());  
    		while ($data = mysql_fetch_object($req)) 
    			{ 
    				echo 'Nom: ';
    				echo $data->NOMSOC;
    				echo '<BR>';
     
     
     
    				echo 'Catégorie: ';
    				echo $data->NOMCAT;
    				echo '<BR>';
     
    				echo 'Contact: ';
    				echo $data->NOMCON;
    				echo '<BR><BR>';
    			}
    Qu'en pensez-vous?


    A quoi servent les parenthèses de:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    (societe INNER JOIN societe_categorie ON societe.id = societe_categorie.societe_id)

  2. #2
    Rédacteur/Modérateur

    Avatar de Antoun
    Homme Profil pro
    Architecte décisionnel
    Inscrit en
    Octobre 2006
    Messages
    6 280
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte décisionnel
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2006
    Messages : 6 280
    Points : 11 736
    Points
    11 736
    Par défaut
    Citation Envoyé par idamarco Voir le message

    Qu'en pensez-vous?
    difficile à dire sans ton modèle de données... à vue de nez, ça a l'air correct... la vraie question est : est-ce que ça marche ?
    Citation Envoyé par idamarco Voir le message
    A quoi servent les parenthèses de:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    (societe INNER JOIN societe_categorie ON societe.id = societe_categorie.societe_id)
    à rien
    Antoun
    Expert Essbase, BO, SQL

    La bible d'Essbase, 2ème édition

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    227
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 227
    Points : 81
    Points
    81
    Par défaut
    Citation Envoyé par Antoun Voir le message
    difficile à dire sans ton modèle de données... à vue de nez, ça a l'air correct... la vraie question est : est-ce que ça marche ?


    à rien
    Bonsoir Antoun,

    le modèle:

    table société:
    id
    nom
    url

    table categorie:
    id
    nom

    table societe_categorie: (n-n entre categorie et societe)
    societe_id
    categorie_id

    table contact: (1-n une société peut avoir plusieurs contacts)
    id contact
    nom
    societe_id

    Si ça marche?
    Oui.

    En fait, comme je l'explique, je n'ai pas réussi à gérer mes champs portant des noms identiques avec mysql_fetch_array.
    mysql_fetch_object est il aussi adapté à ma requete que mysql_fetch_array?

  4. #4
    Rédacteur/Modérateur

    Avatar de Antoun
    Homme Profil pro
    Architecte décisionnel
    Inscrit en
    Octobre 2006
    Messages
    6 280
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte décisionnel
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2006
    Messages : 6 280
    Points : 11 736
    Points
    11 736
    Par défaut
    Citation Envoyé par idamarco Voir le message
    En fait, comme je l'explique, je n'ai pas réussi à gérer mes champs portant des noms identiques avec mysql_fetch_array.
    mysql_fetch_object est il aussi adapté à ma requete que mysql_fetch_array?
    Pour tes colonnes avec des noms identiques, peux-tu donner un exemple ? Parce que je ne vois pas du tout où est le problème...

    Quant à fetch_array versus fetch_object, pour moi c'est purement une question de style d'écriture...
    Antoun
    Expert Essbase, BO, SQL

    La bible d'Essbase, 2ème édition

Discussions similaires

  1. [MySQL] php/mysql INSERT avec Jointure
    Par vetea_t dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 17/11/2009, 08h29
  2. optimisation d'une requête avec jointure
    Par champijulie dans le forum PostgreSQL
    Réponses: 8
    Dernier message: 07/07/2005, 09h45
  3. Requête avec jointures
    Par Corben dans le forum Langage SQL
    Réponses: 4
    Dernier message: 16/11/2004, 12h55
  4. Mise à jour de table impossible après requête avec jointure
    Par sto dans le forum Bases de données
    Réponses: 5
    Dernier message: 17/03/2004, 13h24
  5. problème de requête avec jointures
    Par tinhat dans le forum Requêtes
    Réponses: 7
    Dernier message: 11/08/2003, 10h33

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