首页 > 解决方案 > PHP / JSON:我如何知道 JSON 数据是否为空?

问题描述

目前,我创建了一个显示来自数据库 (JSON) 的数据的表。在那个表中,我想检查数据是否存在。假设如果数据为空,我想显示“此时没有可用的预订数据”。

问题是,我不知道如何检查现有数据。目前,如果数据为空,则该表<th>仅显示“目前没有可用的预订数据”字样。

以下是我当前的代码:

  <?php

  //retrieve json
  $url = "http://172.20.0.45/TGWebService/TGWebService.asmx/displayAdminBookingDashboard?adminEmail=$Email";
  $data = file_get_contents($url);
  $json = json_decode($data);

  if(empty($json)){
    echo "<div class='card bg-light'>";
    echo "<div class='card-body double' style='height: 400px;>";
    echo "<h4 class='card-title'><i>No booking data available at this moments</i></h4>";

  }else{

    echo "<div class='card bg-light'>";
    echo "<div class='card-body double' style='height: 400px; overflow-y: scroll;'>";
      echo "<h4 class='card-title'>All Booking</h4>";
        echo "<table>";
        echo "<thead>";
          echo "<tr>";
              echo "<th>#</th>
              <th>Requester</th>
              <th>Factory</th>
              <th>Room</th>
              <th>Purpose</th>
              <th>Status</th>
              <th>Action</th>
            </tr>
          </thead>
          <tbody >";

          foreach ($json->bookingList as $row) {

            $status=$row->status;

            if($status=="Approve"){

                $color="color:green";

            }else if($status=="Pending"){

              $color="color:blue";

            }else{

              $color="color:red";

            }

            echo "<tr>";
              echo "<td>" . $row->bookNo. "</td>";
              echo "<td>" . $row->requestedBy. "</td>";                                              
              echo "<td>" . $row->facID. "</td>";
              echo "<td>" . $row->roomName. "</td>";
              echo "<td>" . $row->desc. "</td>";   
              echo "<td style='$color'><strong>" . $status ."</strong></td>";
              echo "<td>";
              echo "<a class='btn-view btn-primary btn-sm' href='../../view_booking/admin/view_booking_admin.php?Book_No=". $row->bookNo ."' data-toggle='tooltip'>View</a>";
              echo "</td>";
            echo "</tr>";

          }

          echo "</tbody>";
        echo "</table><br>";  
      echo "</div>";
    echo "<div>";
  }

  ?>            

标签: phpjsonsql-server

解决方案


试试下面的代码:

<?php

  //retrieve json
  $url = "http://172.20.0.45/TGWebService/TGWebService.asmx/displayAdminBookingDashboard?adminEmail=$Email";
  $data = @file_get_contents($url);
  $json = json_decode($data);

  if($json === FALSE && empty($json)){
    echo "<div class='card bg-light'>";
    echo "<div class='card-body double' style='height: 400px;>";
    echo "<h4 class='card-title'><i>No booking data available at this moments</i></h4>";

  }else{

    echo "<div class='card bg-light'>";
    echo "<div class='card-body double' style='height: 400px; overflow-y: scroll;'>";
      echo "<h4 class='card-title'>All Booking</h4>";
        echo "<table>";
        echo "<thead>";
          echo "<tr>";
              echo "<th>#</th>
              <th>Requester</th>
              <th>Factory</th>
              <th>Room</th>
              <th>Purpose</th>
              <th>Status</th>
              <th>Action</th>
            </tr>
          </thead>
          <tbody >";

          foreach ($json->bookingList as $row) {

            $status=$row->status;

            if($status=="Approve"){

                $color="color:green";

            }else if($status=="Pending"){

              $color="color:blue";

            }else{

              $color="color:red";

            }

            echo "<tr>";
              echo "<td>" . $row->bookNo. "</td>";
              echo "<td>" . $row->requestedBy. "</td>";                                              
              echo "<td>" . $row->facID. "</td>";
              echo "<td>" . $row->roomName. "</td>";
              echo "<td>" . $row->desc. "</td>";   
              echo "<td style='$color'><strong>" . $status ."</strong></td>";
              echo "<td>";
              echo "<a class='btn-view btn-primary btn-sm' href='../../view_booking/admin/view_booking_admin.php?Book_No=". $row->bookNo ."' data-toggle='tooltip'>View</a>";
              echo "</td>";
            echo "</tr>";

          }

          echo "</tbody>";
        echo "</table><br>";  
      echo "</div>";
    echo "<div>";
  }

  ?>   

推荐阅读