Liste liées + Oracle

Eléphanteau du PHP | 10 Messages

19 mai 2008, 15:06

Bonjour,

J'essaie d'appliquer le tuto de cette adresse http://www.phpfrance.com/forums/voir_sujet-4562.php dans sa version 100% PHP avec une base base oracle mais je n' arrive pas.

En-dessous la création de mes tables:

Code : Tout sélectionner

//création de la table plateforme CREATE TABLE PLATEFORME (PL_ID NUMBER (16) NOT NULL PRIMARY KEY, PL_NAME VARCHAR2 (32) NOT NULL); //création de la table catégorie CREATE TABLE CATEGORIE (CA_ID NUMBER (16) NOT NULL PRIMARY KEY, CA_NAME VARCHAR2 (64) NOT NULL); //comme une plateforme peut avoir 1 ou plusieurs catégories et qu'une catégorie peut être dans 1 ou plusieurs plateformes ( Liaison 1,n : 1,n); je crée une 3ème table regroupant les 2 clés primaires des deux autres tables. CREATE TABLE PL_CA (PL_ID NUMBER (16) NOT NULL, CA_ID NUMBER (16) NOT NULL, PRIMARY KEY ( PL_ID, CA_ID ), FOREIGN KEY ( PL_ID ) REFERENCES PLATEFORME ( PL_ID ), FOREIGN KEY ( CA_ID ) REFERENCES CATEGORIE ( CA_ID ));
Jusque que là pas de problèmes. Les données des tables sont:

Code : Tout sélectionner

//Table PLATEFORME 1;AIX; 2;Blade IBM; 3;HP-UX; 4;Irix; 5;Linux; 6;Network Firewall; 7;Network Load Balancer; 8;Network Router; 9;Network Switch; 10;Nokia IPSO; 11;Other; 12;Passerelle SSL VPN; 13;Solaris; 14;Storage; 15;Unixware; 16;Windows 2000; 17;Windows 2003; 18;Windows NT; 19;Windows XP; //Table CATEGORIE 1;Application Servers; 2;Blade Center; 3;Compteurs T3G; 4;CosmoCall; 5;Cpt-performances; 6;Custom Shell Command; 7;Databases; 8;Email; 9;ERP; 10;Hardware; 11;Log Files; 12;MiddleWare; 13;Miscellaneous; 14;Networking; 15;Operating Systems; 16;Port Monitors; 17;Process and Services; 18;SNMP Listener; 19;Storage; 20;Web Servers; //TABLE PL_CA 1;1; 1;6; 1;7; 1;9; 1;10; 1;11; 1;14; 1;15; 1;16; 1;17; 1;18; 1;20; 2;2; 3;1; 3;6; 3;7; 3;9; 3;10; 3;11; 3;14; 3;15; 3;16; 3;17; 3;18; 3;20; 4;13; 5;1; 5;3; 5;6; 5;7; 5;8; 5;9; 5;10; 5;11; 5;12; 5;13; 5;14; 5;15; 5;16; 5;17; 5;18; 5;20; 6;14; 6;18; 7;10; 7;14; 7;18; 8;14; 8;18; 9;14; 9;18; 10;6; 10;14; 10;15; 10;18; 10;20; 11;1; 11;6; 11;7; 11;9; 11;11; 11;14; 11;15; 11;16; 11;17; 11;18; 11;20; 12;14; 13;1; 13;3; 13;6; 13;7; 13;9; 13;10; 13;11; 13;13; 13;14; 13;15; 13;16; 13;17; 13;18; 13;20; 14;18; 14;19; 15;15; 16;1; 16;5; 16;7; 16;8; 16;9; 16;10; 16;11; 16;13; 16;14; 16;15; 16;16; 16;17; 16;18; 16;20; 17;1; 17;4; 17;5; 17;7; 17;8; 17;9; 17;10; 17;11; 17;13; 17;14; 17;15; 17;16; 17;17; 17;18; 17;19; 17;20; 18;1; 18;5; 18;7; 18;8; 18;9; 18;10; 18;11; 18;13; 18;14; 18;15; 18;16; 18;17; 18;18; 18;20; 19;1; 19;5; 19;7; 19;8; 19;9; 19;10; 19;11; 19;13; 19;14; 19;15; 19;16; 19;17; 19;18; 19;20;
Je voudrais dans ma 1ère liste déroulante avoir la liste des plateformes, dans la deuxième celle des catégories.
A une plateforme sélectionnée dans la 1ère liste correspond une liste de catégories.

