2014-03-02 76 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; ?> 
相关问题