2016-09-21 4 views
0

У меня есть две таблицы, одна категория и одна должность. Как выбрать все категории и последние 5 сообщений из каждого.Выделить все категории и для каждой категории последние 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.

+0

Пожалуйста покажите нам структуру таблицы , –

+0

также указать, какой sql-диалект – MtwStark

+0

i использовать Mysql с phpmyadmin –

ответ

0

вы можете запустить второй запрос внутри выше в то время как петля для получения категории Размещения данных

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

Вы ищете SQL join method, который вы хотите использовать с cat_id из двух таблиц. Чем вы можете либо сменить SQL-запрос, чтобы получить всего 5 результатов, либо вы можете сделать счетчик в PHP для каждой категории и пропустить остаток, если у вас уже есть 5. Конечно, вам нужно учитывать, сколько данных у вас там. Если у вас большая база данных, лучше всего решить ее с помощью SQL.

0

отредактировать Лил немного, но вот окончательный код:

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

    } 

    ?> 
Смежные вопросы