Mon code PHP incomplet:
<?php

		/* On récupère si elle existe le nom  de la plateforme envoyée par le formulaire */
		$idr = isset($_POST['PL_NAME'])?$_POST['PL_NAME']:null;
		
?>
<?php


	if(isset($_POST['OK']) && isset($_POST['CA_NAME']) && $_POST['CA_NAME'] != "")
		{
			pl_selectionnee = $_POST['PL_NAME'];
			ca_selectionnee = $_POST['CA_NAME'];
?>
			<p>Vous avez sélectionné la catégorie 
			<?php echo($ca_selectionnee); ?> de la plateforme 
			<?php echo($pl_selectionnee); ?></p>
			<?php
		}
			?>

<html>
<head><title>INTERFACE</title>
</head>
<body >
<?php

$connexion = ocilogon("username","password","BDD");
if($connexion != false)
{
   
		$stmt ="select PL_ID,PL_NAME from PLATEFORME";
		$parsed = OCIParse($connexion, $stmt);
		OCIExecute($parsed,OCI_DEFAULT);
		$nrows = oci_fetch_all($parsed, $results);
		$id_pl = array();
		$pl_name = array();
    	/* On active un compteur pour les plateformes*/
   		$nbpl = 0;
			if($parsed!= false)
			{
				for ($i = 0; $i < $nrows; $i++ )
						{
				array_push($id_pl, "".$results["PL_ID"][$i]."" );
				array_push($pl_name, "".$results["PL_NAME"][$i]."");
														/* On incrémente le compteur */
							$nbpl++;
                    }
			}
    ?>
<form action="<?php echo($_SERVER['PHP_SELF']); ?>" method="post" id="chgpl">
	<fieldset>
		<legend>Liste</legend>
		
		<select name="plateforme" id="plateforme" onchange="document.forms.chgpl.submit();">
		
		<option value="-1">- - - Choisissez une plateforme - - -</option>
			<?php
				for($i = 0; $i < $nbpl; $i++)
					{
			?>
				<option value="<?php echo($id_pl[$i]); ?>"<?php echo((isset($idr) && $idr == $id_pl[$i])?" selected=\"selected\"":null); ?>><?php echo($pl_name[$i]); ?></option>
			<?php
				}
			?>
		</select>
			<?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)
					{
		/* Cération de la requête pour avoir les catégories de cette plateforme*/
$sql="select CA_ID,CA_NAME from PLATEFORME,CATEGORIE,PL_CA WHERE PL_CA.PL_ID=". $idr .";";
					
				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 */
            ?>
								<select name="categorie" id="categorie">
									<?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]." (". $id_ca[$d] .")"); ?></option>
									<?php
											}
									?>
								</select>
							<?php
							}
									/* Un petit coup de balai */
									$libre1=oci_free_statement($parsed1);
									//<INPUT type="reset" name="retablir" value="Rétablir">	
									//INPUT: permet de définir les différentes zones composant le formulaire

					}
							?>
	<br /><br /><input type="submit" name="OK" id="OK" value="Envoyer" />			
	</fieldset>
</form>

