2017-09-28 62 views
-1

我有這樣的代碼:MySQL查詢ORDER BY和PHP造型

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

這給了我這樣的事情:

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 

我想將它們歸入月/年。我需要這樣的東西:

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

你可以得到月份和年份,並按第一年,然後是月份訂購,它會根據你的需要給你結果。

SELECT MONTH(datefield)爲一個月,一年(datefield)作爲一年buy ORDER BY YEAR,MONTH ASC

+0

'ORDER BY date'將總是首先按年份,然後是月份然後是日期。那麼爲什麼要單獨做? –

+0

是的,你是對的,但它不適合他。這就是爲什麼給一個替代解決方案。 –

+0

沒有問題不是關於查詢,OP需要用PHP的方式來格式化他提出的問題輸出 –