2013-01-09 4 views
1

신선한 눈이 내게 잘못된 것을 말해 줄 수 있습니까? 나는 그것이 단순한 것이라고 확신한다.MySql 결과를 그룹화 된 다차원 배열로 변환하면 무언가가 없습니다.

데이터 세트 검색 SQL 쿼리 : 나는 몇 시간 동안 다음과 같은 PHP 함수 손보는 된

list [ 
    publish_date [ 
     0 [ id, title, body ] 
     1 [ id, title, body ] 
     2 [ id, title, body ]] 
    publish_date [ 
     0 [ id, title, body ] 
     1 [ id, title, body ]] 
    publish_date [ 
     0 [ id, title, body ] 
     1 [ id, title, body ] 
     2 [ id, title, body ] 
     3 [ id, title, body ]]] 
Etc.. 

을 : 내가 도달하려고

SELECT * FROM articles WHERE category='category' ORDER BY publish_date DESC, id DESC LIMIT 0, 10 

다차원 배열을 지금 :

$result = $sql->prepareQuery($query_string); 

// iterate through array and place results in an array at row index 
$list = ['group_date' => ' ']; 
$r = 0; 
while ($rows = mysql_fetch_assoc($result)) { 
    if ($list['publish_date'] != $rows['pub_date']) { 
     $list['publish_date'] = $rows['pub_date']; 
     $r = 0; 
     foreach ($rows as $key => $val) { 
      $list['publish_date'][$r[$key = $val]]; 
     } 
     $r++; 
    } 
    else { 
     foreach ($rows as $key => $val) { 
      $list['publish_date'][$r[$key = $val]]; 
     } 
     $r++; 
    } 
} 
// return result 
print_r($list); 

답변

1

복잡하게 생각하는 것 :

$list = array(); 
$current_date = ''; 
while ($rows = mysql_fetch_assoc($result)) { 
    if ($current_date != $rows['pub_date']) { 
     $current_date = $rows['pub_date']; 
     $list[$current_date] = array(); 
    } 
    $list[$current_date][] = $rows; 
} 
+0

잘 작동합니다. 누가 당신을 점수를 내려 주 었는지, 나에게서, 감사합니다. – obmon

+0

그래, mysql_ * 함수를 사용하고 있기 때문에 누군가가 아마 downvoted 것을 알고 싶다. 그러나 그것은 질문이나 대답의 요점이 아니 었습니다. 이 경우에는 'while ($ rows = $ result-> fetch (PDO :: FETCH_ASSOC))'로 바꿀 수 있습니다. {' – Pitchinnate

+0

다시 한번 감사드립니다. OP에 최종 기능을 추가했습니다. – obmon

관련 문제