显示来自 json 的数据

show data from json

我正在尝试从 json 显示 table 但失败了,这有什么问题:

$nip=$_POST['nip']; 
$sql = "select satker,shift_description,nip  FROM jamkerja 
    inner join master_shift on master_shift.shiftno=jamkerja.shiftno 
    inner join tr_jamkerjahdr on jamkerja.id_jamkerja=tr_jamkerjahdr.id_jamkerja 
    inner join tr_jamkerjamember on tr_jamkerjamember.trno=tr_jamkerjahdr.trno 
    where nip='$nip' ";

$result = $con->query($sql);

$data = array();
while($row = mysqli_fetch_assoc($result)){
    $data[] = $row;
}
print $data;

这是 table:

$json = $data;
$json_decoded = json_decode($json);
foreach($json_decoded as $data12){
    echo '<tr>';
    echo '<td>'.$data12[satker].'</td>';
    echo '<td>'.$data12[shift_description].'</td>';
    echo '<td>'.$data12[nip].'</td>';
    echo '</tr>';

}

不确定我是否完全理解您的问题。 但是让我试着帮助你。我认为你的问题在

$json = $data;
$json_decoded = json_decode($json);
这里不需要

json_decode(),您分配给 $json 的 $data 是一个类型数组。使用您共享的代码,我认为 Json 没有任何必要,您应该直接循环遍历 $data。

希望对您有所帮助。

您不需要 $json_decode。只需遍历您的数组 $data

删除 :

$json = $data;
$json_decoded = json_decode($json);

并修改 foreach 循环,添加 table 标签。同时添加 single qoutes 到你的数组索引:

   echo '<table>';
    foreach($data as $data12){
                  echo '<tr>';
                echo '<td>'.$data12['satker'].'</td>';
                echo '<td>'.$data12['shift_description'].'</td>';
                echo '<td>'.$data12['nip'].'</td>';
              echo '</tr>';

        }

echo '</table>';