Comment afficher des données JSON en PHP [Résolu/Fermé]

Messages postés
46
Date d'inscription
mardi 9 avril 2013
Statut
Membre
Dernière intervention
5 janvier 2016
- - Dernière réponse : juliendefully
Messages postés
46
Date d'inscription
mardi 9 avril 2013
Statut
Membre
Dernière intervention
5 janvier 2016
- 22 juin 2015 à 20:07
Bonjour,

J'aimerais afficher le contenu d'un fichier JSON sous forme de tableau html en utilisant php. Je vous mets ci-dessous un exemple. J'arrive à afficher les données mais seulement la première alors que le fichier contient plusieurs lignes.

Fichier JSON:
[
{
"id": "154",
"reference": "XXX",
"link": "XXX",
"date": "09/12/2014",
"due_date": "07/01/2015",
"status": "XXX"
},{
"id": "180",
"reference": "XXX",
"link": "XXX",
"date": "03/02/2015",
"due_date": "24/02/2015",
"status": "XXX"
},{
"id": "181",
"reference": "XXX",
"link": "XXX",
"date": "08/02/2015",
"due_date": "13/02/2015",
"status": "XXX"
},{
"id": "185",
"reference": "XXX",
"link": "XXX",
"date": "15/02/2015",
"due_date": "17/03/2015",
"status": "XXX"
}]


Comme je voudrait que ça s'affiche:
154    XXX    XXX    15/02/2015    17/03/2015
180    XXX    XXX    15/02/2015    17/03/2015
181    XXX    XXX    15/02/2015    17/03/2015
185    XXX    XXX    15/02/2015    17/03/2015


Merci de votre aide
Afficher la suite 

3 réponses

Messages postés
26709
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
8 novembre 2019
1867
0
Merci
Bonjour,

Dans l'idéal .. il aurait été bien que tu nous montres le code que tu as essayé d'écrire....

Dans l'absolu .. voici comment je ferais :


//transforme le Json en ARRAY
$result = json_decode($tonObjJson,true);

echo "<table>";
foreach($result  as $R=>$D){
 echo "<tr id='Tr_".$R."'>"; 
 foreach($D as $key=>$Value){
    echo "<td id='Td_".$R."_".$key."'>".$value."</td>";
  }
 echo "</tr>";
}
echo "</table>";


NB: Je l'ai écrit de tête... il y a peut être quelques erreurs à corriger.



Cordialement,
Jordane
juliendefully
Messages postés
46
Date d'inscription
mardi 9 avril 2013
Statut
Membre
Dernière intervention
5 janvier 2016
6 -
Bonjour,

Voici le code que j'ai actuellement:

<?php

$json = file_get_contents("https://fullymail.com/files/jsonlisttest.json");
$json = json_decode($json);


foreach($json as $id=>$reference) 
    { 
    echo $id.' : '.$reference.'<br>'; 
    } 
     
?>


Et l'erreur qui m'est affichée:
Catchable fatal error: Object of class stdClass could not be converted to string in /servers/fullymail/exz950/home/files/test.php on line 9
jordane45
Messages postés
26709
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
8 novembre 2019
1867 > juliendefully
Messages postés
46
Date d'inscription
mardi 9 avril 2013
Statut
Membre
Dernière intervention
5 janvier 2016
-
donc avec mon code.. tu verras que ça marche mieux ^^

Le souci .. c'est qu'il te faut ajouter l'arguement TRUE au json_decode
pour qu'il soit transformé en ARRAY PHP ....
$json = json_decode($json,true);
juliendefully
Messages postés
46
Date d'inscription
mardi 9 avril 2013
Statut
Membre
Dernière intervention
5 janvier 2016
6 -
Merci,
ça marche mais parcontre je n'arrive pas à récupérer les valeurs, voici ce qui m'est affiché :

0 : Array
1 : Array
2 : Array
3 : Array
4 : Array
5 : Array
6 : Array
7 : Array
8 : Array
9 : Array
10 : Array
11 : Array
12 : Array
13 : Array
14 : Array
15 : Array
16 : Array
17 : Array
18 : Array
19 : Array
20 : Array
21 : Array
22 : Array
23 : Array
24 : Array
25 : Array


