1

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

我有表名为tb_syarat_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 时:

$query = "select * from tb_syarat_layanan WHERE id_layan=1";

它显示了我想要的数据

使用变量设置 $query 时,JSON 不显示任何数据$id

4

2 回答 2

2

问题是您如何从 URL 中获取 id。通过查询字符串发送的数据存储在$_GET中

$id = $_GET['id'];
$query = "SELECT * FROM tb_syarat_layanan WHERE id_layan = $id";
于 2019-07-06T01:08:44.433 回答
1

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

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

  $id = $_GET['id'];

最佳做法是转义查询字符串中传递的任何输入:

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

但是,如果您没有在页面中可以执行的任何地方输出该输入,并且您没有存储查询参数以供以后输出,那么这应该不是问题。这里唯一真正的危险是 SQL 注入。避免这种情况的最佳方法是使用准备好的语句。见https://www.php.net/manual/en/mysqli.quickstart.prepared-statements.php

于 2019-07-06T01:12:30.523 回答