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
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part 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 : 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 $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
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 switch($var) { case 1: {instructions} case 2: {instructions} ... default: {instructions} }![]()
Modératrice PHP
Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.
Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]
Partager