2017-09-28 6 views
-1

私はこのようなコードを持っている:私は数ヶ月/年にグループ化したいMYSQL QUERY ORDER BYとPHPのスタイリング

Date (d-m-y)  Name Price 
================================== 
01/02/2017   xy  $1 
22/12/2017   xy  $1 
11/05/2017   xy  $1 
21/09/2019   xy  $1 

$result = mysqli_query($con, "SELECT * FROM buy ORDER BY date ASC") or die(mysqli_error()); 

これは私にこのような何かを提供します。私は次のようなものが必要です:

Date (d-m-y)   Name Price 
    ================================== 

******2017****** 
/FEBRUARY/ 

    01/02/2017   xy  $1 

/MAY/ 
    11/05/2017   xy  $1 

/DECEMBER/ 

    22/12/2017   xy  $1 

******2019****** 
/SEPTEMBER/ 
    21/09/2019   xy  $1 

どうすればいいですか?

+2

? –

+0

多次元配列でデータを変換すると、毎年配列コレクションが月になり、毎月毎にレコードが作成され、目的の形式で印刷されます。 –

答えて

0

結果をループすると、年と月が変更されます。 変更された場合は、ヘッダーを追加します。

$year=""; 
$month=""; 
while (...) { 
    $newYear = (...); 
    $newMonth = (...); 
    if ($year != $newYear) echo $newYear; 
    if ($month != $newMonth) echo $newMonth ; 
} 
+0

これはコメントでなければなりません。提案通りです –

+0

提案はありませんが、これはPHPの質問です。 – Daniel

+0

あなたは編集しました。私は –

0

あなたは月と年を取得し、必要に応じて結果を得る初年度と月次で注文を行うことができます。あなたは試してみました何年BY buy ORDER FROM年として月として

SELECT MONTH(datefield)、(datefield)YEAR、MONTHのASC

+0

の前にコメントを追加しています。「ORDER BY date」は、常に年月順、月次、日付順です。だから別にそれを行うには? –

+0

はい、あなたは正しいですが、彼のために働いていません。そういうわけで、代わりの解決法があります。 –

+0

問は問題ではありませんが、OPは質問で与えた出力をPHPでフォーマットする必要があります –