Accueil > Forum > > > > Jointure
Jointure
mardi 12 juin 2007 à 21:22:02 |
Jointure

shadow1779
|
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
|
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
|
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
|
voila le code complet si ca peut t'aider mais la requete reste la même
http://rafb.net/p/WCtWZb76.htmlvraiment 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
|
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
|
|
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
Livres en rapport
|
Derniers Blogs
[WF4] PASSAGE D'ARGUMENTS LITERAL, VISUALBASICVALUE OU LAMBDAVALUE?[WF4] PASSAGE D'ARGUMENTS LITERAL, VISUALBASICVALUE OU LAMBDAVALUE? par JeremyJeanson
Avec la sortie de la RC de Visual Studio 2010, Microsoft a mis un peu les points sur leS i en ce qui concernait le passage d'arguments. Mais nous somme un certain nombre à avoir pris ce changement comme un coup dur. Pour résumer la situation : à la sortie...
Cliquez pour lire la suite de l'article par JeremyJeanson [RIA SERVICES] INCLUDE ET DOMAINDATASOURCE[RIA SERVICES] INCLUDE ET DOMAINDATASOURCE par Audrey
Dans un de mes articles précédents , j'avais parlé des DomainDataSource avec RIA Services dans le cas d'une interface Maître - Détail. Dans le même principe, je vais parler d'une autre manière de mettre en forme ce cas d'interface avec RIA Services. Et po...
Cliquez pour lire la suite de l'article par Audrey ZUNE : VERSION ZUNE SOFTWARE V 4.2 ET LA SOCIALISATIONZUNE : VERSION ZUNE SOFTWARE V 4.2 ET LA SOCIALISATION par ROMELARD Fabrice
Une des nouveautés de la version V 3.0 était l'apparition de l'onglet Social qui ne fonctionnait que si le MarketPlace était activé sur son poste. Cela limitait donc son intérêt, car hors du cadre commercial USA-CANADA, peu de monde trouva...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice PRATIQUE DE SILVERLIGHT PAR ERIC AMBROSIPRATIQUE DE SILVERLIGHT PAR ERIC AMBROSI par MPOWARE
Je viens de finir la lecture du dernier livre d'
Eric Ambrosi
éditions PEARSON
Son livre donne une approche pratique de Silverlight qui sera aussi bien comprise par le développeur que par le designeur.
Tous les aspects du développement RIA sont abor...
Cliquez pour lire la suite de l'article par MPOWARE APPRENDRE à DéVELOPPER POUR LES MOBILES AVEC LA NOUVELLE GéNéRATION .NETAPPRENDRE à DéVELOPPER POUR LES MOBILES AVEC LA NOUVELLE GéNéRATION .NET par odewit
2 déclinaisons de Silverlight et 2 déclinaisons de Mono permettent dorénavant (ou permettront prochainement) de développer des applications .NET mobiles pour les principales plates-formes du marché :
Silverlight pour Symbian, basé sur Silverlight 2...
Cliquez pour lire la suite de l'article par odewit
Logiciels
Academy System (10.9.4.0)ACADEMY SYSTEM (10.9.4.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Xilisoft Convertisseur Vidéo Ultimate (5.1.39.0305)XILISOFT CONVERTISSEUR VIDéO ULTIMATE (5.1.39.0305)Xilisoft Convertisseur Vidéo Ultimate est un outil puissant de conversion vidéo, facile à utilise... Cliquez pour télécharger Xilisoft Convertisseur Vidéo Ultimate Xilisoft DVD Ripper Ultimate (5.0.64.0304)XILISOFT DVD RIPPER ULTIMATE (5.0.64.0304)Xilisoft DVD Ripper Ultimate est un logiciel excellent pour copier et convertir DVD vers presque ... Cliquez pour télécharger Xilisoft DVD Ripper Ultimate Rigs of Rods (63.3)RIGS OF RODS (63.3)c'est un jeu de multi-simulation camions,autobus voitures, avions, bateaux, hélicoptère avec défo... Cliquez pour télécharger Rigs of Rods
|