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 :

Variable dynamique [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre averti
    Inscrit en
    Avril 2006
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 33
    Par défaut Variable dynamique
    je voudrai avoir une variable $Name qui s'appelle $Name1, $Name2,...
    j'ai donc fais une boucle for qui compte mais je n'arrive pas a nommé ma variable de la bonne maniere. Mon code est le suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    $sql5 = "SELECT * FROM studying WHERE IdStudent = '$Idstudent';";
        $req5 = mysql_query($sql5) or die('Erreur SQL !<br>'.$sql5.'<br>'.mysql_error());
        for($i = 1; $i <= mysql_num_rows($req5); $i++){
            echo $i;
            while($data = mysql_fetch_assoc($req5)) {
            $IdCourse = $data['IdCourse'];
            $sql6 = "SELECT * FROM courses WHERE Idcourse = '$IdCourse';";
            $req6 = mysql_query($sql6) or die('Erreur SQL !<br>'.$sql6.'<br>'.mysql_error());
                while($data = mysql_fetch_assoc($req6)){
                    $Name ??? = $data['Name'];
                    $Categorie = $data['Categorie'];
                    //$StartDate = $data['StartDate'];
                    //$FinishDate = $data['FinishDate'];
                    $Duration = $data['Duration'];
                    $TuitionFeesOnly = $data['TuitionFeesOnly'];
                    $Coe = $data['Coe'];
                    //$CoeDate = $data['CoeDate'];
                    $Payment = $data['Payment'];
                    //$PaymentDate = $data['PaymentDate'];
                    $OfferLetter = $data['OfferLetter'];
                    //$OfferLetterDate = $data['OfferLetterDate'];
                }
            }
        }
    comment faire, ca doit etre super simple mais j'ai essayer plein de truc mais je netrouve pas la bonne syntaxe

    merci

  2. #2
    Membre Expert
    Avatar de yiannis
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    1 494
    Détails du profil
    Informations personnelles :
    Âge : 60
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 494
    Par défaut
    bonjour,

    essaie comme cela:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    $sql5 = "SELECT * FROM studying WHERE IdStudent = '$Idstudent';";
        $req5 = mysql_query($sql5) or die('Erreur SQL !<br>'.$sql5.'<br>'.mysql_error());
        for($i = 1; $i <= mysql_num_rows($req5); $i++){
            echo $i;
            while($data = mysql_fetch_assoc($req5)) {
            $IdCourse = $data['IdCourse'];
            $sql6 = "SELECT * FROM courses WHERE Idcourse = '$IdCourse';";
            $req6 = mysql_query($sql6) or die('Erreur SQL !<br>'.$sql6.'<br>'.mysql_error());
            $x=1;
                while($data = mysql_fetch_assoc($req6)){
                    $Name.$x= $data['Name'];
                    $Categorie = $data['Categorie'];
                    //$StartDate = $data['StartDate'];
                    //$FinishDate = $data['FinishDate'];
                    $Duration = $data['Duration'];
                    $TuitionFeesOnly = $data['TuitionFeesOnly'];
                    $Coe = $data['Coe'];
                    //$CoeDate = $data['CoeDate'];
                    $Payment = $data['Payment'];
                    //$PaymentDate = $data['PaymentDate'];
                    $OfferLetter = $data['OfferLetter'];
                    //$OfferLetterDate = $data['OfferLetterDate'];
                    $x++;
                }
            }
        }
    Comme cela ce sera $Name1, $Name2 etc..

  3. #3
    Membre averti
    Inscrit en
    Avril 2006
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 33
    Par défaut
    j'ai essayer ce que tu m'a dit mais ca ne marche pas en appelant $Name1, $Name2...
    par contre je recupere bien mais infos en fesant mais cela ne m'arrange pas car j'ai pas les valeur mis dans des variables differentes

  4. #4
    Membre Expert
    Avatar de yiannis
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    1 494
    Détails du profil
    Informations personnelles :
    Âge : 60
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 494
    Par défaut
    ok, alors essaie cela:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    $sql5 = "SELECT * FROM studying WHERE IdStudent = '$Idstudent';";
        $req5 = mysql_query($sql5) or die('Erreur SQL !<br>'.$sql5.'<br>'.mysql_error());
        for($i = 0; $i <= mysql_num_rows($req5); $i++){
            echo $i;
            while($data = mysql_fetch_assoc($req5)) {
            $IdCourse = $data['IdCourse'];
            $sql6 = "SELECT * FROM courses WHERE Idcourse = '$IdCourse';";
            $req6 = mysql_query($sql6) or die('Erreur SQL !<br>'.$sql6.'<br>'.mysql_error());
                while($data = mysql_fetch_assoc($req6)){
                    $Name.$i= $data['Name'];
                    $Categorie = $data['Categorie'];
                    //$StartDate = $data['StartDate'];
                    //$FinishDate = $data['FinishDate'];
                    $Duration = $data['Duration'];
                    $TuitionFeesOnly = $data['TuitionFeesOnly'];
                    $Coe = $data['Coe'];
                    //$CoeDate = $data['CoeDate'];
                    $Payment = $data['Payment'];
                    //$PaymentDate = $data['PaymentDate'];
                    $OfferLetter = $data['OfferLetter'];
                    //$OfferLetterDate = $data['OfferLetterDate'];
                }
            }
        }

  5. #5
    Membre averti
    Inscrit en
    Avril 2006
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 33
    Par défaut
    apparament ca ne doit pas etre ca non plus car cela ne m'affiche plus la page quand je fais un echo ou print

  6. #6
    Rédacteur
    Avatar de MasterOfChakhaL
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2004
    Messages
    2 147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 147
    Par défaut
    un truc dans le genre:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
           $my_var = $Name . $i;
           $$my_var= $data['Name'];
    devrait résoudre ton probleme je pense...
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    N'oubliez pas de cliquer sur quand votre question à trouvé une solution.

    Si vous n'avez pas encore lu les règles du club, mieux vaut tard que jamais!

  7. #7
    Membre Expert
    Avatar de yiannis
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    1 494
    Détails du profil
    Informations personnelles :
    Âge : 60
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 494
    Par défaut
    Bon peut tu m'expliquer exactement ce que tu veux faire et es tu sur que tes requetes sont bonnes?

  8. #8
    Expert confirmé Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Par défaut
    Ne marchera pas.
    En fait ça donne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
        $toto . $titi = 'tata'
    <=> $toto . ($titi = 'tata')
    <=> $toto . 'tata'
    La solution de MasterOfChakhaL est bonne amha.

  9. #9
    Membre averti
    Inscrit en
    Avril 2006
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 33
    Par défaut
    Citation Envoyé par MasterOfChakhaL
    un truc dans le genre:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
           $my_var = $Name . $i;
           $$my_var= $data['Name'];
    devrait résoudre ton probleme je pense...
    j'ai fais cela est cela me donne bien mes valeurs mais est il possible d'appelé d'appelé mes fonctions avec des nom de variables tel que $Name1, $Name2, $Name3 ... car en faite les etudiants on plusieurs Idcourses donc je veux recuperer les variables avec differents noms pour pouvoir ensuite replacer les informations celon si on est dans le premier passage dans le if() ou dans le second ... Je veux donc dans le premier passage que la variable est pour nom $Name1, dans le deuxieme passage $Name2 ...

    merci de votre aide

  10. #10
    Expert confirmé Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Par défaut
    J'ai rien compris

    Je ne vois pas de if dans ton code, ni (d'appel) de fonctions...

  11. #11
    Membre averti
    Inscrit en
    Avril 2006
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 33
    Par défaut
    oups , c'est dans un for()

    pour l'appel, je me suis mal exprime, je veux que ma variable change de nom a chaque nouveau passage dans le for pour ensuite avoir: $Name1, $Name2...

  12. #12
    Membre expérimenté
    Avatar de titoumimi
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    3 707
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 707
    Par défaut
    Essaie la fonction eval() :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <?php
    $i = 1;
    $valeur = 'coucou';
    eval('$Name'.$i.'='.$valeur.';');
    echo $Name1;
    ?>
    Globalement inoffensif
    Merci de respecter les règles du forum.
    Aucune question technique par MP !
    _______________________________________________________________________
    Cours Ruby et Ruby on Rails (RoR) - Cours PHP - FAQ Ruby / Rails - Livres Ruby / Rails
    Ajax facile avec Ruby on Rails, Prototype, script.aculo.us et les RJS
    Tutoriaux HTML/CSS et PHP

  13. #13
    Expert confirmé Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Par défaut
    Citation Envoyé par flOZ
    pour l'appel, je me suis mal exprime, je veux que ma variable change de nom a chaque nouveau passage dans le for pour ensuite avoir: $Name1, $Name2...
    On ne t'a pas déjà répondu ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $my_var = $Name . $i;
    $$my_var= $data['Name'];
    Pour plus d'info : http://php.net/variables.variable

    Sinon je te déconseille fortement l'utilisation d'eval.

  14. #14
    Membre expérimenté
    Avatar de titoumimi
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    3 707
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 707
    Par défaut
    Citation Envoyé par Mr N.
    Sinon je te déconseille fortement l'utilisation d'eval.
    Juste à titre d'info, pourquoi ne pas utiliser eval (hormis le fait qu'il faut bien le structurer) ?

    Ca me semblait pas mal indiqué pour ce genre de cas ... (bon, je connaissait pas l'autre méthode )
    Globalement inoffensif
    Merci de respecter les règles du forum.
    Aucune question technique par MP !
    _______________________________________________________________________
    Cours Ruby et Ruby on Rails (RoR) - Cours PHP - FAQ Ruby / Rails - Livres Ruby / Rails
    Ajax facile avec Ruby on Rails, Prototype, script.aculo.us et les RJS
    Tutoriaux HTML/CSS et PHP

  15. #15
    Expert confirmé Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Par défaut
    J'évite autant que possible l'utilisation d'éval. Ca apporte plein de points négatifs : failles de sécurité, debuggage difficile, lecture du code pas évidente, ressources supplémentaires (à vérifier)... Bref à banir surtout quand on a une alternative propre et intégrée au langage...

  16. #16
    Membre expérimenté
    Avatar de titoumimi
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    3 707
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 707
    Par défaut


    Je vais regarder de plus près l'autre solution, et j'éviterai à l'avenir d'utiliser eval
    Globalement inoffensif
    Merci de respecter les règles du forum.
    Aucune question technique par MP !
    _______________________________________________________________________
    Cours Ruby et Ruby on Rails (RoR) - Cours PHP - FAQ Ruby / Rails - Livres Ruby / Rails
    Ajax facile avec Ruby on Rails, Prototype, script.aculo.us et les RJS
    Tutoriaux HTML/CSS et PHP

  17. #17
    Membre émérite Avatar de stunti
    Inscrit en
    Mai 2006
    Messages
    520
    Détails du profil
    Informations personnelles :
    Âge : 47

    Informations forums :
    Inscription : Mai 2006
    Messages : 520
    Par défaut
    Est ce que ca ne serait pas plus simple de faire comme ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ${$Name . $i} =$data['Name'];

  18. #18
    Expert confirmé Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Par défaut
    Oui ça marche aussi.

    est équivalent à

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $c = $a.$b;
    $$c = 666;

  19. #19
    Membre averti
    Inscrit en
    Avril 2006
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 33
    Par défaut
    Citation Envoyé par stunti
    Est ce que ca ne serait pas plus simple de faire comme ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ${$Name . $i} =$data['Name'];
    j'ai essayer mais quand je fais un rien ne s'affiche

    Code :
    $my_var = $Name . $i;
    $$my_var= $data['Name'];
    j'ai essayer cette methode mais pareil pour l'affichage avec le cela ne marche pas alors que quand je fais un dans ma boucle for ca m'affiche bien mes valeur! mais je ne peut pas choisir entre $Name1 et $Name2

    comment faire pour qu'un echo $Name1; fonctionne?
    je ne comprend vraiment pas desole je debute

  20. #20
    Expert confirmé Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Par défaut
    Si tu fais ceci :
    Quel est le résultat ?

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

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, 15h58
  2. Variables dynamiques
    Par CriPpLe dans le forum C++
    Réponses: 5
    Dernier message: 23/02/2005, 11h56
  3. [SQL SERVER 2000] Noms de variables dynamiques
    Par cassoulet dans le forum MS SQL Server
    Réponses: 9
    Dernier message: 08/09/2004, 11h44
  4. Récupération de variables dynamiques complexes
    Par ludoboy dans le forum ASP
    Réponses: 7
    Dernier message: 24/05/2004, 17h51
  5. [LG]Problême Variable dynamique de types différents
    Par pierrOPSG dans le forum Langage
    Réponses: 2
    Dernier message: 29/04/2004, 16h01

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