首页 > 解决方案 > 从 sql 获取数据到 php 数组中不返回任何内容

问题描述

我正在尝试对从 SQL 获取的数据进行 json_encode,但是,当我将其存储到 PHP 数组中时,它没有返回任何值。是否有任何我遗漏的代码或数组有限制?

我在循环中尝试了 json_encode() 但我需要 angular 4 来读取从 php 文件编码的 json 文件。另外,我尝试检查循环是否正常工作,它是否从 SQL 中获取了 56 行,但是当我将它放入 PHP 数组时,该数组显示的是一个空白的 PHP 文件。

/location.php (TRY1)

$sql = "SELECT * FROM api_locations";
$result = mysqli_query($con, $sql);
$outp = array();
if(mysqli_num_rows($result) > 0)
{

while($data = $result->fetch_assoc()){
    $location = $data['loc_name'];
    $feature = $data['feature'];
    $lat = $data['lat'];    
    $lng = $data['lng'];
    $desc = $data['description'];
    $hrs = $data['hrs'];
    $min = $data['min'];
    $rating = $data['rating'];
    $max_b = $data['budget_maximum'];
    $min_b = $data['budget_minimum'];


    $outp[] = array( 
        "location" => $location,
        "feature" => $feature ,
        "lat" => $lat ,
        "lng" => $lng ,
        "description" => $desc ,
        "hrs" => $hrs ,
        "min" => $min ,
        "rating" => $rating ,
        "budget_maximum" => $max_b ,
        "budget_minimum" => $min_b ,
    );

}   
echo json_encode($outp);
}

或者我以另一种方式做了while循环:

while ($data = mysqli_fetch_assoc($result)) {
$outp[] = $data;
}

注意:执行 json_encode 时 $outp 仍然为空。

我希望输出会是这样的。

{"id":"1","loc_name":"Robinsons Magnolia","lat":"123.1321","lng":"12.213","feature":"Shopping","description":"Happy place to shop","hrs":"1","min":"30","rating":"4","budget_maximum":"5000","budget_minimum":"100"}

...

{"id":"56","loc_name":"CHICHIHC","lat":"213.1213","lng":"12.23131","feature":"娱乐","description":"制作的好地方kalokohan","hrs":"1","min":"30","rating":"4","budget_maximum":"100","budget_minimum":"50"}

但真正的输出是空白的。

我也尝试过这样做

$sql = "SELECT *
     FROM api_locations WHERE id<=9";

这有效。完全!但是当它超过 9. 时仍然无法正常工作。

标签: phpmysqljson

解决方案


推荐阅读