<?php
    /* Terminé, on ferme la connexion */
    $deconnexion=ocilogoff($connexion);
}
else
{
    /* Si on arrive là, c'est pas bon signe, il faut vérifier les 
    * paramètres de connexion, mot de passe, serveur pas démarré etc... */
?>
<p>Un incident s'est produit lors de la connexion à la base de données, 
veuiillez essayer à nouveau ultérieurement.</p>
<?php
}
?>
</body>
</html>
Je n'arrive pas à avoir la bonne requête pour charger les listes. Donc quand je sélectionne les données de la 1ère liste, rien ne se passe. Quelqu'un peut m'aider s'il vous plaît?

[Note : ce message a été posté de manière anonyme avant d'être réattribué à son auteur]

Mammouth du PHP | 1353 Messages

19 mai 2008, 15:25

Bonjour,

Je pense que le problème vient déjà de la facon dont tu récupères la plateforme.
Tu as un select dont le nom est "plateforme" mais tu tentes de récupérer un $_POST['PL_NAME'].

Commence par vérifier ce genre de choses, affiche tes variables regarde si elles ne sont pas vides...

Et stp met ton code php entre des balises php parce que c'est vraiment illisible... :)
Tell me and I forget. Teach me and I remember. Involve me and I learn.

Eléphanteau du PHP | 10 Messages

19 mai 2008, 15:50

Re bonjour,
j'ai essayé de changer comme t'as dit le select "plateforme" en "PL_NAME". La deuxième s'affiche mais vide quand je clique sur un élément de la 1ère liste.

Voici le code:
<?php

		/* On récupère si elle existe le nom  de la plateforme envoyée par le formulaire */
		$idr = isset($_POST['PL_NAME'])?$_POST['PL_NAME']:null;
		
?>
<?php/*


	if(isset($_POST['OK']) && isset($_POST['CA_NAME']) && $_POST['CA_NAME'] != "")
		{
			pl_selectionnee = $_POST['PL_NAME'];
			ca_selectionnee = $_POST['CA_NAME'];
?>
			<p>Vous avez sélectionné la catégorie 
			<?php echo($ca_selectionnee); ?> de la plateforme 
			<?php echo($pl_selectionnee); ?></p>
			<?php
		}
			*/?>

<html>
<head><title>INTERFACE</title>
</head>
<body >
<?php

$connexion = ocilogon("username","password","BDD");
if($connexion != false)
{
		$stmt ="select PL_ID,PL_NAME from PLATEFORME";
		$parsed = OCIParse($connexion, $stmt);
		OCIExecute($parsed,OCI_DEFAULT);
		$nrows = oci_fetch_all($parsed, $results);
		$id_pl = array();
		$pl_name = array();
    	/* On active un compteur pour les plateformes*/
   		$nbpl = 0;
			if($parsed!= false)
			{
				for ($i = 0; $i < $nrows; $i++ )
						{
							array_push($id_pl, "".$results["PL_ID"][$i]."" );
							array_push($pl_name, "".$results["PL_NAME"][$i]."");
							//echo "<option value=\"".$results['PL_NAME'][$i]."\">".$results['PL_NAME'][$i] ."</option>";
							/* On incrémente le compteur */
							$nbpl++;
                    }
			}
    ?>
<form action="<?php echo($_SERVER['PHP_SELF']); ?>" method="post" id="chgpl">
	<fieldset>
		<legend>Liste</legend>
		
		<select name="PL_NAME" id="PL_NAME" onchange="document.forms.chgpl.submit();">

			<option value="-1">- - - Choisissez une plateforme - - -</option>
			<?php
				for($i = 0; $i < $nbpl; $i++)
					{
			?>
				<option value="<?php echo($id_pl[$i]); ?>"<?php echo((isset($idr) && $idr == $id_pl[$i])?" selected=\"selected\"":null); ?>><?php echo($pl_name[$i]); ?></option>
			<?php
				}
			?>
		</select>
			<?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)
					{
						/* Cération de la requête pour avoir les catégories de cette plateforme*/
						$sql="select CA_ID,CA_NAME from CATEGORIE,PLATEFORME,PL_CA WHERE PL_CA.PL_ID=". $idr .";";
					
						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 */
            ?>
								<select name="categorie" id="categorie">
									<?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]." (". $id_ca[$d] .")"); ?></option>
									<?php
											}
									?>
								</select>
							<?php
							}
									/* Un petit coup de balai */
									$libre1=oci_free_statement($parsed1);
									//<INPUT type="reset" name="retablir" value="Rétablir">	
									//INPUT: permet de définir les différentes zones composant le formulaire

					}
							?>
	<br /><br /><input type="submit" name="OK" id="OK" value="Envoyer" />			
	</fieldset>
