Php 为什么JSON不显示数据

Php 为什么JSON不显示数据,php,arrays,json,Php,Arrays,Json,使用some.php?id=$id时出错 我的表名为tb\u syarat\u layanan。当我尝试获取JSON数组时,它不显示任何数据 <?php //Importing database require_once('koneksi.php'); $query = "select * from tb_syarat_layanan WHERE id_layan=$id"; $hasil = mysqli_query($con,$query); if(mysqli_num

使用
some.php?id=$id时出错

我的表名为
tb\u syarat\u layanan
。当我尝试获取JSON数组时,它不显示任何数据

<?php

 //Importing database
 require_once('koneksi.php');

 $query = "select * from tb_syarat_layanan WHERE id_layan=$id";
 $hasil = mysqli_query($con,$query);

 if(mysqli_num_rows($hasil) > 0 )
 {
     $response = array();
     $response["data"] = array();
     while($x = mysqli_fetch_array($hasil)) 
     {
         $h['id_layan'] = $x["id_layan"];     
         $h['dokumen'] = $x["dokumen"];
         array_push($response["data"], $h);
     }
     echo json_encode($response);
 }
 else 
 {
     $response["message"] = "No Data";
     echo json_encode($response);
 }

?>
它显示了我想要的数据


当$query使用变量
$id

设置时,JSON不显示任何数据问题在于如何从URL获取id。在查询字符串上发送的数据存储在


假设URL中有一些.php?id=1。您需要一种从查询字符串中获取该id参数的方法。在PHP中,可以使用
$\u GET
超全局函数轻松完成此操作
$\u GET
允许您访问在查询字符串中传递的值

因此,在代码中,您可以执行以下操作:

  $id = $_GET['id'];
最佳做法是转义查询字符串中传递的任何输入:

 $id = htmlspecialchars($_GET['id']);

但是,如果您没有将该输入输出到页面中可以执行该输入的任何位置,并且没有存储查询参数以供以后输出,那么这应该不是问题。这里唯一真正的危险是SQL注入。避免这种情况的最佳方法是使用事先准备好的语句。请参见

$id
似乎未被设置(或设置错误)。你能把代码放在你设置变量的地方吗?就在
$query=…
行之后,把
print($query)放进去
并将结果发布到此处。$id=$\u GET['id'];是甲烷的解决方案没关系,但在野外使用该代码时要小心。攻击者很容易在查询字符串中传递恶意SQL。这就是为什么我建议你使用事先准备好的陈述。
  $id = $_GET['id'];
 $id = htmlspecialchars($_GET['id']);