2011-07-16 6 views
0

に私は配列があります。グループは、日付によってPHP/MySQLの

Array 
(
    [0] => Array 
     (
      [id] => 53 
      [product] => something 
      [price] => £78 
      [quantity] => 23 
      [time] => 2011-07-15 20:29:21 
     ) 

    [1] => Array 
     (
      [id] => 52 
      [product] => product 
      [price] => £89 
      [quantity] => 1 
      [time] => 2011-07-14 00:51:57 
     ) 

    [2] => Array 
     (
      [id] => 51 
      [product] => product 
      [price] => £89 
      [quantity] => 1 
      [time] => 2011-07-14 00:51:37 
     )) 

を私は次のSQL文を使用してこれを得た:

select * from some_table GROUP BY time DESC 

私は、日付順の結果を表示したいです見出しとしての日付:

**2011-07-15** 
all array elements for above date go here 

**2011-07-15** 
all array elements for above date go here 

私は別々の日ごとに別々の発言をすることを考えましたが、それは間違っています。より良い方法がありますか?

答えて

2

このようなクエリで時間BY ORDER:

select * from some_table ORDER BY time DESC 

そして、PHPのループ:

$last_date = 0; 
while($row = mysql_fetch_assoc($result)){ 
    $date = date('Y-m-d', strtotime($row['time'])); 
    if($date != $last_date) 
     echo '**'.$date.'**'; 
    $last_date = $date; 
    echo '<br />'; 
    echo 'Id: '.$row['Id']; 
    echo 'Product: '.$row['product']; 
    echo 'Price: '.$row['price']; 
    echo 'Quantity: '.$row['quantity']; 
    echo '<br /><br />'; 
} 

あなたの代わりにHTMLページのコンソールにouputtingしている場合は、'<br \>'を交換"\n"

+0

GROUP BYとORDER BYを持つ2つの異なるものです。 GROUP BYは、テーブル内の複数のタプルが同じ時間を持ち、SUM(数量)または何かのような集計データを選択している場合にのみ影響を与えます – Paulpro

+0

また、最後の日付( 'Ym-d')をvarおよび日付が変更された場合にのみ日付ヘッダーを表示します。 – bfavaretto

+0

ああ、気づいていない、彼はそれぞれの日付を一度だけ出力することを望んでいた。私は私のポストを更新します。ありがとう – Paulpro

0
<? 
$arrDate = Array 
(
    [0] => Array 
     (
      [id] => 53 
      [product] => something 
      [price] => £78 
      [quantity] => 23 
      [time] => 2011-07-15 20:29:21 
     ); 


$currentDate = null; 

foreach ($arrDate as $item) { 

     if ($item["time"] == $currentDate) { 
      // print details 
     } 
     else { 
      $currentDate = $arrDate["time"]; 
      // print date header. 
      // print details 
     } 

} 

?> 
関連する問題