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 :

[Tableaux] Switch avec deux variables, comment ?


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    181
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 181
    Points : 78
    Points
    78
    Par défaut [Tableaux] Switch avec deux variables, comment ?
    Bonjour,
    Comment fonctionne la boucle switch svp pour lui mettre deux variables ???

    J'ai essayé comme ça mais je ne suis pas sûr que cela fonctionne bien ?...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    switch($commande || $commande.$donnees['numero'])
        {
    	  case "Modifier":
    .........
    .........
    break;
    }

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    45
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 45
    Points : 49
    Points
    49
    Par défaut
    Bonjour,

    A part tester tes 2 valeurs avant afin de passer la bonne au switch, tu ne peux pas faire comme ca.

    Switch ne prend qu'une seul variable.

    il te faut donc quelque chose comme ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
     
    if ($commande != "") { $c = $commande; }
    elseif ($commande.$donnees['numero'] != "") { $c = $commande.$donnees['numero']; };
     
    switch($c)
        {
    	  case "Modifier":
    .........
    .........
    break;
    }
    A toi de faire le test qui va avec ton traitement

    Cordialement,

  3. #3
    Membre averti

    Profil pro
    Inscrit en
    Mai 2006
    Messages
    206
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 206
    Points : 319
    Points
    319
    Par défaut
    Si tu veut vraiment tout condensé tu peut utiliser l'opérateur ternaire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    switch ( ( ( $commande != "" ) ? $commande : $commande.$donnees['numero'] ) )
    {
       //Instructions
    }

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    181
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 181
    Points : 78
    Points
    78
    Par défaut
    Merci beaucoup.
    Et vu que je suis toujours sur le forum que je souhaite concernant la syntaxe, j'en profite pour poser une autre question : est-ce qu'il est possible de récupérer plusieurs variables dans l'URL comme :

    ex :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    /attach_profil.php?numero=39&numero_profil5=5&commande5=ok&numero_profil4=4&commande4=ok&numero_profil3=3&commande3=pasok&numero_profil1=1&commande1=ok&commande=Modifier
    ??

    J'aimerais appeler les variables numero_profil + le numero dans une seule variable :

    Pour numero_profil, normalement, ça serait :
    $numero_profil = $_GET['numero_profil'];

    Pour numero_profil2, normalement, ça serait :
    $numero_profil = $_GET['numero_profil2'];

    et ainsi de suite mais comment faire pour récupérer tous les numero_profil accompagnés d'un nombre après (car ce numero pourra changer selon le nombre de profils existant) ???

    quelque chose comme
    $numero_profil = $_GET['numero_profil%']; ????

    Car je vous explique ma démarche. Par la suite, je ferais un :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    switch ( ( ( $commande != "" ) ? $commande : $commande.$donnees['numero'] ) )
     
     {
    	  case "Modifier":
    $numero_site = $_GET['numero'];
    $numero_profil = $_GET['numero_profil%']; 
     
     case "ok":
        mysql_query("INSERT INTO ".$table3." VALUES('', '" . $numero_site . "', '".$numero_profil."')");
    	  break;
    }
    Le numero_profil pour l'instant m'insère le chiffre 0 dans ma table... donc si vous avez une idée pour comment récupérer les variables dans l'url (numero_profil et son chiffre), n'hésitez pas ...


    Je vous envoie tout mon code, peut-être que ça vous aidera a mieux comprendre

    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
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
     
    <?
    include ("variables.php");
    include ("connect.inc.php");
     
    echo "<b><u>Attacher un profil au site ";
    $numero=$_GET['numero'];
    $reponse = mysql_query('SELECT * FROM '.$table.' WHERE numero = '.$numero.'');
    while ($donnees2 = mysql_fetch_array($reponse)) {
    echo "<font color=red>";
    echo $donnees2['site'];
    echo "</font>";
    }
    echo "</u> :</b>";
    echo "<br><br>";
     
    ?>
    </p>
    <?php
     
    $reponse = mysql_query('SELECT * FROM '.$table2.' ORDER BY numero DESC');
     
    echo "<form method=\"get\" action=\"attach_profil.php?numero=$numero\">";
    echo "<table border=1><tr>";
    echo "<td align=center><b>Profils</b></td>";
    echo "<td align=center><b>Observations</b></td>";
    echo "<td align=center><b>Attachement</b></td>";
    echo "</tr>";
     
    //juste pour faire afficher le bon numero du site en haut de l'url
    $numero=$_GET['numero'];
    $reponse3 = mysql_query('SELECT * FROM '.$table.' WHERE numero = '.$numero.'');
    while ($donnees3 = mysql_fetch_array($reponse3)) {
    echo "<input type=\"hidden\" name=\"numero\" value=\"".$donnees3['numero']."\">";
    }
     
     
    while ($donnees = mysql_fetch_array($reponse))
    {
    echo "<tr>";
    if ($donnees['profil']=="") { echo "<td>&nbsp;</td>"; } else {
    echo "<td align=center>".$donnees['profil']."</td>";
    }
    if ($donnees['observation']=="") { echo "<td>&nbsp;</td>"; } else {
    echo "<td align=center>".$donnees['observation']."</td>";
    }
    echo "<input type=\"hidden\" name=\"numero_profil".$donnees['numero']."\" value=\"".$donnees['numero']."\">";
    echo "<td align=center>";
    echo "Oui<input type=\"radio\" name=\"commande".$donnees['numero']."\" value=\"ok\">";
    echo "&nbsp;&nbsp;&nbsp;";
    echo "Non<input type=\"radio\" name=\"commande".$donnees['numero']."\" value=\"pasok\" checked>";
    echo "</td>";
    echo "</tr>";
    } // fin du while
    echo "</table>";
    echo "<input type=\"submit\" value=\"Modifier\" NAME=\"commande\">";
    echo "</form>";
     
    switch ( ( ( $commande != "" ) ? $commande : $commande.$donnees['numero'] ) )
    //switch($commande || $commande.$donnees['numero'])
        {
    	  case "Modifier":
    	  $numero_site = $_GET['numero'];
     
    	  //$numero_profil = $_GET['numero_profil4']; // m'affiche 4 dans numero_profil
                    $numero_profil = $_GET['numero_profil%']; 
     
    	  case "ok":
        mysql_query("INSERT INTO ".$table3." VALUES('', '" . $numero_site . "', '".$numero_profil."')");
    	echo "ok pris en compte ".$numero_profil." fois.";
    	  break;
     
    	  case "pasok":
        mysql_query("DELETE FROM ".$table3." WHERE numero_site=".$numero_site." AND numero_profil=".$numero_profil."");
     
    	  break;
    }
    mysql_close(); 
    ?>
    <br><br>
    <center><a href="index.php">Revenir à la base d'articles</a></center>
    </body>
    </html>

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    45
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 45
    Points : 49
    Points
    49
    Par défaut
    Re,

    Admétons que tu connaisse l'indice de départ et l'indice de fin de tes commandes

    par exemple 3 commandes de commande1 à commande3

    il te suffit de faire par exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    for($i=1;$i<$_GET['max_commande'];$i++) {
     
    $numero_profil = $_GET['numero_profil' . $i];
     
    // traitement de la valeur (insert par exemple)
     
    // tu peux meme récupéré numero_profil$i dans $numero_profil$i si ca t'arrange
     
    $varName = 'numero_profil' . $i;
    $$varname = $_GET[$varname];
     
    }

    Cordialement,

    EDIT: attention je ne test pas dans mon exemple la validité des variables GET (isset et co)

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    181
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 181
    Points : 78
    Points
    78
    Par défaut
    Merci beaucoup !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 17/08/2008, 13h20
  2. Switch: pas de variables, comment faire ?
    Par ironzorg dans le forum SDL
    Réponses: 2
    Dernier message: 30/05/2007, 18h18
  3. Switch: pas de variables, comment faire ?
    Par ironzorg dans le forum C
    Réponses: 2
    Dernier message: 30/05/2007, 18h18
  4. [Tableaux] foreach avec tableau variable
    Par NerOcrO dans le forum Langage
    Réponses: 2
    Dernier message: 23/05/2007, 11h13
  5. Switch avec des variables
    Par Reven777 dans le forum C++Builder
    Réponses: 6
    Dernier message: 19/05/2006, 13h30

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