Jointure

Fermé
ben1403 Messages postés 21 Date d'inscription mercredi 28 mai 2008 Statut Membre Dernière intervention 7 juillet 2008 - 4 juin 2008 à 10:16
ben1403 Messages postés 21 Date d'inscription mercredi 28 mai 2008 Statut Membre Dernière intervention 7 juillet 2008 - 4 juin 2008 à 12:21
Bonjour, j'ai 2 tables: personnes et domaines.

je veux afficher pour une personne, ses différents domaines sur la mem ligne. voici ce ke mon code affiche:

jean : Agriculture
jean : santé

or, moi je voudrais afficher ca:

jean : Agriculture - santé


merci

2 réponses

Tantor8 Messages postés 46 Date d'inscription mercredi 21 mai 2008 Statut Membre Dernière intervention 9 janvier 2009 2
4 juin 2008 à 10:34
Salut,

je ne sais pas en quelle langage tu veux faire cela. Mais je pense qu'une simple concaténation de chaine de caractère suffirait.

exemple en php:
$chaine="";

tu récupère le nom dans $nom puis les donné on dira $donné1 et $donné2 et tu fait la concaténation:

$chaine.=$nom."=".$donné1."-".$donné2;


J'ai pas tester mais sa ressemble à cela. Après faudrais que tu donne plus de précisions sur le language et les données.

a+
0
ben1403 Messages postés 21 Date d'inscription mercredi 28 mai 2008 Statut Membre Dernière intervention 7 juillet 2008
4 juin 2008 à 10:59
c'est fait en php/mysql, voici la structure des tables concernees:

CREATE TABLE `contact` (
`idcont` varchar(14) NOT NULL,
`orgId` varchar(14) default NULL,
`officeId` varchar(14) default NULL,
`salutation` varchar(10) default NULL,
`firstName` varchar(50) NOT NULL default '',
`lastName` varchar(50) NOT NULL default '',
`title` varchar(50) default NULL,
`phone1` varchar(100) default NULL,
`phone2` varchar(100) default NULL,
PRIMARY KEY (`idcont`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

CREATE TABLE `sector` (
`idsec` varchar(14) NOT NULL,
`name` varchar(55) NOT NULL default '',
PRIMARY KEY (`idsec`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;


CREATE TABLE `contsec` (
`idcont` varchar(14) NOT NULL,
`idsec` varchar(14) NOT NULL,
PRIMARY KEY (`idcont`,`idsec`),
KEY `abfkindex1` (`idcont`),
KEY `abfkindex2` (`idsec`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
0
Tantor8 Messages postés 46 Date d'inscription mercredi 21 mai 2008 Statut Membre Dernière intervention 9 janvier 2009 2 > ben1403 Messages postés 21 Date d'inscription mercredi 28 mai 2008 Statut Membre Dernière intervention 7 juillet 2008
4 juin 2008 à 11:44
Si j'ai bien compris, tu doit récupéré les nom de chaque contact puis récupérer tous les enregistrements de ce contact dans la table 'contsec'. Et tu enregistre tout les 'idsec' associé a ce contact.
Après quoi tu recherche dans la table 'sector' ce a koi correspond le 'idsec' . Puis tu affiche avec la concaténation comme j'ai fait au dessus.

Pour te donné un aperçu du code cela donne quelque chose comme sa:
récupération des contact:
 $requete="SELECT idcont FROM contact ";
	    $resultat = ExecRequete ($requete, $connexion);
	    $tabcont=mysql_fetch_assoc($resultat);

puis tu parcour le tableau des contact et tu recherche les secteur de chaque contact:
 foreach($tabcont as $cont){
                $chaine=$cont.":";
                $requete2="SELECT idsec FROM contsec WHERE idcont='$cont' ";
	        $resultat2 = ExecRequete ($requete2, $connexion);
	        $tabsec=mysql_fetch_assoc($resultat2);
                 foreach( $tabsec as $sec){
                       $requete3="SELECT name FROM contsec WHERE idsec='$sec' ";
	               $resultat3 = ExecRequete ($requete3, $connexion);
	               $tabsec=mysql_fetch_assoc($resultat3);
                       foreach($tabsec as $nom){
                             $chaine.=" ".$nom;
                       }
                 }
             }


$conexion est le resultat d'une fonction qui me permet de me connecter à la base.

Voila, c'est pas tester nom plus mais c'est pour te donné une idée, après c'est a toi de l'adapter à ton code. a+



0
ben1403 Messages postés 21 Date d'inscription mercredi 28 mai 2008 Statut Membre Dernière intervention 7 juillet 2008 > Tantor8 Messages postés 46 Date d'inscription mercredi 21 mai 2008 Statut Membre Dernière intervention 9 janvier 2009
4 juin 2008 à 12:21
merci, je vais tester
0
Mimiste Messages postés 1149 Date d'inscription samedi 17 mai 2008 Statut Membre Dernière intervention 6 mars 2016 206
4 juin 2008 à 10:44
hello

qu'il t'affiche

jean : Agriculture
jean : santé

est tout a fais normal ça prouve que la base est bien faite, maintenant c'est dans le code de ton programme que tu doit exploiter ces résultats et les formater comme tu veux
0