begin process at 2012 02 15 05:33:31
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Base de données

 > 

MySQL

 > 

Jointure


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Jointure

mardi 12 juin 2007 à 21:22:02 | Jointure

shadow1779

Membre Club

Bonsoir,

j'aimerai m'améliorer en PHP/MySQL en commencant avec les jointures, j'aimerai pour sa être un peu guidé car malgré les tutos j'ai du mal: voici la question d'origine que j'ai pu avoir, typique d'un test d'embauche en tant que développeur php:

- Afficher les clients (avec leur commercial) par région - voir exemple ci contre

<b>$region</b>
-$client_nom $client_prenom :: ($commercial_nom $commercial_prenom) <br>
-$client_nom $client_prenom :: ($commercial_nom $commercial_prenom) <br>
-$client_nom $client_prenom :: ($commercial_nom $commercial_prenom) <br>
<br>

<b>$region</b>
-$client_nom $client_prenom :: ($commercial_nom $commercial_prenom) <br>
-$client_nom $client_prenom :: ($commercial_nom $commercial_prenom) <br>
-$client_nom $client_prenom :: ($commercial_nom $commercial_prenom) <br>
<br>

etc....

pour cela on a le shéma suivant:
table: clients
- id (integer)
- civilite enum('Mme','M','Mlle')
- nom (varchar)
- prenom (varchar)
- commercial_id: (integer)

table: commerciaux
- id: (integer)
- nom (varchar)
- prenom
- telephone (varchar)
- region_id (integer)

table: regions
- id (integer)
- libelle (varchar)


Voila tout, si vous pourriez me faire un exemple, je demande pas la soluce mais la manière de traiter vraiment les données par jointures avec 3 tables, sachant que commercial_id = id de la table commerciaux et que region_id = id de la table regions

Merci d'avance

mardi 12 juin 2007 à 21:42:00 | Re : Jointure

sebastien_et_typh

tu peut faire :
select * from clients, commerciaux, regions where clients.commercial_id=commerciaux.id and commerciaux.region_id=regions.id

voila je pense que ca doit etre ca mais pas sur..
mardi 12 juin 2007 à 21:44:40 | Re : Jointure

shadow1779

Membre Club

ouai mais comment je retourne mes values ensuite afin de formater ma page comme je l'ai mise :s
mardi 12 juin 2007 à 22:05:13 | Re : Jointure

sebastien_et_typh

donc tu fais :
$query="select clients.nom,clients.prenom,commerciaux.nom,commerciaux.prenom,regions.libelle from clients, commerciaux, regions where clients.commercial_id=commerciaux.id and commerciaux.region_id=regions.id";
$result=mysql_query($query);
$row=mysql_fetch_array($result);

<b>$row[4]</b>
echo $row[0]. $row[1]." :: (".$row[2].$row[3]) ."<br>";
echo $row[0]. $row[1]." :: (".$row[2].$row[3]) ."<br>";
echo $row[0]. $row[1]." :: (".$row[2].$row[3]) ."<br>";
echo "<br>";

ca devrai marcher
mercredi 13 juin 2007 à 08:09:50 | Re : Jointure

shadow1779

Membre Club

en fait j'ai fais a peu près ca mais je ne vois pas pourquoi ca ne marche pas, un peu d'aide :s

http://rafb.net/p/wA9ca120.html

coté code ca me ressort:

- .$prenom_client $nom_commercial ($prenom_commercial $region)

mercredi 13 juin 2007 à 16:24:08 | Re : Jointure

sebastien_et_typh

est ce ke tu peu me montrer le bout de code que tu a utiliser ou c exactement le meme?La structure de ta base de donnee c bien celle donnee plus haut?
jeudi 14 juin 2007 à 07:51:32 | Re : Jointure

shadow1779

Membre Club
voila le code complet si ca peut t'aider mais la requete reste la même

http://rafb.net/p/WCtWZb76.html


vraiment pas d'idée, au pire ya pas moyen de faire un fetch_assoc plutot qu'un fetch_array, avec un retour de données plus explicite genre:

