簡體   English   中英

選擇所有類別,每個類別的最后5個帖子

[英]Select all the categories and for each category last 5 post

我有2個表一類和一個職位。 如何選擇所有類別並從每個類別中選擇最后5個帖子。

到目前為止我有這段代碼

include("includes/connect.php");
$get_cats = "select * from categories";
$run_cats = mysqli_query($con,$get_cats);

while ($cats_row=mysqli_fetch_array($run_cats)) {
    $cat_id=$cats_row['cat_id'];
    $cat_title=$cats_row['cat_title'];

    echo '<div class="col-md-4 col-sm-6 col-xs-12">';
    echo '<ul class="list-group ">';
    echo '<li class="list-group-item table-header"><strong>';
    echo $cat_title;
    echo '</strong><span class="badge badge-color">12</span></li>';
    echo '</ul>';
    echo '</div>';         
}

表格類別的結構

cat_id cat_title
1      sports
2      news
3      bla
4      bla

在帖子中,我有一個categ_id。

您正在從兩個表中查找要與cat_id一起使用的SQL連接方法 比您可以更改SQL查詢以僅獲得5個結果,或者可以在PHP中為每個類別創建一個計數器,如果已經擁有5個,則跳過其余部分。當然,您需要考慮那里有多少數據。 如果您的數據庫很大,最好是用SQL解決。

您可以在while循環內運行第二個查詢,以獲取類別發布數據

while ($cats_row=mysqli_fetch_array($run_cats)) {
    $cat_id=$cats_row['cat_id'];

    $sql2="select * from post where cat_id=".$cat_id." order by id desc limit 5"; 
    $second2=mysql_query($sql2); 
    while (post_row=mysqli_fetch_array($second2)) {
        // do your stufff
    }
}

我編輯了一點點,但是這里是最終代碼:

    <?php 
    include("includes/connect.php");
    $get_cats = "SELECT * from categories";
    $run_cats = mysqli_query($con,$get_cats);

     while ($cats_row=mysqli_fetch_array($run_cats)) {

        $cat_id=$cats_row['cat_id'];
        $cat_title=$cats_row['cat_title'];
                echo '<div class="col-md-4 col-sm-6 col-xs-12">';
                echo '<ul class="list-group ">';
                echo '<li class="list-group-item table-header"><strong>';
                echo $cat_title;
                echo '</strong><span class="badge badge-color">12</span></li>';


     $sql2="SELECT * from posts_req where categ_id='$cat_id' ORDER BY post_id desc limit 5"; 
      $second2=mysqli_query($con,$sql2);
        if (!$second2) {
printf("Error: %s\n", mysqli_error($con));
exit();
             }

    while ($post_row=mysqli_fetch_array($second2)) {

                echo '<a href="#" class="list-group-item border-none fonts">'.$post_row['post_title'].'</a>';


         }

                echo '</ul>';
                echo '</div>';    

     }

    ?>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM