2014-03-02 4 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> 

크롬에 표시 오류는 다음과 같습니다

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

누군가가 그것을 해결하는 데 도움이 수 있습니까?

이 파일은 json 파일을 Reed하고 HTML 테이블에 모든 정보를 표시합니다.

+3

'foreach'는 인수가 배열이나 객체가 될 것으로 기대합니다. '$ data'도 아니다. 그래서'json_decode()'의 리턴 값을 확인하십시오. 'NULL'이라면,'file_get_contents()'의 반환 값을 확인하십시오. 만약 '거짓'이라면 URL이 존재하는지 등등을 점검하십시오. 도덕적 인 것 : ** 결코 성공을 가정하지 마십시오 **. –

+0

할 var_dump ($ 데이터); 당신이 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; ?> 
관련 문제