Echo all While 输出到单个变量中 [duplicate]

Echo all While outputs into a single variable [duplicate]

提问人:Tim Nijland 提问时间:8/18/2020 最后编辑:DharmanTim Nijland 更新时间:8/18/2020 访问量:33

问:

这是我的代码:

$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?

php if-statement 变量 mysqli while-loop

评论

0赞 Barmar 8/18/2020
$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;