merci
jordane45
Messages postés
26709
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
8 novembre 2019
1867 > juliendefully
Messages postés
46
Date d'inscription
mardi 9 avril 2013
Statut
Membre
Dernière intervention
5 janvier 2016
-
avec quel code ?
Le tient ou le mien ??

A la limite.. fais donc un
print_r($json);

Pour savoir ce qu'il contient exactement.
Messages postés
46
Date d'inscription
mardi 9 avril 2013
Statut
Membre
Dernière intervention
5 janvier 2016
6
0
Merci
Avec ce code la :

<?php

$json = file_get_contents("test.json");
$json = json_decode($json, true);


foreach($json as $id=>$reference) 
    { 
    echo $id.' : '.$reference.'<br>'; 
    } 
     
?>


Avec ton code ça me retourne un tableau vide :
<table><tr id='Tr_0'><td id='Td_0_id'></td><td id='Td_0_reference'></td><td id='Td_0_link'></td><td id='Td_0_date'></td><td id='Td_0_due_date'></td><td id='Td_0_status'></td></tr><tr id='Tr_1'><td id='Td_1_id'></td><td id='Td_1_reference'></td><td id='Td_1_link'></td><td id='Td_1_date'></td><td id='Td_1_due_date'></td><td id='Td_1_status'></td></tr><tr id='Tr_2'><td id='Td_2_id'></td><td id='Td_2_reference'></td><td id='Td_2_link'></td><td id='Td_2_date'></td><td id='Td_2_due_date'></td><td id='Td_2_status'></td></tr><tr id='Tr_3'><td id='Td_3_id'></td><td id='Td_3_reference'></td><td id='Td_3_link'></td><td id='Td_3_date'></td><td id='Td_3_due_date'></td><td id='Td_3_status'></td></tr><tr id='Tr_4'><td id='Td_4_id'></td><td id='Td_4_reference'></td><td id='Td_4_link'></td><td id='Td_4_date'></td><td id='Td_4_due_date'></td><td id='Td_4_status'></td></tr><tr id='Tr_5'><td id='Td_5_id'></td><td id='Td_5_reference'></td><td id='Td_5_link'></td><td id='Td_5_date'></td><td id='Td_5_due_date'></td><td id='Td_5_status'></td></tr><tr id='Tr_6'><td id='Td_6_id'></td><td id='Td_6_reference'></td><td id='Td_6_link'></td><td id='Td_6_date'></td><td id='Td_6_due_date'></td><td id='Td_6_status'></td></tr><tr id='Tr_7'><td id='Td_7_id'></td><td id='Td_7_reference'></td><td id='Td_7_link'></td><td id='Td_7_date'></td><td id='Td_7_due_date'></td><td id='Td_7_status'></td></tr><tr id='Tr_8'><td id='Td_8_id'></td><td id='Td_8_reference'></td><td id='Td_8_link'></td><td id='Td_8_date'></td><td id='Td_8_due_date'></td><td id='Td_8_status'></td></tr><tr id='Tr_9'><td id='Td_9_id'></td><td id='Td_9_reference'></td><td id='Td_9_link'></td><td id='Td_9_date'></td><td id='Td_9_due_date'></td><td id='Td_9_status'></td></tr><tr id='Tr_10'><td id='Td_10_id'></td><td id='Td_10_reference'></td><td id='Td_10_link'></td><td id='Td_10_date'></td><td id='Td_10_due_date'></td><td id='Td_10_status'></td></tr><tr id='Tr_11'><td id='Td_11_id'></td><td id='Td_11_reference'></td><td id='Td_11_link'></td><td id='Td_11_date'></td><td id='Td_11_due_date'></td><td id='Td_11_status'></td></tr><tr id='Tr_12'><td id='Td_12_id'></td><td id='Td_12_reference'></td><td id='Td_12_link'></td><td id='Td_12_date'></td><td id='Td_12_due_date'></td><td id='Td_12_status'></td></tr><tr id='Tr_13'><td id='Td_13_id'></td><td id='Td_13_reference'></td><td id='Td_13_link'></td><td id='Td_13_date'></td><td id='Td_13_due_date'></td><td id='Td_13_status'></td></tr><tr id='Tr_14'><td id='Td_14_id'></td><td id='Td_14_reference'></td><td id='Td_14_link'></td><td id='Td_14_date'></td><td id='Td_14_due_date'></td><td id='Td_14_status'></td></tr><tr id='Tr_15'><td id='Td_15_id'></td><td id='Td_15_reference'></td><td id='Td_15_link'></td><td id='Td_15_date'></td><td id='Td_15_due_date'></td><td id='Td_15_status'></td></tr><tr id='Tr_16'><td id='Td_16_id'></td><td id='Td_16_reference'></td><td id='Td_16_link'></td><td id='Td_16_date'></td><td id='Td_16_due_date'></td><td id='Td_16_status'></td></tr><tr id='Tr_17'><td id='Td_17_id'></td><td id='Td_17_reference'></td><td id='Td_17_link'></td><td id='Td_17_date'></td><td id='Td_17_due_date'></td><td id='Td_17_status'></td></tr><tr id='Tr_18'><td id='Td_18_id'></td><td id='Td_18_reference'></td><td id='Td_18_link'></td><td id='Td_18_date'></td><td id='Td_18_due_date'></td><td id='Td_18_status'></td></tr><tr id='Tr_19'><td id='Td_19_id'></td><td id='Td_19_reference'></td><td id='Td_19_link'></td><td id='Td_19_date'></td><td id='Td_19_due_date'></td><td id='Td_19_status'></td></tr><tr id='Tr_20'><td id='Td_20_id'></td><td id='Td_20_reference'></td><td id='Td_20_link'></td><td id='Td_20_date'></td><td id='Td_20_due_date'></td><td id='Td_20_status'></td></tr><tr id='Tr_21'><td id='Td_21_id'></td><td id='Td_21_reference'></td><td id='Td_21_link'></td><td id='Td_21_date'></td><td id='Td_21_due_date'></td><td id='Td_21_status'></td></tr><tr id='Tr_22'><td id='Td_22_id'></td><td id='Td_22_reference'></td><td id='Td_22_link'></td><td id='Td_22_date'></td><td id='Td_22_due_date'></td><td id='Td_22_status'></td></tr><tr id='Tr_23'><td id='Td_23_id'></td><td id='Td_23_reference'></td><td id='Td_23_link'></td><td id='Td_23_date'></td><td id='Td_23_due_date'></td><td id='Td_23_status'></td></tr><tr id='Tr_24'><td id='Td_24_id'></td><td id='Td_24_reference'></td><td id='Td_24_link'></td><td id='Td_24_date'></td><td id='Td_24_due_date'></td><td id='Td_24_status'></td></tr><tr id='Tr_25'><td id='Td_25_id'></td><td id='Td_25_reference'></td><td id='Td_25_link'></td><td id='Td_25_date'></td><td id='Td_25_due_date'></td><td id='Td_25_status'></td></tr></table>



