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

PHP & Base de données Discussion :

Problème concaténation variables [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre averti Avatar de renaud26
    Homme Profil pro
    Webmaster
    Inscrit en
    Mars 2003
    Messages
    1 365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Mars 2003
    Messages : 1 365
    Points : 436
    Points
    436
    Par défaut Problème concaténation variables
    Bonjour à tous,

    Je galère pour afficher 2 vars concaténées...

    je récupère 3 variables d'une requete mysql

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $P1 = $row["P1"];
    $P2 = $row["P2"];
    $P3 = $row["P3"];
    j'ai ensuite la variable $n qui m'indique combien d'images sont présentes (de 1 à 3). Je voudrais les afficher dans une boucle

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    for($i=1;$i<=$n;$i++){
    echo $P.$i."<br>";
    }
    et quelle que soit la syntaxe, j'ai toujours "undefined variable P"...alors que je voudrais simplement afficher la valeur de $P1, $P2...
    En test, si j'écris
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    echo $P1."<br>";
    echo $P2."<br>";
    echo $P3."<br>";
    Tout s'affiche bien...alors pourquoi pas dans une boucle quand $i remplace 1, 2 ou 3 ?????
    Merci de votre aide.

  2. #2
    Membre actif Avatar de allyson
    Inscrit en
    Août 2003
    Messages
    261
    Détails du profil
    Informations forums :
    Inscription : Août 2003
    Messages : 261
    Points : 277
    Points
    277
    Par défaut
    salut
    essaie comme ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    for($i=1;$i<=$n;$i++){
    echo "$"."P".$i."<br>";
    }
    pas sûr que ça marche
    .: and Justice for all :.
    ------------------------------------------------------------
    Membre du jury de l'élection de Mister DVP.com
    les règles du forum
    de penser au tag

  3. #3
    Membre averti Avatar de renaud26
    Homme Profil pro
    Webmaster
    Inscrit en
    Mars 2003
    Messages
    1 365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Mars 2003
    Messages : 1 365
    Points : 436
    Points
    436
    Par défaut
    Salut et merci de ta suggestion...mais ça affiche "$P1" au lieu de la valeur...

  4. #4
    Membre averti
    Avatar de ghostdogpr
    Étudiant
    Inscrit en
    Octobre 2003
    Messages
    198
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2003
    Messages : 198
    Points : 354
    Points
    354
    Par défaut
    Il faut passer par une variable dynamique. Essaye ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $inter = ""; 
    for($i=1;$i<=$n;$i++){
      $inter = "$P".$i."<br/>";
      echo $$inter;
    }

  5. #5
    Membre averti Avatar de renaud26
    Homme Profil pro
    Webmaster
    Inscrit en
    Mars 2003
    Messages
    1 365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Mars 2003
    Messages : 1 365
    Points : 436
    Points
    436
    Par défaut
    Merci de ton aide. Je viens de tester cette variable dynamique...
    j'ai maintenant 2 warnings:
    undefined variable P
    et
    undefined variable 1, 2, 3
    le tout, bien sûr, répété 3 fois dans la boucle...

    agaçant, hein ?

  6. #6
    Membre averti
    Avatar de ghostdogpr
    Étudiant
    Inscrit en
    Octobre 2003
    Messages
    198
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2003
    Messages : 198
    Points : 354
    Points
    354
    Par défaut
    Il y avait un $ en trop :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $inter = "";
    for($i=1;$i<=$n;$i++){
      $inter = "P".$i."<br/>";
      echo $$inter;
    }

  7. #7
    Membre averti Avatar de renaud26
    Homme Profil pro
    Webmaster
    Inscrit en
    Mars 2003
    Messages
    1 365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Mars 2003
    Messages : 1 365
    Points : 436
    Points
    436
    Par défaut
    C'est vraiment un truc de dingue !
    j'ai maintenant undefined variable P1, P2, P3...
    Par acquit de conscience, j'ai fait un echo $P1, $P2...
    et les valeurs s'affichent bien...

    J'ai essayé global également...

    Je n'y comprends plus rien !

  8. #8
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Points : 29 985
    Points
    29 985
    Par défaut
    Salut

    Voici ce que tu cherches à faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $P1 = $row['P1'];
    $P2 = $row['P2'];
    $P3 = $row['P3'];
     
    $n = 3;
    for($i = 1; $i <= $n; ++$i){
       echo ${'P'.$i}.'<br />';
    }
    Cependant, je te recommande d'utiliser tes variables dynamiques dans un tableau, cela évite l'utilisation de {} et cela permet de mieux contrôler les variables.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    $lignes[1] = $row['P1'];
    $lignes[2] = $row['P2'];
    $lignes[3] = $row['P3'];
     
    // Reformulation de ta boucle
    $nb_de_lignes = count($lignes);
    for($i = 1; $i <= $nb_de_lignes; ++$i){
       echo $lignes[$i].'<br />';
    }
     
    // Une boucle alternative, à mon avis plus intéressante que le for dans ce cas
    foreach($lignes as $ligne){
       echo $ligne.'<br />';
    }

    @ghostdogpr : Tu concaténais '<br/>' au nom de variable, c'est pour cela que cela ne fonctionnait pas.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    for($i=1;$i<=$nb;$i++){
      $inter = "P".$i;
      echo $$inter."<br/>";
    }

  9. #9
    Membre averti
    Avatar de ghostdogpr
    Étudiant
    Inscrit en
    Octobre 2003
    Messages
    198
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2003
    Messages : 198
    Points : 354
    Points
    354
    Par défaut
    Ah oui exact


  10. #10
    Membre averti Avatar de renaud26
    Homme Profil pro
    Webmaster
    Inscrit en
    Mars 2003
    Messages
    1 365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Mars 2003
    Messages : 1 365
    Points : 436
    Points
    436
    Par défaut
    oui et vraiment bravo à tous les 2, j'ai appris plein de trucs aujourd'hui !

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

Discussions similaires

  1. Problème concaténation variables
    Par Titiftw dans le forum Débuter avec Java
    Réponses: 4
    Dernier message: 19/10/2012, 01h28
  2. Problème concaténation variables
    Par 30avril1989 dans le forum C++
    Réponses: 3
    Dernier message: 31/03/2011, 11h30
  3. [Tableaux] problème syntaxe concaténation variable
    Par mussara dans le forum Langage
    Réponses: 3
    Dernier message: 01/03/2006, 11h24
  4. [Débutant] Problème de variables
    Par bonnefr dans le forum SWT/JFace
    Réponses: 9
    Dernier message: 12/05/2004, 17h41
  5. [servlet]problème de variable jamais nulle
    Par omega dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 18/03/2004, 09h31

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