亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

MYSQL 兩個表,在塊內顯示每個用戶

MYSQL 兩個表,在塊內顯示每個用戶

PHP
至尊寶的傳說 2022-09-03 15:56:45
我有兩張桌子mugallery_2019 table                  |  users tabletitle | filename | id | author_id     |  user_name | user_id----------------------------------    |  --------------------test1 |test1.jpg | 1  | 1             |  tester1   | 1test2 |test2.jpg | 2  | 2             |  tester2   | 2 test3 |test3.jpg | 3  | 2             |  tester3   | 3test4 |test4.jpg | 4  | 1             |test5 |test5.jpg | 5  | 1我的目標是從這些表中檢索數據,并在一個頁面上顯示按每個用戶分組的圖像。在我的知識范圍內,我嘗試了許多其他方法,但它們不會像我預期的那樣工作。這是我用兩個查詢嘗試的第一個。案例1<div class="test"><?php $result = mysqli_query($con, "SELECT user_name FROM mugallery_2019 JOIN users ON mugallery_2019.author_id = users.user_id GROUP BY author_id") or die(mysqli_error($con));    while($row = mysqli_fetch_array($result)): ?>    <div class="user">        <h2><?php echo $row['user_name']; ?></h2>        <?php $result2 = mysqli_query($con, "SELECT id, filename, title FROM mugallery_2019") or die(mysqli_error($con));        while($item = mysqli_fetch_array($result2)): ?>        <div class="thumb">            <a href="display.php?id=<?php echo $item['id']; ?>"><img src="images/thumbs-square/<?php echo $item['filename']; ?>" alt=""></a>        </div>        <?php endwhile; ?>    </div>    <?php endwhile; ?></div>案例 1 結果tester1test1.jpg test2.jpg test3.jpg test4.jpg test5.jpgtester2test1.jpg test2.jpg test3.jpg test4.jpg test5.jpg這是我嘗試使用一個查詢的另一種方式
查看完整描述

2 回答

?
qq_遁去的一_1

TA貢獻1725條經驗 獲得超8個贊

你可以嘗試這樣的事情,你按 對結果進行排序,然后在PHP中檢查用戶ID是否在迭代之間發生了變化。當它更改時,關閉上一個塊(如果它已打開)并顯示新的標題。user_id


當可以避免查詢時,您應該避免在循環中進行查詢(此解決方案可以避免)!


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

此外,一些適當的錯誤處理也不是一個壞主意。如果發生錯誤,這將向最終用戶顯示實際的SQL錯誤,這是不好的。永遠不要在實時生產環境中顯示錯誤。


查看完整回答
反對 回復 2022-09-03
?
茅侃侃

TA貢獻1842條經驗 獲得超21個贊

試試這個:


$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>";  


}


查看完整回答
反對 回復 2022-09-03
  • 2 回答
  • 0 關注
  • 88 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號