L'array est comme ça :

Array
(
    [0] => Array
        (
            [id] => 154
            [reference] => XXX
            [link] => XXX
            [date] => 09/12/2014
            [due_date] => 07/01/2015
            [status] => Payé
        )

    [1] => Array
        (
            [id] => 180
            [reference] => XXX
            [link] => XXX
            [date] => 03/02/2015
            [due_date] => 24/02/2015
            [status] => Payé
        )

    [2] => Array
        (
            [id] => 181
            [reference] => XXX
            [link] => XXX
            [date] => 08/02/2015
            [due_date] => 13/02/2015
            [status] => Payé
        )
)
Messages postés
26709
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
8 novembre 2019
1867
0
Merci
Retestes mon code ...
c'est le v de value qui était en minuscule.. alors qu'il fallait le mettre en Maj.
//transforme le Json en ARRAY
$result = json_decode($json ,true);

echo "<table>";
foreach($result  as $R=>$D){
 echo "<tr id='Tr_".$R."'>"; 
 foreach($D as $key=>$Value){
    echo "<td id='Td_".$R."_".$key."'>".$Value."</td>";
  }
 echo "</tr>";
}
echo "</table>";

juliendefully
Messages postés
46
Date d'inscription
mardi 9 avril 2013
Statut
Membre
Dernière intervention
5 janvier 2016
6 -
Oui, c'est bon cette fois, merci beaucoup