我是SQL的新手,我遇到了问题。我正在按照Here的教程尝试从我的数据库中获取数据到我的Android应用程序中。
我有它工作,但它只有一行。我知道应该可以遍历数据库并回显出与ID匹配的每一行到JSON,但我不知道如何。我该怎么做?
我目前的代码:
<?php
if($_SERVER['REQUEST_METHOD']=='GET'){
$id = $_GET['id'];
require_once('dbConnect.php');
$sql = "SELECT * FROM LATLON WHERE DeviceID='".$id."'";
$r = mysqli_query($con,$sql);
$res = mysqli_fetch_array($r);
$result = array();
array_push($result,array(
"INDEX"=>$res['INDEX'],
"DeviceID"=>$res['DeviceID'],
"LAT"=>$res['LAT'],
"LON"=>$res['LON']
)
);
echo json_encode(array("result"=>$result));
mysqli_close($con);
}
?>
修改 我编辑了我的代码,但我什么也没得到。仍然不太了解发生了什么。谢谢你的帮助!
<?php
if($_SERVER['REQUEST_METHOD']=='GET'){
$id = $_GET['id'];
require_once('dbConnect.php');
$sql = "SELECT * FROM LATLON WHERE DeviceID='".$id."'";
$r = mysqli_query($con,$sql);
while($row = $result->mysqli_fetch_array($r, MYSQLI_ASSOC)){
$array[] = $row;
}
echo json_encode($array);
mysqli_close($con);
}
?>
答案 0 :(得分:4)
您可以遍历mysqli_fetch_array();
while($row = mysqli_fetch_array($r, MYSQLI_ASSOC)) {
$array[] = $row;
}
echo json_encode($array);
答案 1 :(得分:2)
当您使用OO界面时,方法名称不以mysqli_
开头,仅用于程序调用。您还没有名为$result
的变量,结果位于$r
。
所以它应该是:
while ($row = $r->fetch_array(MYSQLI_ASSOC)) {
或:
while ($row = mysqli_fetch_array($r, MYSQLI_ASSOC)) {