我有以下PHP从数据库中收集数据并将每行放入一个数组中,然后将其放入最终数组中,然后返回给JavaScript:
$active = /*some SQL statement*/
$result = mysqli_query($GLOBALS['con'], $active);
$data = array();
while ($row = mysqli_fetch_array($result, MYSQL_ASSOC)){
$value = array(
"id"=>$row["quest"],
"received"=>$row["received"]
);
array_push($data, $value);
}
return json_encode($data);
我知道SQL语句正在运行且$value
中包含值,但返回到JavaScript页面的数组始终是空字符串而不是JSON对象。
如果我将return语句放在while
循环中,则返回数据:
while ($row = mysqli_fetch_array($result, MYSQL_ASSOC)){
$value = array(
"id"=>$row["quest"],
"received"=>$row["received"]
);
array_push($data, $value);
return json_encode($data);
}
但显然在循环完成后,这并没有按照我想要的方式返回数据。
如果我将return语句更改为:
return json_encode($data[1]);
然后还返回数据。
请帮我解决这个问题。
答案 0 :(得分:0)
尝试使用以下更改的代码
$active = /*some SQL statement*/
$result = mysqli_query($GLOBALS['con'], $active);
$data = array();
while ($row = mysqli_fetch_array($result, MYSQLI_ASSOC)){
$value = array(
"id"=>$row["quest"],
"received"=>$row["received"]
);
$data[]=$value; // this is trick
}
return json_encode($data);
答案 1 :(得分:0)
试试这个:
while ($row = mysqli_fetch_array($result, MYSQL_ASSOC)){
$value = array(
"id"=>$row["quest"],
"received"=>$row["received"]
);
array_push($data, $value);
}
return json_encode($data);