Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/275.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP脚本未正确索引PostgreSQL数组_Php_Sql_Arrays_Postgresql - Fatal编程技术网

PHP脚本未正确索引PostgreSQL数组

PHP脚本未正确索引PostgreSQL数组,php,sql,arrays,postgresql,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

我在从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(); 
现在,我得到的结果显示为从文件输出中复制和粘贴(如下所示):

我可以清楚地看到,我的算法对记录进行索引是一种1,1,2,1,2,3的方式。是否有人对如何解决此问题和获得此输出有任何建议:

["Cars"]["Bikes"]["Trains"]

您只需在阵列完全填充后的末尾打印阵列:

$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(); 

如果将
$output[]
更改为
$output
,会发生什么情况?@mavroprovato它在不使用
[]
的情况下生产“汽车”、“自行车”、“火车”!我相信这就是我想要的,但它们是独立的价值观还是独立的价值观?我需要它们分开,因为我正在安卓设备上填充微调器!建议的第二个解决方案给出了结果
[“汽车”、“自行车”、“火车”]
,这是一个数组中三个独立的值。干杯:)当然,祝你好运。我将编辑答案以突出显示所需的解决方案。
$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();