在PHP上仍然非常苛刻,我只是想知道如何才能实现这一目标。
我正在尝试使用PDO查询列出所有MySQL表数据。
基本上我想在列表中显示表中的两列并循环每行的html。
我有以下HTML:
<div class="container-div">
<h3 class="make"></h3>
<div class="side-cont">
<h4 class="model"></h4>
</div>
</div>
我的表有两列,如下所示:
Make, Model
我使用以下PHP连接到数据库:
<?php
try {
$db = new PDO("mysql:host=localhost;dbname=dbname","user","password");
$db->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
$db->exec("SET NAMES 'utf8'");
} catch (Exception $e) {
echo "Could not connect to the database.";
exit;
}
try {
$results = $db->query("SELECT Make, Model FROM import ORDER BY Make ASC");
echo "Successful.";
} catch (Exception $e) {
echo "Error.";
exit;
}
?>
正如您所看到的,此代码正在与数据库建立连接。
现在我已经能够使用以下方法将数据打印到页面上:
$results = $results->fetchAll(PDO::FETCH_ASSOC);
foreach( $results as $result ){
echo $result['Make'];
}
我只是不确定如何在我提供的HTML中打印这些数据。
任何例子都会非常感谢,这正是我想要实现的目标:
<div class="container-div">
<h3 class="make">Make Column</h3>
<div class="side-cont">
<h4 class="model">Model Column</h4>
</div>
</div>
然后循环HTML,使其显示第二行等......
<div class="container-div">
<h3 class="make">Make Column Row Two</h3>
<div class="side-cont">
<h4 class="model">Model Column Row Two</h4>
</div>
</div>
答案 0 :(得分:1)
如果您想循环使用结果集,则使用fetch
代替fetchAll
更容易。您可以在while
循环中使用它,就像这样:
while($row = $results->fetch(PDO::FETCH_ASSOC))
{
echo '
<div class="container-div">
<h3 class="make">'.$row["Make"].'</h3>
<div class="side-cont">
<h4 class="model">'.$row["Model"].'</h4>
</div>
</div>
';
}
fetch
在每次调用时返回结果集的一行(编辑:然后将光标设置为下一行),而fetchAll
一次返回整个结果集。