begin process at 2010 03 22 13:23:15
  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 Un Tcho peu d'aide SVP : Afficher une table avec condition selon ID membre [ par FXPHANTOM ] Bonjour a tous, Je vous expose une situation et mon problème . Situation : Ma base sql se nomme "Kxprotect" J'ai deux tables dans cette base de don mise a jour d'une table ace plusieurs table [ par lezj ] bonjour! alors j'ai un petit problème: voilà! je veux updater ma table employé(nom,prenom,salaire,datembauche,idfonction,idservice) et j'écris ceci: SELECTION DU N° DE L'ID EN CLIQUANT SUR UN LIEN [ par escabot ] Bonsoir, Je cherche desespérement la bonne syntaxe qui permettrait de sélectionner les coordonnées (stockées dans la bdd phpmyadmin) correspondant à Ou est le probleme ? [ par remitete ] Bonjour ! j'ai dans une Bdd une base du nom de sharkemu une table du nom : news et 3 champs "id" ( int(11) auto increment ) "Titre" (varchar(50) ) "Me Au secours [ par trc382 ] Bonjour, Voila mon soucis, j'ai une BDD mysql se nommant "Travail". Dans cette base j'ai une table se nommant "Client". Cette table comporte 3 champs


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mars 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

 
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 : 1,248 sec (3)

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