我总是错过第一行结果,这在只有一行结果时更为明显。
我的 PDO 命令有问题。请问有什么改正的建议吗?如果我删除 $pod->prepare 没有任何作用。不确定该怎么做?
<?php
$sql = "SELECT * FROM Order_Items
JOIN Parts ON Parts.id = Order_Items.part_id
WHERE Order_Items.orders_id = $id
AND qty <> 0
ORDER BY Parts.id";
$q = $pdo->prepare($sql);
$q->execute(array());
$row = $q->fetch(PDO::FETCH_ASSOC); // Roy says this is not needed
while ($row = $q->fetch(PDO::FETCH_ASSOC))
{
echo '<tr>';
echo '<td>' . $row['part_num'] . '</td>';
echo '<td>' . $row['part_desc'] . '</td>';
echo '<td>' . $row['qty'] . '</td>';
}
Database::disconnect();
?>
最佳答案
您正在复制 $row = $q->fetch(PDO::FETCH_ASSOC);
。
当您将 $q asing 到 $row
时,$q->fetch
已清除(无数据),因此在 IF 语句
中您没有要在 $q 中获取的行。
您必须删除 $row = $q->fetch(PDO::FETCH_ASSOC);
并仅在 IF 中使用它。
同时尝试对$q
执行fetchAll()。
$result = $query -> fetchAll();
foreach( $result as $row ) {
/*CODE*/
}
关于php - SQL Select 在 phpmyAdmin 和 . PHP HTML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43120262/