2017-01-10 1 views
0

mysql에 "post"테이블이 있고 "tags"열이 있습니다.PHP를 사용하여 mysql에서 고유 태그와 발생 횟수를 가져옵니다.

태그 값은 사과, 주황색, 복숭아 등입니다.

나는 모든 태그를 얻고 태그 & 번을 php를 사용하여 배열에 할당하려고합니다. 여기 내가하려는 일이 있습니다.

$recmostusedtagscol = array(); 
$recmostusedtagsq = mysqli_query($connecDB,"select tags from post limit 5"); 
while($recmostusedtagsr = mysqli_fetch_array($recmostusedtagsq)){ 
    $tagsarray = explode(',', $recmostusedtagsr['tags']); 
    foreach ($tagsarray as $tag) { 
    if(in_array($tag,$recmostusedtagscol)){ 
     $recmostusedtagscol[$tag][]++; 
    } 
    else { 
     $recmostusedtagscol .= [$tag => 1]; 
    } 
    } 
} 
print_r($recmostusedtagscol); 

업데이트 : 이 하나 가깝습니다. uniqe 값을 나열하지만 배열 값에 1을 더하지 않습니다.

$recmostusedtagscol = array(); 
$recmostusedtagsq = mysqli_query($connecDB,"select tags from post"); 
while($recmostusedtagsr = mysqli_fetch_array($recmostusedtagsq)){ 
    $tagsarray = explode(',', $recmostusedtagsr['tags']); 
    foreach ($tagsarray as $tag) { 
    if(in_array($tag,$recmostusedtagscol)){ 
     $recmostusedtagscol[$tag]++; 
    } 
    else { 
     $recmostusedtagscol[$tag]=1; 
    } 
    } 
} 
print_r($recmostusedtagscol); 

가와 in_array 보인다는()

의견을 바탕으로
+0

$recmostusedtagscol = array(); $recmostusedtagsq = mysqli_query($connecDB,"select tags from post"); while($recmostusedtagsr = mysqli_fetch_array($recmostusedtagsq)){ $tagsarray = explode(',', $recmostusedtagsr['tags']); foreach ($tagsarray as $tag) { if(isset($recmostusedtagscol[$tag])){ $recmostusedtagscol[$tag]++; } else { $recmostusedtagscol[$tag]=1; } } } 

덕분에 왜 SQL에 있음을 합산하지 않고 원시 결과를 반복 한 x 결과를 검색? – arkascha

+0

'$ recmostusedtagscol. = [$ tag => 1];'이 변수를 문자열로 변환합니다. – arkascha

+1

이것은 또한 의미가 없습니다 :'$ recmostusedtagscol [$ tag] [] ++;'... – arkascha

답변

0

, 여기에 작업입니다 .... 어쩌면 .... 작동하지 않습니다. @ 마크 베이커와 @arkascha

관련 문제