【发布时间】:2014-06-29 01:12:17
【问题描述】:
我使用以下代码从我的数据库中检索数据。问题是它只显示第一行。在这种特殊情况下,这意味着网页上只显示第一张图片,但我想显示所有图片。
<?php
$sql = "SELECT `image-id`, `article-id`, `image-path`, `image-title` FROM `table-images` WHERE `article-id` = :id";
$stmt = $pdo->prepare($sql);
$stmt->bindParam(":id", $id);
$stmt->execute();
if($result = $stmt->fetch(PDO::FETCH_ASSOC))
{
?>
<a class="swipebox" href="<?php echo $result['image-path'];?>" title="<?php echo $result['image-title'];?>">
<img alt="image" src="<?php echo $result['image-path'];?>"></a>
<?php
}// end if
else {
echo '0 results';
}// end else
?>
我阅读了 this article 所以我尝试使用代码:
if($result = $stmt->fetchAll(PDO::FETCH_ASSOC));?
...但这不起作用。它甚至不再呼应第一张照片。我在这里错过了什么?
【问题讨论】:
-
使用
while循环。编辑:我正要提到一个foreach循环,就像答案出现在下面一样。 -
while ($arr = $stmt->fetch(PDO::FETCH_ASSOC)) { echo $arr['name']; }取自这个答案stackoverflow.com/a/19364078 你有两种方法可以做到这一点。while或foreach,您可以选择。 -
解释一下你现在的代码在做什么:你的条件语句正在检查 if 结果是否存在;如果是这样,它只会回显一个结果,因为您不会循环直到它在您的表中找不到任何其他结果。
-
感谢您的帮助。它适用于
while循环。
标签: php sql pdo fetch fetchall