在php中输出行的查询到表

时间:2013-07-02 15:49:08

标签: php sql arrays postgresql

我正在使用以下代码从我的表中输出名为data_cases的行:

$query = 'SELECT * FROM mydb.data_cases 
WHERE id=123 ORDER BY log_date_time DESC';

$result = pg_query($query) or die("Failed".$query);

$line = pg_fetch_array($result, null, PGSQL_ASSOC);

while ($line = pg_fetch_array($result, null, PGSQL_ASSOC)) {
    echo "\t<tr>\n";
    foreach ($line as $col_value) {     
        echo "\t\t<td>".$col_valuez."</td>\n";        
}

只有当有多个记录与该ID匹配时,上述代码才有效。如果只有一个匹配的行,我什么也得不到。我相信我应该以某种方式处理数据呈现部分。似乎只有一条记录仍可用作数组。我只是为什么foreach会忽略一行而感到困惑。我应该如何以适合一行或多行匹配的方式编写它?

由于

2 个答案:

答案 0 :(得分:2)

您在while循环之前添加了以下代码额外的时间

$line = pg_fetch_array($result, null, PGSQL_ASSOC);

删除此行,它应该按预期工作

答案 1 :(得分:2)

它正在“忽略”单行结果集,因为你正在使用它:

$line = pg_fetch_array($result, null, PGSQL_ASSOC);

该行(在while语句之前)消耗结果集的第一行,然后再对其执行任何操作。

完全删除它。