2016-09-21 7 views
0

私は2つのテーブル1つのカテゴリと1つの投稿があります。どのようにすべてのカテゴリを選択し、それぞれから5つの投稿を最後に選択するのですか?すべてのカテゴリを選択し、カテゴリごとに最後に5ポスト

私はcateg_idを持つテーブルカテゴリの構造ポストで

cat_id cat_title 
1  sports 
2  news 
3  bla 
4  bla 

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>';   
} 

これまでのところ、このコードを持っています。

+0

私達にあなたのテーブル構造を示してください。 。 –

+0

また、どのsqlの方言を指定する – MtwStark

+0

私はphpmyadminでMysqlを使用しています –

答えて

0

私はlitleビットを編集しますが、ここで最終的なコードである

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 
    } 
} 
+0

私はそれを私はカムバックする必要があります –

+0

私はあなたが将来の使用のように与えることを望む –

0

2つのテーブルからcat_idで使用するSQL join methodを探しています。 5つの結果を得るためにSQLクエリを変更するか、または各カテゴリのPHPでカウンタを作成し、残りの5つをスキップすることができます。もちろん、そこにあるデータの量を考慮する必要があります。大規模なデータベースがある場合は、SQLで解決するのが最善です。

0

カテゴリポストデータを取得するためのwhileループ上に内部あなたの2番目のクエリを実行することができます:

<?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>';  

    } 

    ?>