我使用以下代码从名为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匹配时,上面的代码才有效。如果只有一行匹配,我什么也得不到。我认为我应该以不同的方式处理数据呈现部分。似乎只有一条记录仍然可以作为数组工作。我只是很困惑为什么前臂会忽略一行。我应该如何编写它,使其适用于一个或多个正确匹配的行?
感谢
您在while循环之前添加了以下代码
$line = pg_fetch_array($result, null, PGSQL_ASSOC);
删除这一行,它应该按预期工作
它"忽略"单行结果集,因为您正在使用它:
$line = pg_fetch_array($result, null, PGSQL_ASSOC);
这一行(在while
语句之前)在您对结果集执行任何操作之前消耗结果集的第一行
只需将其完全移除即可。