为了账号安全,请及时绑定邮箱和手机立即绑定

使用 php 将 Json 数据解码并打印到 html 表中

使用 php 将 Json 数据解码并打印到 html 表中

PHP
三国纷争 2022-09-12 12:45:48
我有以下编码的json数组:function getMostActive($link) {    $query = "SELECT username AS staff, COUNT(*) As Total FROM vloer_action_logs WHERE task_type = 'job_status_change' AND accessed_time >= '2019-12-31' AND accessed_time <= '2020-01-06'Group by username ORDER BY 2 DESC";    $result = mysqli_query($link, $query);    if (!$result)        die(mysqli_error($link));    $jsonData = array();    while ($array = mysqli_fetch_array($result, MYSQLI_ASSOC)) {        $jsonData[] = $array;    }    return json_encode($jsonData);}我想在表格中打印此数据。已尝试以下方法$getMostActive = json_decode(getMostActive($link),true);<?php foreach ($getMostActive as $key=>$value) { ?>    <tr>     <td class="dark"><?php echo $value['Floor'];?> </td>     <td class="end"><?php echo $value['Total'];?></td>    </tr>但它扔给我的错误:尝试在 /var/www/html/用户/报告/报告/报告中获取非对象的属性“楼层.php我怎么能解决这个问题。提前致谢
查看完整描述

3 回答

?
慕神8447489

TA贡献1780条经验 获得超1个赞

正如许多人已经说过的那样,您在 getMostActive() 函数的第一行中的查询不会选择任何名为“楼层”的字段。因此,在解码 json 的那一刻,您将获得一个类似于以下内容的数组:


[

  [

    "staff" => "name1",

    "Total" => 5

  ],

  [

    "staff" => "name2",

    "Total" => 3

  ]

  // [...]

]

没有一个条目表示包含您要查找的“楼层”字段的单个行。


若要进行检查,请将以下代码暂时放在表的正前方


echo '<pre>';

var_dump($getMostActive);

,然后修复查询。就我所看到的,其他一切都是正确的。


希望我能帮上什么忙。


查看完整回答
反对 回复 2022-09-12
?
慕森王

TA贡献1777条经验 获得超3个赞

你有几个错误。首先,您尝试解码的 JSON 必须是字符串。而且您在解码时也缺少$。


以下是工作代码:


<?php 


$getMostActive = '[{"Floor":"carpet","Total":"22"},{"Floor":"ceramic-tiles","Total":"13"},{"Floor":"hardwood","Total":"13"}]';


$getMostActive = json_decode($getMostActive,true);

?>


<table>

<?php

foreach ($getMostActive as $key=>$value) { 


?>

    <tr>

     <td class="dark"><?php echo $value['Floor'];?> </td>

     <td class="end"><?php echo $value['Total'];?></td>

    </tr>

<?php 

}

?>

</table>


查看完整回答
反对 回复 2022-09-12
?
慕村9548890

TA贡献1884条经验 获得超4个赞

试试下面一个。


    $getMostActive = '[{"Floor":"carpet","Total":"22"},{"Floor":"ceramic-tiles","Total":"13"},{"Floor":"hardwood","Total":"13"}]';

$getMostActive = json_decode($getMostActive,true);

 foreach ($getMostActive as $key=>$value) { ?>

    <tr>

     <td class="dark"><?php echo $value['Floor'];?> </td>

     <td class="end"><?php echo $value['Total'];?></td>

    </tr>

 <?php } ?>

看起来您的 JSON 数据不正确,请检查 .single quote


查看完整回答
反对 回复 2022-09-12
  • 3 回答
  • 0 关注
  • 154 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信