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 :

Décodage JSON venant d'une BDD


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Enseignant
    Inscrit en
    Novembre 2018
    Messages
    184
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Novembre 2018
    Messages : 184
    Par défaut Décodage JSON venant d'une BDD
    Hello,


    Dans une base de données j'ai un champ en format json tq :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    {"le pen":1912,"mélenchon":1378,"macron":1259,"zemmour":585,"lassalle":354,"pécresse":258,"jadot":174,"hidalgo":141,"dupont-aignan":127,"roussel":123,"poutou":37,"arthaud":31}
    Ce champ redescend parfaitement via une requête PHP mais d'un bloc. Je cherche à savoir comment récupérer chaque nom de candidat, et chaque valeur pour chaque candidat.

    J'ai bien essayé avec une boucle foreach mais peu concluant

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    // soit $candidats mon json présenté ci-dessus
    $data = json_decode($candidats, true);
    foreach ($data as $key=> $data1) {
        echo $key, " : ";
        echo $data1, "\n";
    }
    Ce code ne me redescend que le premier enregistrement.... Comment faire pour avoir l'intégralité des candidats ?

    Je vous remercie pour vos retours

    Sylvain

  2. #2
    Membre émérite
    Homme Profil pro
    Autre
    Inscrit en
    Juillet 2021
    Messages
    433
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Autre

    Informations forums :
    Inscription : Juillet 2021
    Messages : 433
    Par défaut
    Bonjour,

    Si $candidats correspond bien au json présenté, tous les candidats s'affichent alors correctement de mon coté :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $candidats = '{"le pen":1912,"mélenchon":1378,"macron":1259,"zemmour":585,"lassalle":354,"pécresse":258,"jadot":174,"hidalgo":141,"dupont-aignan":127,"roussel":123,"poutou":37,"arthaud":31}';
     
    $data = json_decode($candidats, true);
    foreach ($data as $key => $data1) {
        echo $key, " : ", $data1, "\n";
    }
    Essaye de faire un var_dump des variables $candidats et $data pour vérifier que tes données sont correctes.

  3. #3
    Membre confirmé
    Homme Profil pro
    Enseignant
    Inscrit en
    Novembre 2018
    Messages
    184
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Novembre 2018
    Messages : 184
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     echo json_decode($candidats);
    // retour (donnée brute venant de la bdd) : {"le pen":1912,"mélenchon":1378,"macron":1259,"zemmour":585,"lassalle":354,"pécresse":258,"jadot":174,"hidalgo":141,"dupont-aignan":127,"roussel":123,"poutou":37,"arthaud":31}{"le pen":2980,"macron":2690}
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     //ça me redescend juste une ligne, et c'est la dernière ligne du json qui est affiché
           "candidats": {
                "candidat": "arthaud",
                "voix": 31
            }

    Il ne semble pas s'agir d'une chaîne de caractère mais d'un json... Comment convertir un json en chaîne de caractère en php ?

    Pour information complémentaire : Postman et Google Chrome m'affiche le JSON sous forme d'une chaine de caractère, mais Mozilla affiche "SyntaxError: JSON.parse: unexpected non-whitespace character after JSON data at line 1 column 210 of the JSON data"

  4. #4
    Membre émérite
    Homme Profil pro
    Autre
    Inscrit en
    Juillet 2021
    Messages
    433
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Autre

    Informations forums :
    Inscription : Juillet 2021
    Messages : 433
    Par défaut
    Le retour sur ton dernier message ne correspond pas au json présenté dans ton premier message.
    Dans ton dernier message, ton retour json n'est pas valide : tu as deux objets json à la suite sans nom.

    Quel est le retour de var_dump($candidats); sans json_decode ?

  5. #5
    Membre confirmé
    Homme Profil pro
    Enseignant
    Inscrit en
    Novembre 2018
    Messages
    184
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Novembre 2018
    Messages : 184
    Par défaut
    Le var_dump(print_r) demandé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    {"le pen":1912,"mélenchon":1378,"macron":1259,"zemmour":585,"lassalle":354,"pécresse":258,"jadot":174,"hidalgo":141,"dupont-aignan":127,"roussel":123,"poutou":37,"arthaud":31}{"le pen":2980,"macron":2690}
    Ici la première partie correspond au premier tour, et la seconde partie au second tour.

  6. #6
    Membre émérite
    Homme Profil pro
    Autre
    Inscrit en
    Juillet 2021
    Messages
    433
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Autre

    Informations forums :
    Inscription : Juillet 2021
    Messages : 433
    Par défaut
    Tu peux nous montrer comment tu définies ta variable $candidats ?
    Ton code est dans une autre boucle (pour fetch les résultats de la requête sql par exemple) ?

Discussions similaires

  1. TextView de donnes venant d'une BDD
    Par profecie dans le forum Composants graphiques
    Réponses: 2
    Dernier message: 16/10/2011, 14h32
  2. [FPDF] MultiCell et retour à la ligne dans texte venant d'une BDD
    Par jekif dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 06/07/2011, 12h44
  3. probléme d'affichage d'image venant d'une bdd
    Par jolina1987 dans le forum Langage
    Réponses: 4
    Dernier message: 17/03/2010, 09h55
  4. [MySQL] Mettre données venant d'une BDD dans "id" d'une balise html
    Par maryooman dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 30/12/2009, 14h25
  5. [Conception] affichage image venant d'une bdd
    Par ph_anrys dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 26/06/2006, 09h18

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