我在PostgreSQL数据库上从SQL查询中读取关联数组时遇到问题。
所以这是我的数据库:
ID | NAME | ....
1 | CARS |
2 | BIKES|
3 | TRAINS |
现在我有一个PHP脚本,我想从该查询中获取一些数据并将其编码为移动设备的JSON
。
这是脚本:
$res = pg_query("SELECT * FROM projects");
/* FETCHES THE RESULT OF THE SQL QUERY WHICH GETS THE NAME OF EACH PROJECT */
while($row = pg_fetch_assoc($res))
{
$output[]=$row['name'];
print (json_encode($output));
} /* CONVERTED ON MOBILE PLATFORM */
pg_close();
现在我得到的结果显示为从文件输出中复制并粘贴(下方):
["Cars"]["Cars","Bikes"]["Cars","Bikes","Trains"]
我可以清楚地看到我的算法索引记录是一种1,1,2,2,3种方式。有没有人有任何关于如何解决这个问题并得到这个输出的建议:
["Cars"]["Bikes"]["Trains"]
答案 0 :(得分:1)
在完全填充后,您应该在最后打印数组:
$res = pg_query("SELECT * FROM projects");
/* FETCHES THE RESULT OF THE SQL QUERY WHICH GETS THE NAME OF EACH PROJECT */
while($row = pg_fetch_assoc($res))
{
$output[]=$row['name'];
} /* CONVERTED ON MOBILE PLATFORM */
print (json_encode($output));
pg_close();
或者,如果需要单独输出,可以重新初始化$ output数组。取决于你想要实现的目标:
$res = pg_query("SELECT * FROM projects");
/* FETCHES THE RESULT OF THE SQL QUERY WHICH GETS THE NAME OF EACH PROJECT */
while($row = pg_fetch_assoc($res))
{
$output = array();
$output[]=$row['name'];
print (json_encode($output));
} /* CONVERTED ON MOBILE PLATFORM */
pg_close();