Почему JSON не показывает данных - PullRequest
1 голос
/ 06 июля 2019

Ошибка при использовании 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 = "select * from tb_syarat_layanan WHERE id_layan=1";

он показывает нужные мне данные

JSON не показывает данных, когда $ query установлен с переменной $id

Ответы [ 2 ]

2 голосов
/ 06 июля 2019

Проблема в том, как вы получаете идентификатор из URL. Данные, отправленные в строке запроса, хранятся внутри $ _ GET

$id = $_GET['id'];
$query = "SELECT * FROM tb_syarat_layanan WHERE id_layan = $id";
1 голос
/ 06 июля 2019

Допустим, у вас есть некоторый .php? Id = 1 в URL.Вам нужен способ получить этот параметр id из строки запроса.В PHP это можно легко сделать с помощью суперглобального $_GET.$_GET позволяет получить доступ к значениям, переданным в строке запроса.

Таким образом, в вашем коде вы можете сделать что-то вроде:

  $id = $_GET['id'];

Лучше всего избегать любого ввода, переданногов строке запроса:

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

Но если вы не выводите этот ввод где-либо на странице, где он может быть выполнен, и не сохраняете параметры запроса для вывода позже, это не должнобыть проблемой.Единственная реальная опасность - инъекция SQL.Лучший способ избежать этого - использовать подготовленные операторы.Смотри https://www.php.net/manual/en/mysqli.quickstart.prepared-statements.php

...