Php 如何向后传递值或随后检索?
我只想显示行数。我已经读到,只选择数据来计算行数是不好的做法。然而,我遇到的问题是,我想在其中显示计数的HTML元素先于实际计数 有人知道我如何将计数向后传递或在计数完成后检索吗?Php 如何向后传递值或随后检索?,php,html,mysql,Php,Html,Mysql,我只想显示行数。我已经读到,只选择数据来计算行数是不好的做法。然而,我遇到的问题是,我想在其中显示计数的HTML元素先于实际计数 有人知道我如何将计数向后传递或在计数完成后检索吗? <div> ... <div id="count-container"> <?php echo $count; ?> </div> ... </div> ... <div id="data-container"> &l
<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>
...
...
...
这可能吗?
您可以将输出存储在变量中,然后打印。这样,在渲染之前就有了逻辑
<?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>
...
...
...
有趣!连接HTML不会在某种程度上弄乱或弄乱它的格式?它将输出HTML而不会断行。如果你想把它印得漂亮的话。您可以添加一些PHP\u EOL
。($output+=“”.PHP_EOL;)您的意思是连接字符串的=
<代码>+=会把一切都粉碎成数字。@Anthony做新人没什么错<代码>+=对于习惯于JavaScript或其他语言的人来说是非常令人困惑的,因为这些语言会将两个字符串加在一起。就脚本语言而言,PHP异常古怪,它深受Perl的影响,Perl基本上是sed
和awk
,这两种工具比Perl和PHP更古老、更低级。@tadman你一针见血。因为+=
是JS语法,所以我可能没有注意到。研究一下MVC,看看他们为什么这么做。通常,在使用HTML之前执行所有业务逻辑是一个好主意。任何随机选择的框架都会向您展示更好的方法。无政府主义的PHP代码是由CSS、HTML、JavaScript、SQL、PHP以及有时随机混合的其他垃圾组成的混乱混合物。一个框架将其划分为不同的关注点,从而使其更易于使用。模型处理SQL。视图处理HTML。基于路由的控制器接口模型和视图。它们还生成函数来封装功能,而不是有条件地将所有内容隐藏在if
语句后面。无论从堆栈开始,您都会学到很多编程方面的知识,所以不要认为如果您使用框架,您就不会学到。如果您能学到更多的东西,那么您将有更好的示例和更多的代码来检查它们是如何实现的。看看各种各样的,并找到一个适合你的风格和需要。它们有各种各样的形式,从瘦的到非常全面的。@tadman我以前已经无数次听说过拉威尔。你似乎见多识广,所以我接受你的建议,再看一眼!你可能会发现拉威尔有点让人窒息,因为它特别要求你做事,或者你可能会发现不管在什么情况下,它都会支持你,这很好。PHP有大量支持良好的框架可供选择,所以不要认为这是Laravel还是core PHP之间的决定。您的问题域可能更适合另一个问题域。这是一个非常主观的决定,就像选一辆车一样。无论你决定做什么,都要从内到外学习,不要停止提问。这就是你不断提高的方式。