2017-06-01 6 views
0

Ich habe viele Termine in der Datenbank wie so gespeichert:Extract Monat und Jahr von mysql Datumsformat

2017-06-01

Und es gibt verschiedene Monate im Wert von Daten in der Datenbank. Ich möchte dies in einem Dropdown-Menü zeigen, so dass ein Benutzer sehen würde:

April 2017 Mai 2017 Juni 2017

Ich habe versucht, dies in einer while-Schleife als Start zu versuchen, den Monat erhalte allein:

$month = date('F', strtotime($row['b_date']));

aber es zeigt nur Januar 7 mal.

$stmt = $link->prepare("SELECT 'b_date' FROM `summary`"); 
    $stmt->execute(); 
    $result = $stmt->get_result(); 
    $numRows = $result->num_rows; 
    if($numRows > 0) { 
     while($row = $result->fetch_assoc()) { 
      $month = date('F', strtotime($row['b_date'])); 
      echo "<option value=''>{$month}</option>"; 
     } 
    } 
+0

schwer zu sagen, ohne den Code für diese und das Schema zu sehen. Im besten Fall, DISTINCT/GROUP BY? –

+0

@ Fred-ii- gerade bearbeitet die Frage, um die sql – Jonathan

+1

zu zeigen Verwenden Sie keine Zitate ''b_date'' – AbraCadaver

Antwort

0

Sie können

SELECT b_date 
FROM summary 
GROUP BY YEAR(b_date), MONTH(b_date) 

Ähnlich dieser Ausgabe SQL group dates by month in Ihrer Abfrage so etwas wie dies versuchen. Meine Vermutung wäre, Sie verwenden MySQL, hier sind die docs for date manipulation

+1

Bessere Gruppe nach Jahr zuerst. –

+0

@ Do not Panic Guter Anruf –

+0

Das funktioniert perfekt! :) – Jonathan