2016-01-30 7 views
1

У меня есть эта структура таблицыграф строки из другой таблицы

sites 
id | name | etc 
1 | test | etc 
2 | test2 | etc 
3 | test3 | etc 

comments 
id | site_id | comment 
1 | 2 | test comment 
2 | 3 | test2 comment 
3 | 2 | test3 comment 

Я хочу, чтобы сделать запись список всех сайтов например.

test2 
this is a test description 
this is a test link 
comments NR (2) 

test3 
this is a test description 
this is a test link 
comments NR (1) 

У меня есть этот код для отображения этих сайтов. Может ли кто-нибудь сказать мне, как я могу подсчитать строки таблицы комментариев?

$subcat_id = $_GET["id"]; 


     $stmt = $handler->prepare("SELECT * 
            FROM sites sites 
            LEFT JOIN comments comments ON (sites.id = comments.site_id) 
            WHERE sites.subcat_id = '$subcat_id' AND sites.status = 1 
            GROUP BY sites.id 
            ORDER BY RAND()"); 
     $stmt->execute(); 
     $no=$stmt->rowCount(); 
     while($row = $stmt->fetch(PDO::FETCH_OBJ)){ 
      $sites[]=$row; 
     } 

     $smarty->assign('site',$sites); 
     $smarty->assign('anzahl',$no); 

     $smarty->display('subcat.tpl'); 

ответ

0

Перепишите Ваш SQL незначительно:

SELECT * 
FROM sites sites 
LEFT JOIN comments comments ON (sites.id = comments.site_id) 
WHERE sites.subcat_id = '$subcat_id' AND sites.status = 1 
ORDER BY sites.id 

Теперь вы знаете, вы будете иметь последовательные комментарии для каждого сайта, и вы можете проверить в PHP, если есть новый сайт, для которого необходимо распечатать заголовок ,

+0

Можно ли подсчитать в выборе Я могу сделать новый выбор, который я знаю. но выбор должен быть одним и тем же, потому что результат идет на smarty и делает список ... когда я делаю выбор комментариев отдельно в этом, а потом я не получаю результата –

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