pb switch

donatello
Invité n'ayant pas de compte PHPfrance

25 sept. 2005, 23:23

Bonjour à tous,
j'utilise switch/case pour tester les valeurs d'une variable.
Mon code est de la forme
function display_menu ($MaVar) {
switch ($MaVar) {
	case "visites":
print ("\n
<table class=\"menu_ancres\">
<tr><td>Informations visites</td></tr>
<tr><td><a href=\"\#\">Statistiques</a></td></tr>
<tr><td><a href=\"\#\">Recapitulatifs sur la periode</a></td></tr>
<tr><td><a href=\"\#\">Graphique recapitulatif des statistiques</a></td></tr>
<tr><td><a href=\"\#\">Graphique des durees des visites par visiteur</a></td></tr>
<tr><td><a href=\"\#\">Graphique des visites par heure du serveur</a></td></tr>
<tr><td><a href=\"\#\">Graphique des visites par heure du visiteur</a></td></tr>
<tr><td><a href=\"\#\">Graphique des lieux de connexion</a></td></tr>
</table>
\n");	

	case "pages":
print ("\n
<table class=\"menu_ancres\">
<tr><td>Informations pages vues</td></tr>
<tr><td><a href=\"\#\">Tableau des détails des pages vues </a></td></tr>
<tr><td><a href=\"\#\">Graphique des visites par nombre de pages vues</a></td></tr>
<tr><td><a href=\"\#\">Graphique des pages vues par heure du serveur</a></td></tr>
<tr><td><a href=\"\#\">Graphique des pages vues par heure du visiteur</a></td></tr>
</table>
\n");	

//....
}
j'ai en tout 8 cas différents qui génèrent le même type de code html.
Mon pb, c'est que les 8 conditions s'exécutent en même temps au lieu de 1 à la fois, en fonction de la valeur de la variable. comme si les 8 conditions étaient vérifiées en même temps...
Qqn connaît ce pb?

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

25 sept. 2005, 23:25

rajoute un "break;" dans chaque "case" :wink:

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Mammouth du PHP | 1776 Messages

25 sept. 2005, 23:29

Résolu donc? :wink:

Eléphant du PHP | 199 Messages

26 sept. 2005, 07:42

Si tu ne met pas un break; à la fin de ton case, l'etiquette case suivante serai exécutée jusqu'à la prochaine instruction break ou la fin du switch si tu n'as pas mis de break
Les 2 font la paire : coder ET commenter :wink:

Invité
Invité n'ayant pas de compte PHPfrance

26 sept. 2005, 10:32

oui ça marche, merci bcp.