[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. 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. 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. 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...