我使用以下代码所做的是通过 PHP 从表中获取数据,以便在网站上显示数据。
$stri = "SELECT a, b, c, d, e, f FROM table";
$stat = $conn->prepare($stri);
if ($stat->execute()) {
while ($resu = $stat->fetch(PDO::FETCH_ASSOC)) {
foreach ($resu as $key=>$value) {
echo $value . "<br>";
}
echo "<br><br>";
}
}
但是,使用两个循环似乎是多余的。有没有更有效的方法来完成同样的事情,同时允许独立处理每一行的每个项目?
我打算用它做类似下面的事情,这就是为什么我需要能够独立处理这些项目。
if ($stat->execute()) {
while ($row = $stat->fetch(PDO::FETCH_ASSOC)) {
echo '<div class="row">';
foreach ($row as $key=>$value) {
echo '<div class=' .$key. '>';
if (empty($value)) echo '---<br>';
else echo $value;
echo '</div>';
}
echo '</div>';
}
}
最佳答案
However, it seems redundant to use two loops.
我不明白这是什么意思,但总的来说,降低复杂性是很有可能的。为此,您需要全力使用 PDO,而不仅仅是替代 mysql_query()。关注点分离也会有所帮助
首先以数组的形式获取你的数据
$sql = "SELECT a, b, c, d, e, f FROM table";
$stmt = $conn->prepare($sql);
$stmt->execute();
$data = $stmt->fetchAll();
然后将其显示在页面的HTML 部分 内
<?php foreach ($data as $row): ?>
<div class="row">
<?php foreach ($row as $key=>$value): ?>
<div class="<?=$key?>">
<?php if (!$value): ?>
---<br>
<?php else ?>
<?=$value?>
<?php endif ?>
</div>
<?php endforeach ?>
</div>
<?php endforeach ?>
关于php - 可以降低获取和显示数据的复杂性吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46821907/