이 작업을보다 명확하게 수행 할 방법을 찾고 있습니다. 내 코드는 작동하지만 더 좋을 수도 있습니다. 세 개의 테이블이 있습니다 : 하나는 범주 그룹 목록이 있고, 다른 하나는 범주 그룹에 연결된 범주 목록이 있으며, 다른 하나는 범주에 연결된 뉴스 기사 목록이 있습니다.PHP : MYSQL COUNT 쿼리 (연결된 테이블 포함)
범주 그룹의 모든 이름을 차례로 살펴보고 범주 그룹에있는 범주 이름과 각 범주의 뉴스 기사 수를 차례로 반복해야합니다.
범주 그룹, 범주, 뉴스의 세 가지 테이블이 있습니다.
나는 일련의 쿼리를 가지고있다. 첫 번째 묻습니다 CategoryGroups 테이블에서 모든 행 :
$result = mysql_query('
SELECT cat_group_id, cat_group_name FROM CategoryGroups
');
두 번째 쿼리는 첫 번째 쿼리의 루프 결과 내부와 뉴스 항목이 특정 범주 그룹에 연결된 모든 범주를 찾습니다
<?php
while($row = mysql_fetch_assoc($result)){
$id = $row['cat_group_id'];
$name = $row['cat_group_name'];
echo "<h3>$name</h3>";
$sql = mysql_query("
SELECT category_id, title FROM `Categories`
WHERE cat_group_id = $id
AND category_id IN
(SELECT news.category_id FROM news)
");
while($row = mysql_fetch_assoc($sql)) {
$title = $row['title'];
$catid = $row['category_id'];
$numbers = mysql_query("
SELECT * FROM news
WHERE category_id =$catid"
);
$nums = mysql_num_rows($numbers);
echo "$title ($nums)<br/>\n";
}
?>
효율성을 염두에두고 한두 개의 검색어로 제한하고 싶습니다. 나는이 일을 할 수 있음을 알고 있지만, 나는 내 시도에 성공하지 못했습니다.
감사합니다.
예. 그가 나를 혼란스럽게 만들었던 원인을 알아 내기 위해 두 번째를 보았다. – DForck42