如何向后传递值或后续检索?

时间:2017-10-22 22:49:20

标签: php html mysql

我只是想显示行数。我已经读过,选择数据只计算行是不好的做法。但是,我遇到的问题是,我想在其中显示计数的HTML元素在实际计数之前。

有人知道我如何向后传递计数或在完成计数后检索它吗?

<div>
  ...
  <div id="count-container">
    <?php echo $count; ?>
  </div>
  ...
</div>
...
<div id="data-container">
  <?php
    include "inc/connect.php";
    $stri  = "SELECT a, b, c, d... FROM table";
    $stat  = $conn->prepare($stri);
    $count = 0;
    if ($stat->execute()) {
      while ($row = $stat->fetch(PDO::FETCH_ASSOC)) {
        $count += 1;
        echo '<div class="row">';
        foreach ($row as $key=>$value) {
          echo '<div class="' .$key. ' data">';
          if (empty($value)) echo "---";
          else echo $value;
          echo "</div>";
        }
        echo "</div>";
      }
    }
    $conn = null;
  ?>
</div>

甚至可能吗?

1 个答案:

答案 0 :(得分:2)

您可以将输出存储在变量中,然后将其打印出来。这样你就可以在渲染之前获得逻辑。

<?php
    include "inc/connect.php";

    $output = '';
    $stri  = "SELECT a, b, c, d... FROM table";
    $stat  = $conn->prepare($stri);
    $count = 0;
    if ($stat->execute()) {
        while ($row = $stat->fetch(PDO::FETCH_ASSOC)) {
            $count += 1;
            $output .= '<div class="row">';
            foreach ($row as $key=>$value) {
                $output .= '<div class="' .$key. ' data">';
                if (empty($value)) $output .="---";
                else echo $value;
                $output .= "</div>";
            }
            $output .= "</div>";
        }
    }
    $conn = null;
?>

<div>
    ...
    <div id="count-container">
        <?php echo $count; ?>
    </div>
    ...
</div>
...
<div id="data-container">
    <?php echo $output; ?>
</div>