2012-11-17 4 views
0

에 스타일을 추가 I 쿼리의 결과 다음과 같은 설정 :PHP - 읽기 날짜 결과는 다른

name  date_added 
----  --------- 
dan   15/11/2012 
jane  15/11/2012 
ted   14/11/2012 
larry  13/11/2012 
corben  13/11/2012 

이러한 결과는 간단한 MySQL의 쿼리 출신을 나는 예를 들어, 결과를 표시

while($users = mysql_fetch_array($result)){ 

    echo $users[name].' -- '.$users[date_added]; 

} 

이렇게하면 간단한 목록이 생성됩니다.

dan --  15/11/2012 
jane --  15/11/2012 
ted --  14/11/2012 
larry --  13/11/2012 
corben --  13/11/2012 

내가 원하는 것은 다른 날짜의 결과를 맨 처음부터 시작하는 것입니다 (예 :

15/11/2012 
dan --  15/11/2012 
jane --  15/11/2012 

14/11/2012 
ted --  14/11/2012 

13/11/2012 
larry --  13/11/2012 
corben --  13/11/2012 

날짜는 매일 변경되므로 살아있는 문서이므로 매일 하드 코딩되지 않습니다.

while 루프 내에서 간단하고 효율적인 방법이 있습니까?

답변

0
$dates = array(); 
while($users = mysql_fetch_array($result)) 
{ 
    $key = $users['date_added']; 
    if (!isset($dates[$key])) $dates[$key] = array(); 
    $dates[$key][] = $users[name].' -- '.$users[date_added]; 
} 

// free mysql results 
// then iterate $dates to print 

foreach ($dates as $date=>$arr) 
{ 
    echo $date.'<br/>'.implode($arr).'<br/><br/>'; 
} 
0

당신은 키와 날짜 배열에 넣어 다음과 같이 그들 모두를 표시 할 수 있습니다 : 그것은 날짜, 루프를 주문 있도록

$users = array(); 
while ($user = mysql_fetch_array($result)) { 
    if (!isset($users[$user['date_added'])) $users[$user['date_added']] = array(); 
    $users[$user['date_added']][] = $user['name']; 
} 
foreach ($users as $date => $names) { 
    echo $date . '<br />'; 
    foreach ($names as $name) { 
     echo $name . '<br />'; 
    } 
    echo '<br />'; 
} 

당신은 또한 쿼리를 변경할 수 있습니다 결과를 통해 그리고 날짜가 당신이 날짜를 인쇄하기 전에 반복과 다를 때마다.

0

당신은 MySQL을 DISTINCT ... FX는 사용할 수 있습니다

$dates = mysql_query("SELECT DISTINCT date_added FROM your_table ORDER BY date_added ASZ"); 

$user_date = array(); 
while ($row = mysql_fetch_array($dates)) { 
    array_push($user_date, $row['date_added']); 
} 

foreach ($user_date as $date) { 
    echo $date . '<br />'; 
    $users = ("SELECT name, date_added FROM your_table WHERE date_added = '$date' ORDER BY date_added ASC"); 
    while($row = mysql_fetch_array($users)) { 
     echo $row['name'] . ' -- ' . $row['date_added'] . '<br />'; 
    } 
}