我已经花了整整24个小时了。
我不是编码员,也不假装自己,只是有一个问题我无法解决,我想请您帮忙:)
我有一个充满纬度和经度位置的数据库列。我想创建一个名为points.json的文件,该文件与以下格式匹配:
{
"points": [
[LAT, LONG],
[LAT, LONG],
[LAT, LONG],
[LAT, LONG],
[LAT, LONG]
]
}
其中LAT和LONG是数据库中的记录(52.93839800000001,-1.1425212999999999)
我当前的代码从数据库中获取所有位置,并在屏幕上每行输出纬度/经度:
$sql = "SELECT latlong from requests";
$result = $con->query($sql);
if ($result->num_rows > 0) {
// output data of each row
while($row = $result->fetch_assoc()) {
echo $row['latlong'] . "<br>";
}
} else {
echo "0 results";
}
$con->close();
表结构:
|id|user| latlong |
----------------------------------
|1|user|52.93839801,-1.1425212999|
我只是无法解决将其转换成上述格式。我尝试了多种不同的json_encode方法,但最终每一行都有单独的JSON数组吗?
最终,我想即时生成一种以上格式的文件,其中包含保存在数据库列/行中的位置引用。
谢谢。
答案 0 :(得分:2)
尝试分解您的latlong并将值推入数组。
$sql = "SELECT latlong from requests";
$result = $con->query($sql);
$points = array();
if ($result->num_rows > 0) {
// output data of each row
while($row = $result->fetch_assoc()) {
$points[] = explode(',', $row['latlong']);
}
}
$con->close();
echo json_encode(array('points' => $points));
答案 1 :(得分:0)
如果您使用的是MySQL的较新版本,请尝试以下操作:
SELECT JSON_OBJECT(
'points', JSON_ARRAYAGG(
JSON_ARRAY(LAT, LONG)
)
FROM yourTable;
如果这样做没有帮助,请共享您的表结构和数据库版本。 如果您想自己尝试,请查看https://facebook.github.io/react-native/docs/running-on-device
答案 2 :(得分:0)
您可以使用以下代码:
$sql = "SELECT latlong from requests";
$result = $con->query($sql);
$points = array();
$i=0;
if ($result->num_rows > 0) {
// output data of each row
while($row = $result->fetch_assoc()) {
$latlong = explode(",", $row['latlong']);
$points['points'][$i] = $latlong;
$i++;
}
}
print_r((json_encode($points)));