IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

while dans switch


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Juillet 2006
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 43
    Par défaut while dans switch
    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

  2. #2
    Membre Expert
    Avatar de Thes32
    Homme Profil pro
    Développeur PHP, .Net, T-SQL
    Inscrit en
    Décembre 2006
    Messages
    2 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur PHP, .Net, T-SQL

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 379
    Par défaut
    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
    }

  3. #3
    Membre averti
    Inscrit en
    Juillet 2006
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 43
    Par défaut
    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 '}'

  4. #4
    Membre Expert
    Avatar de Thes32
    Homme Profil pro
    Développeur PHP, .Net, T-SQL
    Inscrit en
    Décembre 2006
    Messages
    2 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur PHP, .Net, T-SQL

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 379
    Par défaut
    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.

  5. #5
    Membre averti
    Inscrit en
    Juillet 2006
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 43
    Par défaut
    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;
    					}
    		}
    	}
    }
    voici le code complet et l 'erreur est toujours la même !!!!
    et la ligne qui est marqué dans l'erreur est celle ou se trouve le while ...

  6. #6
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    La syntaxe correcte est de ce type :
    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}
    }
    Tu ne peux pas mettre de while entre le switch et le case... Navrée
    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]

Discussions similaires

  1. probleme de boucle while dans une procedure stockée
    Par aboulemagnifique dans le forum SQL Procédural
    Réponses: 6
    Dernier message: 08/08/2007, 12h39
  2. While dans une function ?
    Par jfberub dans le forum Langage
    Réponses: 5
    Dernier message: 02/12/2006, 21h34
  3. Plusieurs cas dans switch
    Par franfr57 dans le forum Langage
    Réponses: 11
    Dernier message: 22/05/2006, 10h56
  4. [java]probleme de case dans switch
    Par mousstik dans le forum Langage
    Réponses: 8
    Dernier message: 19/09/2005, 16h27
  5. insérer les recordset d'un while dans une variable
    Par yoda_style dans le forum ASP
    Réponses: 4
    Dernier message: 31/03/2005, 10h01

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo