Eléphanteau du PHP |
10 Messages
22 mai 2008, 10:10
La seule partie du code qui me pose problème actuellement est la création de la deuxième requête qui me permettra d'avoir les catégories d'une plateforme sélectionnée de la 1ère liste déroulante. La requête concernant la sélection des éléments de la 1ère liste marche bien à mon avis. Mais chaque fois que je sélectionne un élément de cette liste, dans la deuxième liste je n'ai pas vraiment les catégories correspondantes à la plateforme sélectionnée. J'ai une erreur sur la requête qui n'est pas bonne et donc j'essaie de la corriger pour avoir les informations que je veux. Voici la partie du code qui à mon avis, cause problème:
<?php
$libre=oci_free_statement($parsed);
/* On commence par vérifier si on a envoyé un numéro de plateforme et le cas échéant s'il est différent de -1 */
if(isset($idr) && $idr != -1)
{
/* Création de la requête pour avoir les catégories de cette plateforme*/
$sql="select distinct CA_NAME from CATEGORIE,PLATEFORME,PL_CA WHERE CATEGORIE.CA_ID=PL_CA.CA_ID AND PPL_CA.PL_ID=".$idr."";
//echo($sql);
if($connexion != false)
{
$parsed1 = OCIParse($connexion, $sql);
OCIExecute($parsed1,OCI_DEFAULT);
$nrows1 = oci_fetch_all($parsed1, $results1);
/* Un petit compteur pour les catégories */
$nbca = 0;
/* On crée deux tableaux pour les numéros et les noms des catégories */
$id_ca = array();
$ca_name = array();
/* On va mettre les numéros et noms des catégories dans les deux tableaux */
for ($i = 0; $i < $nrows1; $i++ )
{
array_push($id_ca, "".$results1["CA_ID"][$i]."" );
array_push($ca_name, "".$results1["CA_NAME"][$i]."");
/* On incrémente le compteur */
$nbca++;
}
/* Maintenant on peut construire la liste déroulante */
?>
<p>
<label>Catégorie</label>
<select name="CA_NAME" id="CA_NAME">
<?php
for($d = 0; $d<$nbca; $d++)
{
?>
<option value="<?php echo($id_ca[$d]); ?>"
<?php echo((isset($ca_selectionnee) && $ca_selectionnee == $id_ca[$d])?" selected=\"selected\"":null); ?>><?php echo($ca_name[$d]); ?>
</option>
<?php
}
?>
</select>
</p>
<?php
}
/* Un petit coup de balai */
$libre1=oci_free_statement($parsed1);
}
?>
J'espère que mon problème est plus clair maitenant?
[Note : ce message a été posté de manière anonyme avant d'être réattribué à son auteur]