[英]Is it possible to echo multiple results outside of a while loop?
我有一個while循環,用於回顯多個轉換為脫機用戶的mysql結果。 為了使事情更有條理,我想執行查詢,將結果存儲在變量中,然后在頁面底部回顯它。 我需要回應某個父div中的在線和離線用戶,所以我回到第一個div標簽,然后執行兩個查詢並回顯結果,然后回顯結束標記,這似乎很混亂。 目前,如果我嘗試從while循環外部回顯結果,我只得到1個結果。 如果有人有任何想法,我將不勝感激。
$sql = 'SELECT * FROM users
LEFT JOIN friendships
ON friendships.friend_id = users.id
WHERE friendships.user_id = ?
AND users.id NOT IN (
SELECT active_users.id FROM active_users)';
$stmt5 = $conn->prepare($sql);
$result=$stmt5->execute(array($userid));
while ($row = $stmt5->fetch(PDO::FETCH_ASSOC)) {
$online=htmlspecialchars( $row['username'], ENT_NOQUOTES, 'UTF-8' );
$online = "<div class='user-online'>
<a data-name=\"$to\">$to</a>
</div>";
$online.=etc...plus do other processes
}
<div id=\"online\">
".$online."
</div>
您需要將SQL結果存儲在數組中
$sql = 'SELECT * FROM users
LEFT JOIN friendships
ON friendships.friend_id = users.id
WHERE friendships.user_id = ?
AND users.id NOT IN (
SELECT active_users.id FROM active_users)';
$stmt5 = $conn->prepare($sql);
$result=$stmt5->execute(array($userid));
while ($row = $stmt5->fetch(PDO::FETCH_ASSOC)) {
$online[]=htmlspecialchars( $row['username'], ENT_NOQUOTES, 'UTF-8' );
}
<div id=\"online\">
<?php foreach ($online as $aline) {
echo $aline;
} ?>
</div>
為了清晰起見,我修剪了一些代碼,但希望它有所幫助
while循環的每次迭代都重新定義$ online變量(覆蓋它的先前值)。 您可以在循環外部定義一個變量,並在循環中追加它,或者將結果存儲在數組中,然后遍歷它以生成輸出。
你不需要while循環。 只要你有足夠的內存:
$rows = $stmt5->fetchAll(PDO::FETCH_ASSOC);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.