php - 可以降低获取和显示数据的复杂性吗?

标签 php mysql pdo

我使用以下代码所做的是通过 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/

相关文章:

php - 此查询在不起作用时删除记录

php - 如何在MYSQL/SQL中查询本例的数据?

php - MySQL 错误 #1064 找不到解决方案?

PHP fatal error : Call to a member function row() on a non-object result_array() when I use SQL subquery

php - 参数化查询 PHP/MySQL

php - SSL 证书验证在 WordPress 更新中通过纯 HTTP(非 SSL)失败

php - 使用 PHP 输出谷歌搜索结果?

mysql - Laravel 使用 AND/OR 运算符在多表上搜索多个关键字

php - 使用 PDO 和 MySQL 将 null 绑定(bind)到整数列?

php - 在 MySQL 中搜索大量 ID