salut,
j'ai un pb avec une requete auquel je ne parviens pas a avoir un resultat satisfaisant
donc en fait g 3 tables :
- une table personnel : id_personnel, nom_pers, ...
- une table materiel : id_materiel, modele, ...
- une table affecter : id_materiel, id_personnel //elle resulte d une concatenation entre les 2 premieres
et je voudrais faire une liste de personnel, en prenant en compte le materiel si il y en a au moins un de affecter
par exemple : dans la bdd j'ai :
- table personnel : id_personnel, nom_pers, ...
1, dupont, ...
2, smith, ...
3, langdon, ...
- table materiel : id_materiel, modele, type, ...
1, ACER ASPIRE, ordinateur, ...
2, P III , ordinateur, ...
3, HP , ordinateur, ...
- table affecter : id_materiel, id_personnel //elle resulte d une concatenation
1,2
2,1
1,3
et je voudrais un resultat similaire a cela
dupont -->P III
smith -->ACER ASPIRE
dupont -->HP
langdon -->
$sql= "SELECT * FROM $table_pers, $table_aff_pers ".
"WHERE ($table_aff_pers.id_personnel=$table_pers.id_personnel ".
"OR $table_pers.id_personnel NOT IN (SELECT id_personnel FROM $table_aff_pers) ) ".
"ORDER BY $table_pers.id_personnel ";
$req = mysql_query($sql) or die (mysql_error());
while ( $data = mysql_fetch_array($req))
{
echo $data['nom_pers'].'-->'.$data['modele'].'<br>';
}
le pb est qu'il me sors effectivement toute la liste du personnel mais il fait apparaitre autant de fois kil il y a de concatenation celui qui n'a pas de materiel affecter