2017-02-25 13 views
0

phpテーブルにjsonコンテンツを表示しようとしていますが、毎回エラーが発生しています。私はいくつかの構文エラーがあり、私は何を変えなければならないのか理解できませんか?PHPテーブルのjsonコンテンツを表示する

PS。ここでスリムなフレームワークで

それを建てしようとすると、私のコードです:

<div class="data-table-wrapper"> 
<?php 
    $myData = file_get_contents("http://ergast.com/api/f1/current.json"); 
    $myObject = json_decode($myData); 
?> 
    <table class="data-table"> 
     <thead> 
      <tr> 
       <td>Date</td> 
       <td>Time</td> 
       <td>Round</td> 
       <td>Circuit</td> 
       <td>Location</td> 
      </tr> 
     </thead> 
     <?PHP 
     foreach($myObject as $key=>$item); 
     ?> 
     <tr> 
      <td><?PHP echo $item->Date; ?></td> 
      <td><?PHP echo $item->Time; ?></td> 
      <td><?PHP echo $item->Round; ?></td> 
      <td><?PHP echo $item->Circuit; ?></td> 
      <td><?PHP echo $item->Location; ?></td> 
     </tr> 
     <?PHP 
      } 
     ?> 
    </table> 
</div> 

私のエラーは、次のとおりです。

お知らせ:未定義のプロパティ:はstdClass :: Cで$日:\ xamppの\ htdocsに\挑戦\ライン上のアプリの\ビュー\のchallenge.php 38

お知らせ:未定義のプロパティ:CではstdClass :: $時間:\ xamppの\ htdocsに\行に挑戦\アプリケーション\ビュー\のchallenge.php 39

お知らせ:定義解除するdプロパティ:stdClass :: $ C:\ xampp \ htdocs \ challenge \ app \ view \ challenge.php 40行目

注意:未定義のプロパティ:stdClass :: $ C:\ xampp \ htdocs \ challenge \ app \ view \ challenge.php on line 41

答えて

3

私はコードと比較して、あなたのjsonフォーマットを見てきました。 jsonへのパスマッピングが正しくありません。私は以下を修正しました。

<?php foreach($myObjectMap as $key => $item): ?> 
    <tr> 
     <td><?PHP echo $item->date; ?></td> 
     <td><?PHP echo $item->time; ?></td> 
     <td><?PHP echo $item->round; ?></td> 
     <td><?PHP echo $item->Circuit->circuitId; ?></td> 
     <td><?PHP echo $item->Circuit->Location->country; ?></td> 
    </tr> 
    <?php endforeach; ?> 

全コード:

<html> 
<head> 
    <title>PHP</title> 
</head> 
<body> 
    <?php 
    $myData = file_get_contents("http://ergast.com/api/f1/current.json"); 
    $myObject = json_decode($myData); 
    $myObjectMap = $myObject->MRData->RaceTable->Races; 
    ?> 
    <table> 
    <thead> 
     <tr> 
     <td>Date</td> 
     <td>Time</td> 
     <td>Round</td> 
     <td>Circuit</td> 
     <td>Location</td> 
     </tr> 
    </thead> 
    <tbody> 
     <?php foreach($myObjectMap as $key => $item): ?> 
     <tr> 
      <td><?PHP echo $item->date; ?></td> 
      <td><?PHP echo $item->time; ?></td> 
      <td><?PHP echo $item->round; ?></td> 
      <td><?PHP echo $item->Circuit->circuitId; ?></td> 
      <td><?PHP echo $item->Circuit->Location->country; ?></td> 
     </tr> 
     <?php endforeach; ?> 
    </tbody> 
    </table> 

</body> 
</html> 
各フォーマットについて

$myData = file_get_contents("http://ergast.com/api/f1/current.json"); 
$myObject = json_decode($myData); 
$myObjectMap = $myObject->MRData->RaceTable->Races; 

PHPコード

次のことを確認してください

0

問題は、デコードされた配列が異なって見えるということです。ループの前にエンコードされた配列をダンプして、正しいデータ構造を理解するか、JSON beautify serviceを使用してください。プロパティのアドレス指定には右大文字と小文字も使用します。更新されたループは次のようになります。

<div class="data-table-wrapper"> 
<?php 
$myData = file_get_contents("http://ergast.com/api/f1/current.json"); 
$myObject = json_decode($myData); 

?> 
    <table class="data-table"> 
    <thead> 
    <tr> 
    <td>Date</td> 
     <td>Time</td> 
     <td>Round</td> 
     <td>Circuit</td> 
     <td>Location</td> 
    </tr> 
    <?PHP 
    foreach($myObject->MRData->RaceTable->Races as $key=>$item){ 
    ?> 
    <tr> 
    <td><?PHP echo $item->date; ?></td> 
    <td><?PHP echo $item->time; ?></td> 
    <td><?PHP echo $item->round; ?></td> 
    <td><?PHP echo $item->Circuit->circuitName; ?></td> 
    <td><?PHP echo $item->Circuit->Location->locality; ?></td> 
    </tr> 
<?PHP 
    } 
?> 
    </table> 
     </div> 
     </div> 
関連する問題