提问人:Tim Nijland 提问时间:8/18/2020 最后编辑:DharmanTim Nijland 更新时间:8/18/2020 访问量:33
Echo all While 输出到单个变量中 [duplicate]
Echo all While outputs into a single variable [duplicate]
问:
这是我的代码:
$sql = "SELECT * FROM notifications";
if($result = mysqli_query($link, $sql)) {
if(mysqli_num_rows($result) > 0) {
while($row = mysqli_fetch_array($result)) {
$notification = "
<a class='d-flex align-items-center dropdown-item' href=".$row["link"].">
<div class='dropdown-list-image mr-3'><i class='fas fa-bell'></i>
<div class='bg-success status-indicator'></div>
</div>
<div class='font-weight-bold'>
<div class='text-truncate'><span>".$row["omschrijving"].".</span></div>
<p class='small text-gray-500 mb-0'>".$row["klant"]." - ".$row["createdat"]."</p>
</div>
</a>
";
}
}
}
在我的页面中进一步是:
echo "<h6 class='dropdown-header'>Notificaties</h6>
$notification"
出于不同的原因,我真的希望将输出作为单个变量。
现在,它只从数据库输出第一个通知。
是否可以像这样做:表中每一行的回声$notification?
答:
0赞
Alberto
8/18/2020
#1
连接通知可能会做到这一点
$notification = '';
while($row = mysqli_fetch_array($result))
$notification .="
<a class='d-flex align-items-center dropdown-item' href=".$row["link"].">
<div class='dropdown-list-image mr-3'><i class='fas fa-bell'></i>
<div class='bg-success status-indicator'></div>
</div>
<div class='font-weight-bold'>
<div class='text-truncate'><span>".$row["omschrijving"].".</span></div>
<p class='small text-gray-500 mb-0'>".$row["klant"]." - ".$row["createdat"]."</p>
</div>
</a> ";
评论
0赞
Tim Nijland
8/18/2020
它现在显示得更多,我收到了 6 条通知。奇怪的是,我的数据库中有 2 条通知。并且还得到了: 注意:未定义的变量:第 83 行 C:\xampp\htdocs\parameters.php 中的通知
0赞
AbraCadaver
8/18/2020
在您需要定义变量之前while
$notification = '';
0赞
Alberto
8/18/2020
@TimNijland您需要在使用变量之前对其进行初始化(在截断中添加了必要的行)
0赞
mickmackusa
8/18/2020
“如何在循环中连接字符串”可能是 Stack Overflow 上的超级重复@Berto请关闭而不是回答。
0赞
Tim Nijland
8/18/2020
非常感谢@Berto99!
-1赞
Victor Gazio
8/18/2020
#2
看起来您正在 while 循环中的每个实例上写入 $notification 变量。您应该考虑连接该变量。此外,您需要注意 PHP 变量中的 HTML 可能并不总是运行良好。我还建议使用 heredoc 语法。它看起来像这样:
$notification .= <<<EOD
HTML goes here
EOD;
评论
$notification .=