J'ai trois tables reliées entre elles comme suit.
Groupes --> IdGroupe
Sociétés --> IdSociete et RefGroupe
Produits --> IdProduit et RefSociete
Lorsque mon utilisateur consulte une fiche "société" par exemple, il accède via une URL à la fiche du groupe auquel appartient ladite société. De même, il peut accéder à la fiche du produit que propose cette société.
La navigation d'une fiche à une autre se fait sans problème.
Mais ça devient plus compliqué dès lors qu'un groupe a plusieurs sociétés et une société plusieurs produits. Dès que j'assigne un produit supplémentaire à une société, il remplace le produit précédent au lieu de me les afficher en totalité.
Si vous avez une explication, je suis toute ouïe.
Voici une partie de mon code qui sert à afficher une société, le nom du groupe auquel elle est affiliée et les noms de ses produits:
<?php
//Récuperation de l identifiant de la donnée//
$IdSociete = $_GET['IdSociete'];
?>
<input type="hidden" name="IdGroupe" value="<? echo $IdSociete;?>">
<?php
//Connection à la base//
$lien = mysql_connect("xx","xx","xx");
mysql_select_db("xx", $lien);
// Sélection des tables//
$requete1="SELECT s.IdSociete, s.NomSociete, s.AutreNomSociete, s.RefGroupe, p.IdProduit, p.NomProduit,
s.Specialite, s.Presentation, s.InfCompl, s.PaysOrigine, s.Adresse, s.Tel, s.Fax, s.SiteSociete,
s.NomReprFr, s.AdresseReprFr, s.TelReprFr, s.FaxReprFr, s.MAJ
FROM societes s
LEFT OUTER JOIN produits p ON s.IdSociete=p.RefSociete
WHERE IdSociete='".$IdSociete."'";
$result1=mysql_query($requete1);
$NomSociete = mysql_result($result1,0,'NomSociete');
$AutreNomSociete = mysql_result($result1,0,'AutreNomSociete');
$RefGroupe = mysql_result($result1,0,'RefGroupe');
$IdProduit = mysql_result($result1,0,'IdProduit');
$NomProduit = mysql_result($result1,0,'NomProduit');
$Specialite = mysql_result($result1,0,'Specialite');
$Presentation = mysql_result($result1,0,'Presentation');
$InfCompl = mysql_result($result1,0,'InfCompl');
$PaysOrigine = mysql_result($result1,0,'PaysOrigine');
$Adresse = mysql_result($result1,0,'Adresse');
$Tel = mysql_result($result1,0,'Tel');
$Fax = mysql_result($result1,0,'Fax');
$SiteSociete = mysql_result($result1,0,'SiteSociete');
$NomReprFr = mysql_result($result1,0,'NomReprFr');
$AdresseReprFr = mysql_result($result1,0,'AdresseReprFr');
$TelReprFr = mysql_result($result1,0,'TelReprFr');
$FaxReprFr = mysql_result($result1,0,'FaxReprFr');
$MAJ = mysql_result($result1,0,'MAJ');
mysql_close($lien);
?>
<br />
<h1><?php echo $NomSociete;?></h1>
<br />
<table >
<tbody>
<tr>
<td >
Nom de la société :
</td>
<td>
<?php echo $NomSociete;?>
</tr>
<tr>
<td
Nom du groupe :
</td>
<?php
//Connection à la base
$lien = mysql_connect("xx","xx","xx");
mysql_select_db("xx", $lien);
//Afficher le nom du groupe
$requete2="SELECT IdGroupe, NomGroupe, AutreNomGroupe, Presentation, InfCompl, MAJ
FROM groupes";
$result2=mysql_query($requete2);
while ($val2=mysql_fetch_array($result2))
{
if ($val2["IdGroupe"] == $RefGroupe)
{
print ('');
?>
<td>
<a href="aff_rechgroupes.php?IdGroupe=<?php print ($val2["IdGroupe"]);?>"><?php echo $val2["NomGroupe"];?></a>
<?php
}
}
mysql_close($lien);
?>
</select>
</td>
</tr>
<tr>
<td>
Produit(s) :
</td>
<td>
<a href="aff_rechproduits.php?IdProduit=<?php echo $IdProduit;?>"><?php echo $NomProduit;?></a>
</td>
</tr>