2 回答
TA貢獻(xiàn)1725條經(jīng)驗(yàn) 獲得超8個(gè)贊
你可以嘗試這樣的事情,你按 對(duì)結(jié)果進(jìn)行排序,然后在PHP中檢查用戶ID是否在迭代之間發(fā)生了變化。當(dāng)它更改時(shí),關(guān)閉上一個(gè)塊(如果它已打開)并顯示新的標(biāo)題。user_id
當(dāng)可以避免查詢時(shí),您應(yīng)該避免在循環(huán)中進(jìn)行查詢(此解決方案可以避免)!
<div class="test">
<?php
$prev_user = null;
$result = mysqli_query($con, "SELECT *
FROM mugallery_2019 AS m
JOIN users AS u
ON m.author_id = u.user_id
ORDER BY u.user_id") or die(mysqli_error($con));
if (mysqli_num_rows($result)) {
while($row = mysqli_fetch_array($result)) {
$title = $row['title'];
$image = $row['filename'];
$id = $row['id'];
$user_id = $row['user_id'];
$user_name = $row['user_name'];
if ($prev_user !== $user_id) {
if ($prev_user !== null) {
echo '</div>';
}
$prev_user = $user_id;
?>
<div class="user">
<h2><?= $user_name ?></h2>
<?php
} ?>
<div class="thumb">
<a href="display.php?id=<?= $id; ?>"><img src="images/thumbs-square/<?= $image; ?>" alt=""></a>
</div>
<?php
}
echo '</div>';
} ?>
</div>
此外,一些適當(dāng)?shù)腻e(cuò)誤處理也不是一個(gè)壞主意。如果發(fā)生錯(cuò)誤,這將向最終用戶顯示實(shí)際的SQL錯(cuò)誤,這是不好的。永遠(yuǎn)不要在實(shí)時(shí)生產(chǎn)環(huán)境中顯示錯(cuò)誤。
TA貢獻(xiàn)1842條經(jīng)驗(yàn) 獲得超22個(gè)贊
試試這個(gè):
$users = mysqli_query($con, "SELECT * FROM users") or die(mysqli_error($con));
while($user = mysqli_fetch_array($users)){
$result = mysqli_query($con, "SELECT * FROM mugallery_2019 WHERE author_id = {$user['id']}") or
die(mysqli_error($con));
<h2><?php echo $user['user_name']; ?></h2>
while($item = mysqli_fetch_array($result)){
<div class="thumb">
<a href="display.php?id=<?php echo $item['id']; ?>"><img src="images/thumbs-square/<?php echo $item['filename']; ?>" alt=""></a>
</div>
}
echo "\n</div>";
}
- 2 回答
- 0 關(guān)注
- 111 瀏覽
添加回答
舉報(bào)
