Liste générée a partir de champs contenus dans 2 tables
desperado007
Messages postés1Date d'inscriptionjeudi 26 mai 2005StatutMembreDernière intervention25 juillet 2005
-
25 juil. 2005 à 16:47
cs_Zart
Messages postés285Date d'inscriptionjeudi 29 juillet 2004StatutMembreDernière intervention27 juin 2006
-
25 juil. 2005 à 20:45
Bonjour,
Voici mon probleme: je dois générer une liste d'ingénieur dans un fichier Excel.
Cette liste contient des données issues de 2 (voir 3) tables différentes:
J'arrive a generer ce fichier excel, mais les données sont melangées; je m'explique:
Je veux récupérer:
"nom", "prenom" et "codeing" dans la table fomulaire_bd.
"date_entree" dans la table formulaire_gap
Il faut savoir qu'un ingénieur a un codeing unique.
les premières données saisies sont celles du formulaire_bd, puis le formulaire_gap est alors rempli.
Cependant, les données d'un ingénieur n'ont as nécessairement été saisies dans le formulaire_gap. --> mais il faut cependant que je puisse inclure dans la liste les ingnieurs dont le formulaire_gap n'a pas encore été saisi.
Ainsi, je veux pouvoir générer une liste de tous les ingénieurs contenus dans ces 2 tables (qui ont toutes 2 le champ "codeing" propre à 1 seul ingénieur).
J'espère avoir été suffisemment clair...
Voici le tableau que j'obtiens:
les 5 1eres lignes sont correcte, elles correspondent à la requete "req", les dates ne sont pas melangées.
Les lignes suivantes quant à elles, recuperent les infos des requete "req2" et "req3", et là c le bordel.. tout se melange...
(A noter que ce code html sera converti en fichier Excel)
Je précise un truc:
en faisant ça
SELECT *
FROM formulaire_bd f_bd INNER JOIN formulaire_gap f_gap ON f_bd.codeing=f_gap.codeing
WHERE f_bd.bd ='OMEGA'
");
la condition " ON f_bd.codeing=f_gap.codeing " va limiter la liste aux ingés qui se trouvent dans les 2 tables... or je souhaite pouvoir recupérer TOUS les ingés qui appartiennent à la BD 'OMEGA'., y compris ceux qui ne se trouvent pas encore dans la table formulaire_gap
Ma question: quelle requete sql dois-je faire pour pouvoir récupérer les données propres a un ingénieur dans les tables, sans que tout se melange, et sans avoir de doublons dans ma liste?
A voir également:
Liste générée a partir de champs contenus dans 2 tables
cs_Zart
Messages postés285Date d'inscriptionjeudi 29 juillet 2004StatutMembreDernière intervention27 juin 20061 25 juil. 2005 à 20:45
Pour moi la solution est bidon...
Plutot que de te faire chier à faire 1 requete tu en fais 2 tout simplement...
Pour éviter de faire des accès de merde à ta bd tu fais en premier une
requete qui sélectionne tous les n-uplets de ta table truc_bd tu les
batch dans un premier tableau (à la walegen [je sais pas comment ça
s'écrit]) que tu appelles resultatsBd;
Ensuite tu fais ta deuxième requete pour avoir les résultats de l'autre
tables et tu les mets dans un tableau que tu appelles resultatsGap mais
là tu fais gaffe quand tu remplis la clé de la table seras l'id de ton
ingé
Cad que dans ta boucle tu mets $resultatsGap[$ligne['id']] = $ligne; par exmple pour remplir ton tableau correctement....
Pour finir tu écris le simple code suivant :
foreach($resultatsBd as $inge){ // $inge représente une ligne de la bd
}
donc dans cette boucle tu peux avoir les infos de la bd truc_bd et de
l'autre en faisant $resultatsGap[$inge['id']] et là tu as une ligne de
la table truc_gap donc tu peux avoir toutes tes infos....
Moi je préfère écrire plein de code plutot que de faire des supers requetes...