Php 如何对多行结果的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();

我试图用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();
    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函数。我已经尝试过这段代码,但是当有多个结果时,页面是空白的。我已经检查了代码,它工作正常