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. #21
    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
    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'];

    Je viens de relire ton code.
    En fait, il faut faire :

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

  2. #22
    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 Mr N.
    Si tu fais ceci :
    Quel est le résultat ?
    Il n'y a rien qui s'affiche mais pas d'erreur car j'ai ma page

  3. #23
    Membre averti
    Inscrit en
    Avril 2006
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 33
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ${'Name' . $i} =$data['Name'];
    ce doit etre la bonne solution mais j'ai un probleme de syntaxe avec les differentes boucles dans mon code:
    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
    $sql5 = "SELECT * FROM studying WHERE IdStudent = '$Idstudent';";
        $req5 = mysql_query($sql5) or die('Erreur SQL !<br>'.$sql5.'<br>'.mysql_error());
            //$i = 1;
            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());
                for($i = 1; $i <= mysql_num_rows($req5); $i++){
                    while($data = mysql_fetch_assoc($req6)){
                    $Name = $data['Name'];                   
                    }
                    ${'Name' . $i} = $Name;
                    echo $i;
                    echo $Name1;   
                    echo $Name2; 
                    }
                }
    cela m'affiche : "1English course2English courseEnglish course1UTSEnglish course2UTSUTS" La variable i est bien incrementer mais les valeur de $Name1 et $Name2 prenne les informations ("English course" et "UTS") mais ne me les mettent pas comme il faut.
    Le resultat que je voudrai est : "1English course2UTS"

    pouvez vous m'aidez sur la facon d'obtenir ce resultat?

  4. #24
    Membre éprouvé
    Homme Profil pro
    Consultant CRM
    Inscrit en
    Mai 2006
    Messages
    99
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant CRM
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2006
    Messages : 99
    Par défaut
    J'en fait une utilisation minutieuse d'eval. Mais le plus important c'est de l'utiliser la ou tu en as vraiment besoin. Voir seulement quand tu n'a pas d'autre possibilité.

  5. #25
    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
    Essaie ceci :
    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
    $sql5 = "SELECT * FROM studying WHERE IdStudent = '$Idstudent';";
    $req5 = mysql_query($sql5) or die('Erreur SQL !<br>'.$sql5.'<br>'.mysql_error());
     
    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());
     
       $i = 1;
       while($data = mysql_fetch_assoc($req6)){
          ${'Name' . $i} = $Name;
          echo $i;
          echo ${'Name' . $i};   
          $i++; 
       }
    }

  6. #26
    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
    Citation Envoyé par Mr N.
    Essaie ceci :
    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
    $sql5 = "SELECT * FROM studying WHERE IdStudent = '$Idstudent';";
    $req5 = mysql_query($sql5) or die('Erreur SQL !<br>'.$sql5.'<br>'.mysql_error());
     
    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());
     
       $i = 1;
       while($data = mysql_fetch_assoc($req6)){
          ${'Name' . $i} = $Name;
          echo $i;
          echo ${'Name' . $i};   
          $i++; 
       }
    }

    Heu $Name ne prends jamais de valeur, donc les $Name1, $Name2, ... seront tjs vide !

  7. #27
    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 stunti
    Heu $Name ne prends jamais de valeur, donc les $Name1, $Name2, ... seront tjs vide !
    Mais euhh... J'ai pas vérifier son code...
    Je dirais donc au hasard :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ${'Name' . $i} = $data['Name'];
    Bien vu, Oeil-De-Lynx

  8. #28
    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 Mr N.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ${'Name' . $i} = $data['Name'];
    ok ca a l'air de marcher mais je n'arrive pas au resultat voulu.

    comment a partir de ces deux requete :
    - SELECT IdCourse FROM studying WHERE IdStudent = '$Idstudent';
    - SELECT * FROM courses WHERE Idcourse = '$IdCourse';
    metre la valeur de Name de la table courses qui corespond au Idcourse requete dans une variable qui a un nom different en fonction des differentes courses. $Name1 pour le premier idcourse qui corespond, $Name2 pour le second ....

    j'ai vraiment besoin d'aide car j'ai essayer des tones de chose mais rien ne marche comme je veux.

  9. #29
    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
    Je te propose de ne pas travailler avec des variables dynamiques. On s'embrouille tous les pinceaux, on perd du temps alors qu'avec un bête tableau, ton problème serait déjà résolu depuis longtemps...
    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
    <?php
    $names = array();         //<-----------
     
    $sql5 = "SELECT * FROM studying WHERE IdStudent = '$Idstudent';";
    $req5 = mysql_query($sql5) or die('Erreur SQL !<br>'.$sql5.'<br>'.mysql_error());
     
    while($data = mysql_fetch_assoc($req5)) {
       $IdCourse = $data['IdCourse'];
       $names[$IdCourse] = array();         //<-----------
       $sql6 = "SELECT * FROM courses WHERE Idcourse = '$IdCourse';";
       $req6 = mysql_query($sql6) or die('Erreur SQL !<br>'.$sql6.'<br>'.mysql_error());
     
       $i = 1;
       while($data = mysql_fetch_assoc($req6)){
          $names[$IdCourse][] = $Name;         //<-----------
       }
    }
     
    echo '<pre>';
    var_dump($names);         //<-----------
    echo '</pre>';
     
    ?>

  10. #30
    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 Mr N.
    Je te propose de ne pas travailler avec des variables dynamiques. On s'embrouille tous les pinceaux, on perd du temps alors qu'avec un bête tableau, ton problème serait déjà résolu depuis longtemps...
    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
    <?php
    $names = array();         //<-----------
     
    $sql5 = "SELECT * FROM studying WHERE IdStudent = '$Idstudent';";
    $req5 = mysql_query($sql5) or die('Erreur SQL !<br>'.$sql5.'<br>'.mysql_error());
     
    while($data = mysql_fetch_assoc($req5)) {
       $IdCourse = $data['IdCourse'];
       $names[$IdCourse] = array();         //<-----------
       $sql6 = "SELECT * FROM courses WHERE Idcourse = '$IdCourse';";
       $req6 = mysql_query($sql6) or die('Erreur SQL !<br>'.$sql6.'<br>'.mysql_error());
     
       $i = 1;
       while($data = mysql_fetch_assoc($req6)){
          $names[$IdCourse][] = $Name;         //<-----------
       }
    }
     
    echo '<pre>';
    var_dump($names);         //<-----------
    echo '</pre>';
     
    ?>
    ok c'est vrai que c'est beaucoup plus simple mais je debute et les tableau je ne connaissais pas vraiment!
    Peux tu me dire commment recuperer mes differents IdCourse car si je fais un print de $IdCourse cela me les affiche mais tous a la suite. Or pour acceder aux infos dans le tableau j'ai besoin de ces IdCourse mais 1 par 1.

  11. #31
    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
    Pour un parcours de tableau :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    foreach($tableau as $key => $value) {
       echo '<p>La valeur pour la clef "'. $key .'" est : '. $value .'</p>';
    }

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

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