</form>

<?php
    /* Terminé, on ferme la connexion */
    $deconnexion=ocilogoff($connexion);
}
else
{
    /* Si on arrive là, c'est pas bon signe, il faut vérifier les 
    * paramètres de connexion, mot de passe, serveur pas démarré etc... */
?>
<p>Un incident s'est produit lors de la connexion à la base de données, 
veuiillez essayer à nouveau ultérieurement.</p>
<?php
}
?>
</body>
</html>
[/code]

J'ai l'erreur suivate:
Image

Je pense toujours que mon problème vient des requêtes.

[Note : ce message a été posté de manière anonyme avant d'être réattribué à son auteur]

Eléphanteau du PHP | 10 Messages

19 mai 2008, 15:52

Voici l'erreur que j'obtiens: l'erreur suivate:
http://download.yousendit.com/1D79E6035F434451

[Note : ce message a été posté de manière anonyme avant d'être réattribué à son auteur]

Eléphant du PHP | 422 Messages

19 mai 2008, 16:12

$sql="select CA_ID,CA_NAME from CATEGORIE,PLATEFORME,PL_CA WHERE PL_CA.PL_ID=". $idr .";"; 
et si tu essayes sans mettre le ; à la fin de l'ordre SQL ?

Eléphanteau du PHP | 10 Messages

19 mai 2008, 16:24

Rien a changé, quand je clique sur un élément, j'ai l'erreur suivante: http://download.yousendit.com/842E9550018BE5E9

[Note : ce message a été posté de manière anonyme avant d'être réattribué à son auteur]

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

20 mai 2008, 00:48

"column define ambigously" ca veut dire que le nom de colonne est ambigu dans ta requête. Tu fait une jointure entre 3 tables (CATEGORIE,PLATEFORME,PL_CA) et tu fais un SELECT sur le champ CA_ID alors que celui-ci existe dans CATEGORIE et PL_CA.. du coup ta base de données ne sait pas auquel tu fais référence. Il te faut simplement préfixé le (ou les) champ(s) portant le même nom par le nom de la table, comme tu l'as fait dans le WHERE :)

Par ailleurs, si tu mets 3 tables sans spécifier de condition de jointure entre elles, tu vas te retrouver avec un produit cartésien des données de tes tables, c'est à dire un résultat pour chaque enregistrement de la première, associé à chaque enregistrement de la seconde, multiplié par le nombre d'éléments de la 3ème, au lieu de seulement avoir les données dont tu as besoin ;)

Code : Tout sélectionner

SELECT ... FROM table1, table2, table3 WHERE table1.champA = table2.champB AND table2.champC = table3.champD ...
Ps : ne met pas le ";" à l'intérieur de ta requête et laisse le client oracle l'ajouter s'il en a besoin :)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Invité
Invité n'ayant pas de compte PHPfrance

20 mai 2008, 03:00

Ok. Je vais essayer ce que t'as dit dès demain au boulot. Mais je pense que même ma première requête est fausse. Normalement il me faut faire une requête sur la 3ème table pour récupérer les données correspondantes aux plateformes et catégories? Tu me comprends j'espère?

mdakoss
Invité n'ayant pas de compte PHPfrance

20 mai 2008, 03:02

Ok. Je vais essayer ce que t'as dit dès demain au boulot. Mais je pense que même ma première requête est fausse. Normalement il me faut faire une requête sur la 3ème table pour récupérer les données correspondantes aux plateformes et catégories? Tu me comprends j'espère?

Eléphant du PHP | 422 Messages

20 mai 2008, 08:44

Rien n'a changé ... ben si : le message d'erreur a changé !
Pour les messages d'erreur Oracle, Google est ton ami. Tu tapes le code (ici ORA-00918) et tu as l'explication de l'erreur et l'action de correction à entreprendre (ici le site http://ora-00918.ora-code.com/)
ORA-00918: column ambiguously defined
Cause: A column name used in a join exists in more than one table and is thus referenced ambiguously. In a join, any column name that occurs in more than one of the tables must be prefixed by its table name when referenced. The column should be referenced as TABLE.COLUMN or TABLE_ALIAS.COLUMN. For example, if tables EMP and DEPT are being joined and both contain the column DEPTNO, then all references to DEPTNO should be prefixed with the table name, as in EMP.DEPTNO or E.DEPTNO.
Action: Prefix references to column names that exist in multiple tables with either the table name or a table alias and a period (.), as in the examples above.

mdakoss
Invité n'ayant pas de compte PHPfrance

20 mai 2008, 10:04

Bonjour caroube,
j'ai déjà essayé sur google. Mais le problème est que je n'arrive à écrire la bonne requête. Es-tu d'accord avec moi quand je dis que ma requête doit être sur la 3ème table "PL_CA" car elle regroupe les deux clés primaires des deux autres tables? Le problème maintenant est de savoir comment j'écris ma requête pour extraire les données des 2 premières tables à partir de la 3ème.

Eléphant du PHP | 422 Messages

20 mai 2008, 14:09

Quand tu as une liaison n:n, c'est-à-dire en passant par une table intermédiaire, il faut effectivement que tu fasses intervenir les 3 tables en créant une "chaîne"

Code : Tout sélectionner

PLATEFORME PL_CA CATEGORIE PL_ID-------> PL_ID |---> CA_ID PL_NAME CA_ID--| CA_NAME
Soit donc

Code : Tout sélectionner

SELECT P.PL_ID, P.PL_NAME, C.CA_ID, C.CA_NAME FROM PLATEFORME P, CATEGORIE C, PL_CA WHERE P.PL_ID = PL_CA.PL_ID AND PL_CA.CA_ID = C.CA_ID
Quant aux erreurs Oracle sur Google, tu trouveras les explications des erreurs syntaxiques, mais en aucun cas les erreurs de conception de ta requête.

mdakoss
Invité n'ayant pas de compte PHPfrance

20 mai 2008, 16:00

La requête:
$stmt="select distinct PL_NAME from PLATEFORME,CATEGORIE,PL_CA 
WHERE PLATEFORME.PL_ID=PL_CA.PL_ID AND 
CATEGORIE.CA_ID=PL_CA.CA_ID";
marche pour la 1ère liste. Par contre celle de la 2ème liste:
$sql="select CA_NAME from CATEGORIE,PLATEFORME,PL_CA 
WHERE CATEGORIE.CA_ID=PL_CA.CA_ID AND PL_CA.PL_ID=". $idr ."";
où $idr est le numéro de la plateforme sélectionnée dans la 1ère liste.

Cette dernière me génère des warning . Je ne comprends pas pourquoi.J'ai été sur google pour savoir un peu plus sur ces erreurs mais je n'y comprends rien:

Code : Tout sélectionner

Warning: ociexecute() [function.ociexecute]: ORA-00921: unexpected end of SQL command in /exec/applis/bem/wab/www/Portal/interface.php on line 89 Warning: oci_fetch_all() [function.oci-fetch-all]: ORA-24374: define not done before fetch or execute and fetch in /exec/applis/bem/wab/www/Portal/interface.php on line 90

mdakoss
Invité n'ayant pas de compte PHPfrance

20 mai 2008, 16:52

Je vous envoie le code de là ou j'en suis:
<?php

	/* On récupère si elle existe le nom  de la plateforme envoyée par le formulaire */
		$idr = isset($_POST['PL_NAME'])?$_POST['PL_NAME']:null;
	
?>

<html>
<head><title>Interface</title></head>
<body>

<?php
if(isset($_POST['OK']) && isset($_POST['CA_NAME']) && $_POST['CA_NAME'] != "")
{
    $pl_selectionnee = $_POST['PL_NAME'];
    $ca_selectionnee = $_POST['CA_NAME'];
?>
<p>Vous avez sélectionné la catégorie <?php echo($ca_selectionnee); ?> 
de la plateforme <?php echo($pl_selectionnee); ?></p>
<?php
}
?>

<?php
/* On établit la connexion à la base */
$connexion = ocilogon("username","password","BDD");
if($connexion != false)
{
   		$stmt="select distinct PL_NAME from PLATEFORME,CATEGORIE,PL_CA 
		WHERE PLATEFORME.PL_ID=PL_CA.PL_ID AND 
		CATEGORIE.CA_ID=PL_CA.CA_ID";
		
		$parsed = OCIParse($connexion, $stmt);
		OCIExecute($parsed,OCI_DEFAULT);
		$nrows = oci_fetch_all($parsed, $results);
		/* On crée deux tableaux pour les numéros et les noms des plateformes */
		$id_pl = array();
		$pl_name = array();
    	/* On active un compteur pour les plateformes*/
   		$nbpl = 0;
			if($parsed!= false)
			{
				for ($i = 0; $i < $nrows; $i++ )
						{
							array_push($id_pl, "".$results["PL_ID"][$i]."" );
							array_push($pl_name, "".$results["PL_NAME"][$i]."");
							
							/* On incrémente le compteur */
							$nbpl++;
                    }
			}
    ?>
<form action="<?php echo($_SERVER['PHP_SELF']); ?>" method="post" id="chgpl">
	<fieldset>
		<legend>Liste</legend>
		
		<select name="PL_NAME" id="PL_NAME" onchange="document.forms.chgpl.submit();">
			<option value="-1">- - - Choisissez une plateforme - - -</option>
			<?php
				for($i = 0; $i < $nbpl; $i++)
					{
			?>
<option value="<?php echo($id_pl[$i]); ?>"<?php echo((isset($idr) && $idr == $id_pl[$i])?"selected=\"selected\"":null); ?>><?php echo($pl_name[$i]); ?></option>
			<?php
				}
			?>
		</select>
			<?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)
					{
						/* Cération de la requête pour avoir les catégories de cette plateforme*/
			$sql="select CA_NAME from CATEGORIE,PLATEFORME,PL_CA WHERE CATEGORIE.CA_ID=PL_CA.CA_ID AND PL_CA.PL_ID=". $idr ."";
						
						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 */
            ?>
								<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]." (". $id_ca[$d] .")"); ?>
										</option>
									<?php
											}
									?>
								</select>
							<?php
							}
									/* Un petit coup de balai */
									$libre1=oci_free_statement($parsed1);

					}
							?>
	<br/><br/><input type="submit" name="OK" id="OK" value="Envoyer" />			
	</fieldset>
</form>

<?php
    /* Terminé, on ferme la connexion */
    $deconnexion=ocilogoff($connexion);
}
else
{
    /* Si on arrive là, c'est pas bon signe, il faut vérifier les 
    * paramètres de connexion, mot de passe, serveur pas démarré etc... */
?>
<p>Un incident s'est produit lors de la connexion à la base de données, 
veuiillez essayer à nouveau ultérieurement.</p>
<?php
}
?>
</body>
</html>
Ceci génère toujours les mêmes erreurs que celles de mon message précédent.

mdakoss
Invité n'ayant pas de compte PHPfrance

21 mai 2008, 09:39

Il n'y a personne pour m'aider? SVP