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 :

list() dynamique


Sujet :

PHP & Base de données

  1. #1
    Membre éprouvé
    Avatar de Anduriel
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Février 2004
    Messages
    2 290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration

    Informations forums :
    Inscription : Février 2004
    Messages : 2 290
    Par défaut list() dynamique
    Salut,

    Je souhaite faire un script qui renvoit des données d'une table SQL en fonction des champs choisis et de la table. J'appelle comme ça:

    $db->variable("champ1, champ2", "table1")
    Pour lister les résultats dans mon code je souhaiterai utiliser list().
    Le problème c'est que list() require des variables. Or ces variable je dois les créer dynamiquement. J'ai fait:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    function variable($variables, $table) {
       $ar_fields = explode(",", $variables);
       $linsting = '';
       foreach($ar_fields as $key => $field) {
          $listing = '$'.trim($field).', ';
       }
       // puis:
       while (list($listing) = mysql_fetch_array($query)) {
          // ...
       }
    }
    Mais bien sûr, listing n'est pas interprété en tant que "$champ1, $champ2"...
    Voyez vous une solution ou dois-je opter pour une autre solution (que je connais)?

  2. #2
    Expert confirmé
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 322
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 322
    Billets dans le blog
    17
    Par défaut
    mysql_fetch_array( ) + extract( )

  3. #3
    Membre éprouvé
    Avatar de Anduriel
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Février 2004
    Messages
    2 290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration

    Informations forums :
    Inscription : Février 2004
    Messages : 2 290
    Par défaut
    Merci je vais essayer

  4. #4
    Membre éprouvé
    Avatar de Anduriel
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Février 2004
    Messages
    2 290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration

    Informations forums :
    Inscription : Février 2004
    Messages : 2 290
    Par défaut
    Lol alors j'ai essayé mais je n'ai pas la maitrise de la syntaxe avec extract() je l'ai jamais utilisé.

    D'après ce que j'ai compris il retourne les les valeurs de clés par une variable de même nom.

    J'ai testé:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    while (list(extract($ar_field)) = mysql_fetch_array($query)) // parse error
    while (extract($ar_field) = mysql_fetch_array($query)) // parse error

    Je ne vois pas comment faire

  5. #5
    Membre éprouvé
    Avatar de Anduriel
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Février 2004
    Messages
    2 290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration

    Informations forums :
    Inscription : Février 2004
    Messages : 2 290
    Par défaut
    Une petite aide?

  6. #6
    Expert confirmé
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 322
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 322
    Billets dans le blog
    17
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    while ( $tuple = mysql_fetch_assoc($rs) ) {
        extract($tuple) ; // Revient au même qu'un list( ) sur chq champ retourné
        [...]
    }
    Tu aurais également pu faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    function variable($variables, $table) {
       [...]
       $ar_fields = explode(",", $variables);
       while ( $tuple = mysql_fetch_assoc($rs) ) {
            foreach ( $ar_fields as $field ) {
                echo $field, ' : ', $tuple[$field], ' ; ' ;
            }
            echo '<br>' ;
       }
       [...]
    }
    Par contre je ne suis pas sûr de bien comprendre l'utilité de ce que tu veux faire...

Discussions similaires

  1. [Javascript] Question pas difficile sur des listes dynamique...
    Par mulbek dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 12/04/2006, 09h55
  2. afficher les contenu d'une liste dynamiquement
    Par mzt.insat dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 06/04/2006, 18h02
  3. [PHP-JS] Liste dynamique
    Par SuperBn dans le forum Langage
    Réponses: 4
    Dernier message: 09/02/2006, 17h09
  4. Réponses: 1
    Dernier message: 16/01/2006, 17h36
  5. Rafraichissement liste dynamique
    Par Petitjean_85 dans le forum ASP
    Réponses: 5
    Dernier message: 14/06/2004, 10h21

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