我正在尝试执行一个简单的foreach
循环,但它只打印出一行,而不是db中的两行(我试图将其他行放入db但只得到第一行,我找不到错误。
try {
$dbh = new PDO("mysql:host=$hostname;dbname=$dbname", $username, $password);
$sql = "SELECT flyer_url FROM films LIMIT 30";
$films = $dbh->query($sql);
$result = $films->fetch(PDO::FETCH_ASSOC);
foreach($result as $row) {
print "<img src='" . $row . "' style='width:200px;'>" ;
}
$dbh = null;
}
catch (PDOexception $e) {
echo "Error: " . $e-> etmessage() . '<br/>Contact the System Administrator.';
}
假设DB conf数据在config.php中并且已成功加载。
我正在尝试制作个人电影DB,并展示每部电影的节目单。
答案 0 :(得分:3)
更改
$result = $films->fetch(PDO::FETCH_ASSOC);
到
$result = $films->fetchAll(PDO::FETCH_ASSOC);
答案 1 :(得分:2)
fetch
会返回单行 - 表示为关联数组。为了获得所有行,您必须继续迭代fetch
的结果:
while($row = $films->fetch(PDO::FETCH_ASSOC)) {
print "<img src='" . $row['flyer_url'] . "' style='width:200px;'>" ;
}
答案 2 :(得分:1)
你为什么不这样做?
$data="";
foreach($result as $row) {
$data .= "<img src='" . $row['flyer_url'] . "' style='width:200px;'>" ;
}
这将连接字符串,并将在foreach循环外提供组合结果。