Php 如何对多行结果的json进行编码?
我试图用json编码我的结果,但它实际上不起作用。当查询有多个结果时,它不起作用。当结果只有一行时,一切都正常Php 如何对多行结果的json进行编码?,php,mysql,arrays,json,Php,Mysql,Arrays,Json,我试图用json编码我的结果,但它实际上不起作用。当查询有多个结果时,它不起作用。当结果只有一行时,一切都正常 if (isset($_REQUEST['query'])) { $query = $_REQUEST['query']; $sql = mysqli_query ($db, "SELECT a, b FROM table WHERE a LIKE '%{$query}%' OR b LIKE '%{$query}%'"); $array = array();
if (isset($_REQUEST['query'])) {
$query = $_REQUEST['query'];
$sql = mysqli_query ($db, "SELECT a, b FROM table WHERE a LIKE '%{$query}%' OR b LIKE '%{$query}%'");
$array = array();
while ($row = mysqli_fetch_assoc($sql)) {
$array[] = array (
'label' => $row['a'].', '.$row['b'],
'value' => $row['a'],
);
}
//RETURN JSON ARRAY
echo json_encode ($array);
}
试试这个代码
if (isset($_REQUEST['query'])) {
$query = $_REQUEST['query'];
$sql = mysqli_query ($db, "SELECT a, b FROM table WHERE a LIKE '%{$query}%' OR b LIKE '%{$query}%'");
$array = array();
$i = 0;
while ($row = mysqli_fetch_assoc($sql)) {
$array[$i] = array (
'label' => $row['a'].', '.$row['b'],
'value' => $row['a'],
);
$i++;
}
//RETURN JSON ARRAY
echo json_encode ($array);
}
你现在面临的错误是什么?除了可能的sql注入之外,您可以一个多个地向您显示$query数据吗?它是如何工作的?当我在数据库中使用query=“test”执行此查询时,它有一个结果,并且显示:[{“label”:“test,testb”,“value”:“test”}]。。。。。但当我用query=“cd”在数据库中执行此查询时,它会显示100多个结果,但该站点是空白的。。。如果我回显这个数组的计数,它会在数组之前使用
print\r($array)
显示所有结果的数量,但json是空的,以查看您的数组中是否有一些值。当我使用print\r($array)
时,它会显示数组中查询的每个条目,但使用json\u encode时,站点是空的//编辑:现在可以工作了,数组中有一些UMLAUT阻止了json_enocde函数。我已经尝试过这段代码,但是当有多个结果时,页面是空白的。我已经检查了代码,它工作正常