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 :

[Conception] Mysql et tableau associatif


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Inscrit en
    Mars 2007
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 1
    Par défaut [Conception] Mysql et tableau associatif
    Bonjour à tous,

    Pouvez vous m’aider à résoudre un problème avec les tableaux associatifs.
    Voilà, je dispose de l’information suivante dans une table « user »dans un champ intitulé « suivi »
    L’enregistrement textuelle est la suivante :
    "date_1"=>"retard", "date_2"=>"absence", "date_3"=>"sortie", "date_4"=>"exclus"
    Le script que j’ai rédigé pour extraire cet enregistrement est le suivant :
    Il faut dire que je suis quasi nul en PHP et je veux apprendre,
    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
    <?php
    include_once("../Regisys/includes/config.inc.php");
    $id_user=1;
    $req=mysql_query("select * from user where id='$id_user' "); 
    $res=mysql_fetch_array($req);
    $liste=explode(',', $res[suivi]);
    $nbr=count($liste);
    $liste_out=array();
    for($i=0;$i<$nbr;$i++)
    {
    array_push($liste_out,"$liste[$i]");
    }
    //Extraire les enregistrements
    while(list($key,$valeur)=each($liste_out))
    {
    echo "Key=$key et Val=$valeur <br>";
    }
    ?>
    Le résultat affiché est le suivant
    Key=0 et Val="date_1"=>"retard"
    Key=1 et Val= "date_2"=>"absence"
    Key=2 et Val= "date_3"=>"sortie"
    Key=3 et Val= "date_4"=>"exclus"
    Alors que moi je m’attendais à avoir ceci
    Key=date_1 et Val= retard
    Key=date_2 et Val= absence
    Key=date_3 et Val= sortie
    Key=date_4 et Val= exclus
    Je vous prie de m’aider et de me corriger pour pouvoir résoudre ce problème
    dite moi si mon enregistrement est bon sur la table ou comment faire pour extraire cet enregistrement correctement ou ou !....................

    Je vous remercie infiniment

  2. #2
    Membre émérite
    Avatar de viviboss
    Profil pro
    Inscrit en
    Août 2006
    Messages
    943
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Août 2006
    Messages : 943
    Par défaut
    Insert un foreach pour $valeur, et tu auras ce que tu veux !!!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    //Extraire les enregistrements
    while(list($key,$valeur)=each($liste_out))
    {
    foreach($valeur as $cle=>$value){
       echo "cle : ".$cle." valeur : ".$value;
    }
    }
    Bon, c'est une méthode paliative, en vrai ton code pourrait être mieux....

    Mais pour l'instant, essaye ca pour que tu puisse en intégrer le fonctionnement : les tableaux sont primordiaux en PHP !!!!
    Veni Vidi Vici
    -------------------------
    Mes articles : developpez.com ou bien vbview.net
    -------------------------
    Et SURTOUT ne pas oublier la bible PHP : --> php_manual_fr.chm!!!
    Et aussi : --> pear_manual_fr.chm!!!

    Ou encore : --> Les tutoriaux & cours PHP de Développez.com
    -------------------------

  3. #3
    Membre Expert
    Avatar de trotters213
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 571
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 571
    Par défaut

    Juste une remarque : Pourquoi faire ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    array_push($liste_out,"$liste[$i]");
    quand ceci fonctionne et est plus rapide
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    array_push($liste_out,$liste[$i]);

  4. #4
    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
    Attention, il y a a priori une erreur de conception dans la bd.
    Avoir des colonnes qui contiennent ce type d'information :
    "date_1"=>"retard", "date_2"=>"absence", "date_3"=>"sortie", "date_4"=>"exclus"
    C'est mal

    Il est plus sage (toujours a priori, je ne connais pas le contexte) de mettre ces informations dans une table spécifique. Plus le modèle de la bd sera normalisé et plus la manipulation des informations contenues dedans sera aisée...



    Sinon pour répondre à la question, mais déconseillé toutefois vu la remarque ci-dessus, tant qu'on est dans le crade on peut partir sur la solution suivante (non testée) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <?php 
    include_once("../Regisys/includes/config.inc.php"); 
    $id_user=1; 
    $req=mysql_query("select * from user where id='$id_user' "); 
    $res=mysql_fetch_array($req); 
    eval('$liste_out = array('. $res['suivi'] .')'); 
    //Extraire les enregistrements 
    foreach($liste_out as $key => $valeur)) { 
       echo "Key=$key et Val=$valeur <br>"; 
    } 
    ?>

Discussions similaires

  1. [conception] table temporaire ou tableau associatif ?
    Par hartecel dans le forum Langage
    Réponses: 1
    Dernier message: 11/06/2008, 17h31
  2. [Tableaux] Tableau associatif et MySQL
    Par Hotfirenet dans le forum Langage
    Réponses: 5
    Dernier message: 23/08/2007, 12h23
  3. asp tableau associatif
    Par rfernandez dans le forum ASP
    Réponses: 6
    Dernier message: 19/12/2003, 18h58
  4. [langage] TRI TABLEAU ASSOCIATIF
    Par proner dans le forum Langage
    Réponses: 5
    Dernier message: 04/03/2003, 16h38
  5. [langage] Réinitialiser un tableau associatif.
    Par totox17 dans le forum Langage
    Réponses: 2
    Dernier message: 28/01/2003, 16h29

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