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 :

Variable dynamique


Sujet :

Langage PHP

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Mai 2006
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 3
    Points : 1
    Points
    1
    Par défaut Variable dynamique
    Bonsoir,
    J'ai un petit probleme de codage, je viens de me mettre au PHP et qq details m'echappent.
    Je vous presente le code suivi d'explications:

    while ($the_row=mysql_fetch_row($result))
    {...
    $liste="liste";
    $liste=$liste."$the_row[0]";
    print(stripslashes($liste));
    <input type="checkbox" name="<?print(stripslashes($liste))?>" value="yes">
    ...
    }

    Je veux creer une checkbox afin de supprimer les lignes cochees. Les lignes cochees ont une valeur a "yes"
    print(stripslashes($liste)) me retourne bien le nom des lignes (ligne1 par ex.)

    fichier cible:
    $the_row=mysql_fetch_row($result);
    $nb_row = mysql_num_rows($result);


    for ($i=1 ; $i<=$nb_row ; $i++)
    { $liste="liste";
    $liste=$liste."$the_row[0]";
    if ($$liste=="yes") --> A ce moment ca ne passe pas!!! j'ai utilise $$liste car je l'ai vu sur le net mais je ne suis pas sur de l'equivalence a $_POST['liste']
    {....}
    }

    J'ai egalemet essaye de changer la config de mon checkbox:
    <input type="checkbox" name="chekbox[]" value=$liste.$the_row[0]>
    ou
    <input type="checkbox" name="chekbox[]" value="'.$liste.$the_row[0].'">
    ou
    <input type="checkbox" name="chekbox[]" value="\$liste.$the_row[0]\">

    enfin tout les differentes syntaxes que j'ai pu voir. Je fais dans le fichier cible,
    $check=$_POST['checkbox']; puis print($check[0]) qui me retourne soit:
    $liste.$the_row[0] soit
    "'.$liste.$the_row[0].'" soit
    "\$liste.$the_row[0]\"
    Bref je reste bloque a cette endroit, surement que mon code est du charabia aussi! Auriez vous une astuce s'il vous plait? Merci

  2. #2
    Membre chevronné Avatar de Nemesys
    Profil pro
    Étudiant
    Inscrit en
    Mars 2006
    Messages
    1 895
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 895
    Points : 2 100
    Points
    2 100
    Par défaut
    Citation Envoyé par YoHuNa
    if ($$liste=="yes") [code] if ($$liste=="yes") --> A ce moment ca ne passe pas!!! j'ai utilise $$liste car je l'ai vu sur le net mais je ne suis pas sur de l'equivalence a $_POST['liste']
    Oula je n'ai jamais vu de $$ comme ça, tu es sur de la source du site ?

    Sinon c'est pas comme ça qu'on vérifie si une variable existe en php, mais comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if (isset($_POST["liste"])) {
    ..................
    }
    C'est pas l'équivalent de ton code car il est faux, mais c'est l'équivalent de ce que tu cherches

    Cordialement.

  3. #3
    Nouveau Candidat au Club
    Inscrit en
    Mai 2006
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Merci pour ta reponse eclair Nemesis_,
    J'ai teste avec isset et effectivement il ne prend pas la variable en compte.
    pense tu que mon checkbox est a remanier?
    <input type="checkbox" name="<?print(stripslashes($liste))?>" value="yes"> n'est probablement pas bon.
    Bon je bosse dessus et je te tiens au courant.
    Bonne nuit

  4. #4
    Membre chevronné Avatar de Nemesys
    Profil pro
    Étudiant
    Inscrit en
    Mars 2006
    Messages
    1 895
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 895
    Points : 2 100
    Points
    2 100
    Par défaut
    Citation Envoyé par YoHuNa
    J'ai teste avec isset et effectivement il ne prend pas la variable en compte.
    Euh que veux tu dire par la ?
    isset détermine si une variable est affectée donc la le code que je t'ai donné ça veut dire qu'on vérifie si cette condition est vraie. Et entre les accolades tu détermine l'opération que tu veux faire si la variable est affectée. Ensuite si elle ne l'est pas tu rajoutes un else ... et tu mets tes opérations pareil entre accolades.


    Pour ton checkbox il faut deja separer les en tete php de debut et fin comme cela (sinon le php n'est pas pris en compte ici) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     <input type="checkbox" name="<? print(stripslashes($liste)) ?>" value="yes">
    Si tu ne vois pas le changement, j'ai mis un espace entre <? et print et à la fin aussi

  5. #5
    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

    Je pense que ce que tu cherchais à faire était ceci :
    Sinon, je pense que tu fais erreur dans ta boucle :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    $nb_rows = mysql_num_rows($result);
     
    for ($i=1; $i<=$nb_rows; $i++)
    {
               $the_row = mysql_fetch_row($result);
      $liste = 'liste' . $the_row[0];
      if ($_POST[$liste] == 'yes')
      {
        //...
      }
    }
    Cela s'écrit habituellement ainsi :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    while($the_row = mysql_fetch_row($result))
    {
      $liste = 'liste' . $the_row[0];
      if ($_POST[$liste] == 'yes')
      {
        //...
      }
    }
    Au passage, je te recommande la lecture de cet article :
    http://pbnaigeon.developpez.com/tuto...phe-guillemet/

    N'oublie pas http://php.developpez.com/cours/ car tu y trouveras de nombreuses ressources pour commencer.

  6. #6
    Nouveau Candidat au Club
    Inscrit en
    Mai 2006
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Merci les gars,
    J'ai pris vos remarques en comptes, maintenant ca baigne merci.
    Espace entre les entetes PHP et la boucle while est bien meilleur que le for...
    Merci encore.

  7. #7
    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
    Au passage, je te recommande l'utilisation de mysql_fetch_array() plutôt que mysql_fetch_row() car cela te permettrait d'accéder aux champs par leur nom plutôt que par leur numéro. Ce n'est pas plus lent à exécuter et ça facilite largement la lecture/compréhension du code.

    Pense au quand tout sera ok.

Discussions similaires

  1. variable dynamique dans une fonction javascript
    Par Shivaneth dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 20/04/2005, 16h58
  2. Variables dynamiques
    Par CriPpLe dans le forum C++
    Réponses: 5
    Dernier message: 23/02/2005, 12h56
  3. [SQL SERVER 2000] Noms de variables dynamiques
    Par cassoulet dans le forum MS SQL Server
    Réponses: 9
    Dernier message: 08/09/2004, 12h44
  4. Récupération de variables dynamiques complexes
    Par ludoboy dans le forum ASP
    Réponses: 7
    Dernier message: 24/05/2004, 18h51
  5. [LG]Problême Variable dynamique de types différents
    Par pierrOPSG dans le forum Langage
    Réponses: 2
    Dernier message: 29/04/2004, 17h01

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