2012-01-17 2 views
0

mysql에서 기사 카테고리 목록을 출력하려고합니다. mysql에 저장된 사전 설정 범주가있는 기사가 많이 있습니다. 그러나 많은 기사에는 동일한 종류가있다, 그래서 나의 명부는 유사한 종류 결과에 아주 길게 얻는다. 내 생각에 사용자가 카테고리에 1 개의 게시물을 게시하면 카테고리가 나열됩니다. 그러나 사용자가 특정 카테고리에 여러 번 게시하더라도 카테고리가 한 번만 나열되어야한다는 것을 이해해야합니다. 내가 어떻게 할 수 있니?PHP mysql에서 비슷한 내용의 행 수 필터링

이 내가 무엇을 가지고,하지만 작동하지 :

foreach($result as $row) { 
if($result>1){ 
$kategorilink= "{$row['kategori']}"; 
echo $kategorilink; 
} 
} 
+0

심처럼 mysql_num_rows도()를 사용할 수있는 결과의 수를 확인하려면 ilar 또는 동일? –

+0

동일하면 카테고리 목록이 사전 설정됩니다. – Havihavi

답변

1

SELECT DISTINCT * FROM ...를 사용해보십시오. 이렇게하면 각기 다른 값을 한 번만 얻을 수 있습니다.

+0

총 1 개의 결과가 표시됩니다. '$ query = "SELECT DISTINCT * FROM article에서 full_name = '$ safe_name'"; $ result = mysql_query ($ query); while ($ row = mysql_fetch_array ($ result)) { $ coverlink = $ row [ 'kategori']; echo $ coverlink; } – Havihavi

+0

DB에 몇 가지 옵션이 있습니까? –

+0

흠, 나는 그 질문을 이해하지 못한다. 그러나 그것은 여러 가지 게시물을 가지고있다. 비슷한 카테고리가 있고, 다른 카테고리에 단지 1 개의 카테고리가있다. 카테고리는 : 스포츠, 게임, 패션. 제 대안은 카테고리마다 하나의 검색어를 만드는 것입니다. 그러나 나는 그것보다 더 동적 인 abit를 원합니다. – Havihavi

1

좋은 생각을 PHP에서 MySQL의 데이터를하지 않는 수정, 당신은

select distinct(category) from article where full_name='$safe_name' 

처럼 MySQL의에서 disting 범주를 선택하거나 범주에 따라 그룹에 쿼리에 절하여 결과를 그룹을 추가 할 수 있습니다

select * from article where full_name='$safe_name' group by (category) 

당신은 당신이

if (mysql_num_row($result) > 1){ //code here} 
+0

답장을 보내 주셔서 감사합니다.) 그러나 이것은 또한 1을 반환했습니다. 결과. – Havihavi