[PHP/SQL] Concaténation de variables

misterbonni Messages postés 9 Statut Membre -  
 Espritcool -
Bonjour,

mon problème est simple à expliquer :

j'ai une variable $groupe qui prend en réalité autant de forme que d'enregistrement dans une table : $groupe1, $groupe2, $groupe3...

En clair s'il y a 3 enregistrements dans la table, il y a 3 variables $groupeX (où X =1,2 ou 3) et je souhaite afficher les valeurs de chacune de ces variables si ces valeurs sont différentes de "" (en fait si elles contiennent une valeur).

je souhaite donc utiliser $i pour avoir le numéro, et donc avoir $groupe suivi de $i qui s'incrémente tant que la boucle n'atteint pas le nombre total d'enregistrement.

mais si je fais echo $groupe.$i il écrit l'un a coté de l'autre les valeurs de la variable $groupe et de la variable $i.

Comment faire pour qu'il comprène que je souhaite la valeur de la variable constitué de la chaine "groupe" suivi d'un chiffre contenu dans la variable $i ??

je ne sais pas si je me suis bien expliqué, au besoin demandez moi !

merci à tous

4 réponses

  1. kilian Messages postés 8675 Date d'inscription   Statut Modérateur Dernière intervention   1 526
     
    Salut,

    Pour ça il faut utiliser les variables dynamiques.
    Comme ceci : ${nom_variable}

    Et nom_variable peut être n'importe quelle chaine de caractère.
    Pour toi ce sera
    ${ 'groupe' . $i }

    C'est plutôt déconseillé d'utiliser les variables dynamiques mais bon....
    1
    1. misterbonni Messages postés 9 Statut Membre 6
       
      Salut Killian, merci de ta réponse !

      je testerai donc avec les variables dynamiques, et si je rencontre un problème j'essaierai la solution de Darshu, merci à toi aussi pour ton aide!

      Et au fait quel est le défaut des variables dynamiques ?
      0
    2. kilian Messages postés 8675 Date d'inscription   Statut Modérateur Dernière intervention   1 526
       
      Et au fait quel est le défaut des variables dynamiques ?

      Ca peut rendre le code moins lisible (ça peut être difficile en lisant le code de savoir à quelle variable on se réfère).
      Et tu peux parfois tomber sur une variable qui n'existe pas...
      0
  2. Espritcool
     
    Je suis en train de creer mon cms est je bloqué dans la partie administration simplifier mais grace à vous ca marche

    Mille merci

    if ($submit=="Ajouter"){
    $val1="NULL";
    $bloc=$nombre_de_champ_de_la_table-1;
    for($i=1; $i != $nombre_de_champ_de_la_table ; $i++){
    if ($i<>"$bloc"){
    $toto=${ 'champ' . $i };
    //echo "$toto";
    $liste1="`$toto` , ";
    $liste2=$liste2.$liste1;
    } else {
    $toto=${ 'champ' . $i };
    //echo "$toto";
    $liste1="`$toto`";
    $liste2=$liste2.$liste1;};

    };

    for($i=1; $i != $nombre_de_champ_de_la_table ; $i++){

    if ($i<>"$bloc"){
    $val=${ 'val' . $i };
    //echo "$val";
    $liste3="'$val' , ";
    $liste4=$liste4.$liste3;
    } else {
    $val=${ 'val' . $i };
    //echo "$val";
    $liste3="'$val'";
    $liste4=$liste4.$liste3;};

    };
    //echo "<br>finale = $liste2<br>";
    //echo "finale = $liste4";

    $insert="INSERT INTO $nom_de_la_table ($liste2) VALUES ($liste4);";
    //echo "$insert";
    mysql_query("$insert");

    };
    1
  3. Darshu Messages postés 303 Statut Membre 64
     
    Salut. Il y a également une autre méthode, c'est de faire $groupe['$i'], ça te rajoute juste une paire de crochets et ça devrait marcher, j'ai fait comme ça plusieurs fois !
    0
  4. Rémy
     
    Beaucoup plus simple les amis :

    $(groupe$i)


    cordialement
    0