while($data = mysql_fetch_assoc($req))
{
$nom_commercial = $data['commerciaux']['nom']
$prenom_commercial = $data['commerciaux']['prenom'];
$civilite_client = $data['clients']['civilite'];
$nom_client = $data['clients']['nom'];
$prenom_client = $data['clients']['civilite'];
$region = $data['regions']['libelle'];
}

au moins yaurrai pas de confusion possible
jeudi 14 juin 2007 à 13:14:47 | Re : Jointure

sebastien_et_typh

si tu a utiliser la meme requete que sur le lien donner tu a essayer de mettre $region = $data['libelle'] au lieu de $region = $data['regions']['libelle']
ce n'est qu'une idee
jeudi 14 juin 2007 à 16:10:34 | Re : Jointure

shadow1779

Membre Club

ouai mais certains champs on les mêmes noms, exemple:
-id est dans commerciaux, mais aussi dans clients et dans région, ce n'est pas le même mais c'est toujours un id, donc il ne saurra pas comment le traiter :s

jeudi 14 juin 2007 à 16:46:17 | Re : Jointure

sebastien_et_typh

$result=mysql_query("select clients.nom as 'nomClient',clients.prenom as 'prenomClient',commerciaux.nom as 'commercialNom',commerciaux.prenom as 'commercialPrenom'
,regions.libelle as 'Region' from clients, commerciaux, regions where clients.commercial_id=commerciaux.id and commerciaux.region_id=regions.id");
 while ($data=mysql_fetch_array($result)){
     echo $data['Region'];
    echo $row['clientNom']. $row['clientPrenom']." :: (".$row['commercialNom'].$row['commercialPrenom'].")<br>";
 }

je pense quand mettant ce code ca devrait fonctionner et si tu ve rajouter les id tu dois les renomee avec as dans la requete pour pouvoir les distingue


1 2

Cette discussion est classée dans : table, client, id, prenom, commercial


Répondre à ce message

Sujets en rapport avec ce message

relation entre 2 tables [ par rastagnol ] slt !!!voila G un pb pour mettre 2 tables en relations ... je ne sais pas trop comment m'y prendre. G une table commandes avec un champ client_id et u Probleme jonction de table [ par copper4 ] Bonjour à tous. J'ai une question toute bete. J'ai 1 table clients id nom prenom commentaire ... Et 1 table paiements id create table innodb [ par fakoly77 ] bonjour,j'arrive pas à créer une table qui comporte une clé étrangère d'une première table.create table client (id_client VARCHAR(255) NOT NULL PRIMAR requete SQL 2 table [ par xactise ] Bonjour a tous, encore moi pour un problème de requête (va vraiment falloir que jlise de la doc approfondie a ce sujet...)Je vous expose mon problème. Jointure entre deux tables [ par Krasha ] Salut, Sur ma base de données j'ai deux tables distinctes qui devraient avoir une "liaison" entre elles. (les deux tables ci-dessous ne sont que des insertion dans la base [ par jolina87 ] bonjour, je génère un code automatiquement de client avec une fonction que je viens de la créer ([code=php]$code = newChaine(); //générer automatiquem creation de vue mysql [ par Diablo62 ] Bonjour, C'est pas facile à expliquer mais je vais tenter :) J'ai une table qui contient différents champs : Table user : id | user | mdp | .... 1 Probleme requete sql [ par moza2409 ] Bonjour à tous, J’ai un petit problème avec une requête sql, j’explique mon problème : J’ai un formulaire d’inscription avec les champs pseudo, ema problème avec variable de session et boucle while [ par indutec ] Bonjour j'ai un souci avec une variable de session qui ne veut pas passer dans une boucle while [^^sad2] voici mon code: La personne s'identifie via insertion d'une commande client dans la table commande de la base de donnée [ par rawdhamdw ] svp je veux savoir comment je peut insérer directement les données d'une commande dans la table commande de la base de donnée lorsque le client a coch


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 2,059 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales