PHP脚本没有正确索引我的PostgreSQL数组

时间:2013-10-21 11:57:26

标签: php sql arrays postgresql

我在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"]

1 个答案:

答案 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();