Bonjour

J'ai tourné le probléme dans tout les sens, j'ai effectué des recherches qui m'ont permi d'améliorer mon code mais j'ai toujours un probléme que je n'arrive pas à résoudre.

Explication :

Je lance une requête mysql sur une table contenant entre autre un champ nommé ['Reference'].

Je souhaite remplir la liste déroulante à partir du tableau $Reftab contenant les References trouvées. La taille de $Reftab varie en fonction du résultat de la requête.

Je ne veux pas éxécuter la requête dans le <select>.

Voici le code qui fonctionne mais qui ne prend pas en compte la taille du tableau :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
<?php
$id = $_GET["id"];
$rep = $_GET["rep"];
$host = "xxxx";
$user = "xxxx";
$pass = "xxxx";
$base = "xxxx";
	if($db = mysql_connect($host, $user, $pass)) {
		if($dbb = mysql_select_db($base)) {
		$query = "SELECT * FROM `catalogue` WHERE `Index` = '$id' AND `Rep` = '$rep'";
		$result = mysql_query($query);
		$i = 0;
		while($tab = mysql_fetch_array($result)) {
			global $Reftab;
			$Reftab[$i] = $tab['Reference'];
			$i++;
		}
		mysql_close();
		} else {
        die("connexion à la base $base impossible");
		}
	} else {
			die("connexion au serveur $host impossible");
	  }  
?>
<HTML>
<HEAD>
</HEAD>
<BODY>
	<form name="form1">
		Référence N° <SELECT name="Refcombo" onChange="">
			<OPTION VALUE=""> <?php echo $Reftab[0]; ?> </OPTION>
			<OPTION VALUE=""> <?php echo $Reftab[1]; ?> </OPTION>
			<OPTION VALUE=""> <?php echo $Reftab[2]; ?> </OPTION>
		</SELECT></td>
	</form>
</BODY></HTML>
Et voici le code le moins tordu parmi tout ceux que j'ai essayé qui prend en compte la taille du tableau

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
<?php
$id = $_GET["id"];
$rep = $_GET["rep"];
$host = "xxxx";
$user = "xxxx";
$pass = "xxxx";
$base = "xxxx";
	if($db = mysql_connect($host, $user, $pass)) {
		if($dbb = mysql_select_db($base)) {
		$query = "SELECT * FROM `catalogue` WHERE `Index` = '$id' AND `Rep` = '$rep'";
		$result = mysql_query($query);
		$i = 0;
		while($tab = mysql_fetch_array($result)) {
			global $Reftab;
			$Reftab[$i] = $tab['Reference'];
			$i++;
		}
		mysql_close();
		} else {
        die("connexion à la base $base impossible");
		}
	} else {
			die("connexion au serveur $host impossible");
	  }  
?>
<HTML>
<HEAD>
</HEAD>
<BODY>
	<form name="form1">
		Référence N° <SELECT name="Refcombo" onChange="">
			<script language="javascript">
				for (i=0; i< <?php echo count($Reftab); ?> i++)
				document.write("<option value=\"\">" + <?php echo $Reftab[i]; ?> + "</option>");
				//Je pense que i n'est pas accessible dans echo $Reftab[i];
			</script>
		</SELECT></td>
	</form>
</BODY></HTML>