est il possible d'utiliser un While dans une instruction switch afin de faire une boucle au niveau des case ... car ne connaissant pas à priori le nombre de case et la valeur qu' ils doivent prendre ... car ceux ci sont issues d'une requete
Version imprimable
est il possible d'utiliser un While dans une instruction switch afin de faire une boucle au niveau des case ... car ne connaissant pas à priori le nombre de case et la valeur qu' ils doivent prendre ... car ceux ci sont issues d'une requete
Pourquoi pas ?
ça serait:
Code:
1
2
3
4
5
6
7
8
9
10
11
12 $var="la valeur"; switch($var){ while($resultat_requete){ case $resultat_requete['id']: //action break; } default: //action par defaut }
desolé mais cela ne marche pas chez moi ... c'est pour cette raison que je demande :
Code:
1
2
3
4
5
6
7
8
9
10
11
12 $sql="select * from departements"; $resultat= mysql_query($sql) or die ('Erreur SQL !<br />'.$sql.'<br />'.mysql_error()); switch ($dep) { while ( $row= mysql_fetch_object($resultat)) { case $row->id_dep: $choix[$j++]= $row->nom_dep; break; } } }
et il me raméne cette erreur
Code:Parse error: parse error, unexpected T_WHILE, expecting T_CASE or T_DEFAULT or '}'
déjà (comme le dit le message d'erreur) il y a un } de plus que tu dois supprimer,
en plus la variable sur laquelle se fait le swicth doit exister avant et avoir une valeur sur laquelle se joueront les cases.
voici le code complet et l 'erreur est toujours la même !!!!Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 $drapeau=0; $dep=0; if ( isset ($_POST['submit'])) { $drapeau=1; $j=0; if ($dep>0) { $choix[$j++]="id_dep "; $sql="select * from departements"; $resultat= mysql_query($sql) or die ('Erreur SQL !<br />'.$sql.'<br />'.mysql_error()); switch ($dep) { while ( $row= mysql_fetch_object($resultat)) { case $row->id_dep: $choix[$j++]= $row->nom_dep; break; } } } }
et la ligne qui est marqué dans l'erreur est celle ou se trouve le while ...
La syntaxe correcte est de ce type :
Tu ne peux pas mettre de while entre le switch et le case... Navrée :roll:Code:
1
2
3
4
5
6
7
8
9
10 switch($var) { case 1: {instructions} case 2: {instructions} ... default: {instructions} }