2014-03-02 75 views
-1

我有這段代碼在Chrome瀏覽器上顯示一個錯誤。爲foreach提供的參數錯誤php

<?php 
    $json = file_get_contents("file.json"); 
    $data = json_decode($json, TRUE); 


?> 
<html> 
<?php include 'cab.php'; ?> 
<body> 
    <?php include 'menu.php'; ?> 

    <div class="container"> 
     <table border="1" class="table table-striped table-hover" id="tbl"> 
      <tr> 
       <td><strong>Data de publicação</strong></td> 
       <td><strong>Empresa Contratada</strong></td> 
       <td><strong>Empresa que Contratou</strong></td> 
       <td><strong>ID</strong></td> 
       <td><strong>Objecto adquirido</strong></td> 
       <td><strong>Preço Contratual</strong></td> 
       <td><strong>Data do Contrato</strong></td> 
      </tr> 
      <?php foreach ($data as $item) : ?> 
       <tr> 
        <td><?php echo $item->{'publicationDate'}; ?></td> 
        <td><?php echo $item->{'contracted'}; ?></td> 
        <td><?php echo $item->{'contracting'}; ?></td> 
        <td><?php echo $item->{'id'}; ?></td> 
        <td><?php echo $item->{'objectBriefDescription'}; ?></td> 
        <td><?php echo $item->{'initialContractualPrice'}; ?></td> 
        <td><?php echo $item->{'signingDate'}; ?></td> 
       </tr> 
      <?php endforeach; ?> 
     </table> 
    </div> 
    <?php include 'rodape.php';?> 
</body> 
</html> 

,顯示在Chrome的錯誤是:

Warning: Invalid argument supplied for foreach() in C:\xampp\htdocs\base2\index.php on line 27 

有人可以幫我解決嗎?

該文件使用json文件並在html表中顯示所有信息。

+3

'foreach'預計參數是數組或對象。 '$ data'不是都不是。所以檢查'json_decode()'的返回值。如果它是'NULL',那麼檢查'file_get_contents()'的返回值。如果它是'FALSE',那麼檢查URL是否存在,等等......道德:**永遠不要假設成功**。 –

+0

做一個var_dump($ data);你json_decode後,並監視結果..它真的工作 –

+0

你可以添加'var_dump($ data)'的輸出嗎? – Girish

回答

0
<div class="container"> 
<table border="1" class="table table-striped table-hover" id="tbl"> 
    <tr> 
     <td><strong>Data de publicação</strong></td> 
     <td><strong>Empresa Contratada</strong></td> 
     <td><strong>Empresa que Contratou</strong></td> 
     <td><strong>ID</strong></td> 
     <td><strong>Objecto adquirido</strong></td> 
     <td><strong>Preço Contratual</strong></td> 
     <td><strong>Data do Contrato</strong></td> 
    </tr> 
    <?php 
     $json = file_get_contents("file.json"); 
     $data = json_decode($json); 
     if(count((array)$data)>0): 
     foreach ($data as $item) : ?> 
     <tr> 
      <td><?php echo $item->publicationDate; ?></td> 
      <td><?php echo $item->contracted; ?></td> 
      <td><?php echo $item->contracting; ?></td> 
      <td><?php echo $item->id; ?></td> 
      <td><?php echo $item->objectBriefDescription; ?></td> 
      <td><?php echo $item->initialContractualPrice; ?></td> 
      <td><?php echo $item->signingDate; ?></td> 
     </tr> 
    <?php endforeach; else: echo "No data found"; endif; ?> 
相關問題