Eléphant du PHP |
179 Messages
07 oct. 2005, 11:32
1. Ce que je voudrais voir afficher:
J'ai une société qui comprend plusieurs produits. Je voudrais que tous les produits d'une société s'affichent et que je puisse accéder à chacune des fiches "produits" à partir de la fiche "société".
L'affichage se fait comme suit:
Script A: Sélection de la société par l'intermédiaire d'une liste déroulante à choix unique.
Script B: Affichage de la fiche de la société dans laquelle sont stipulés les produits qu'elle fabrique. Ces produits sont chacun cliquables individuellement et renvoient à leur fiche respective.
2. Les problèmes que je rencontre.
A chaque fois que j'enregistre plusieurs produits pour une même société, je n'ai pas de problème dans ma base: tout s'enregistre correctement.
En revanche, dans la liste déroulante de mon script A une nouvelle ligne apparaît. Par exemple, une société "BARBAPAPA" fabrique un produit "BONBON". Si je veux enregistrer un produit "SUCETTE", une nouvelle ligne apparaît dans ma liste déroulante et ainsi j'ai deux lignes "BARBAPAPA".
Second problème: les deux lignes du script A renvoient à deux fiches exactement identiques et c'est le dernier produit enregistré qui apparaît. Par exemple, j'ai deux fiches sociétés "BARBAPAPA" dans laquelle seul apparaît le produit "SUCETTE".
3. Les modifications de mon script:
Après différentes tentatives infructueuses, la partie relative à l'affichage des produits de mon script B ressemble à ça: mais c'est encore pire que tout le reste. Plus rien ne s'affiche.
<td>
<?php
//connection à la base et sélection de la table et des champs//
$lien = mysql_connect("xx","xx","xx");
mysql_select_db("xx", $lien);
//Requête de sélection des produits qui correspondent au paramètre "société d'appartenance"//
$requete3="SELECT IdProduit, NomProduit
FROM produits p
INNER JOIN societes s ON s.IdSociete=p.RefSociete
ORDER BY NomProduit";
$result3=mysql_query($requete3);
//Tant qu'il y a des produits, on les affiche//
if (mysql_num_rows($result3))
{
while ($val=mysql_fetch_array($result3))
?>
<a href="aff_produits.php?IdProduit=<?php print ($val["IdProduit"]);?>"><?php print ($val["NomProduit"]);?></a>
</td>
</tr>
<?php
}
mysql_close($lien);
?>
Petit à petit, on devient moins petit... mais qu'est-ce qu'on vieillit!