2011-09-04 5 views
1

이 시나리오에서는 Codeigniter를 통해 PHP를 사용하고 있습니다.카테고리 및 하위 항목 검색 및 표시

해당 카테고리에 할당 된 항목이있는 기본 카테고리 목록입니다. 내가 문제를 겪고있는 것은 카테고리 목록 페이지의 카테고리 이름 옆에 항목 수를 표시하는 것입니다.

내가 어떻게하고 있었는지는 내가 생각하는 매우 비효율적 인 방법이었고, 나는 이런 종류의 일에 대해 어떤 것이 일반적인 관행이되는지 알고 싶다.

그래서 내 컨트롤러에서 카테고리 목록을 얻었고 카테고리를 통해 루프에서 내보기에서 각 반복마다 해당 cat_id의 개수를 얻기 위해 모델 메소드를 호출합니다. (! 공포)

내가해야합니다 범주를 얻기)

A와이 항목은 1 SQL 문

또는

B)에서 카운트 컨트롤러 카테고리 목록을 처리하고 얻을 년대 카테고리 '에 해당하는 컨트롤러의 항목 수

만약 그렇다면 어떻게해야합니까?

+0

? 약간 비틀어 진 SQL 문 – Soren

+0

모든 코드는 표준 쿼리와 foreach 루프 목록 데이터이므로 붙여 넣을 가치가 없다고 생각했습니다. 내가 정말로 찾고있는 것은 큰 그림입니다 순전히 하나의 SQL 쿼리 내 에서이 정보를 얻으려면, 또는 몇 가지 쿼리를 가져 와서보기로 전달하기 전에 컨트롤러 측면에서 배열에 그들을 결합 ... – Winterain

답변

4

귀하의 DB 설계가 허용하는 경우 필요한 모든 것을 하나의 쿼리로 선호합니다.

당신이 가정 할 카테고리 테이블과이 같은 것을 할 수 있어야 할 제품 테이블 :

Select C.Category, Count(P.Id) as ProductsCount 
From Categories C left join Products P on C.Id = P.Category_Id 
Group by C.Category  
Order by C.Category 
당신이 보여 주어야 할 어떤 코드
+0

이것은 효과가 보인다! :) – Winterain

+0

0 개의 제품 카테고리가 표시되지 않습니다. 그 주위에 방법이 있습니까? – Winterain

+0

내부 조인이 아닌 왼쪽 조인이므로 제품이 0 인 제품을 표시해야합니다. 내 대답이 업데이트되었습니다. 미안해서 실종 된 그룹이 있습니다. – Iridio

관련 문제