[PHP/SQL] Concaténation de variables

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. Modérateur
    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. 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 ?
    2. Modérateur
      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...
  2. 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 !
    1. 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");

      };