If you stored the month as a number then you would be able to order it by month. MySQL doesn't know what order you think is correct for your strings.
You should store dates as numbers and only convert them to strings when you're displaying them to the user.
How to turn a number month into a text month:
// This is somewhere very early on in your code// The first slot is empty because there is no month 0 (zero)$months = array('Empty', 'January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'); // Whenever you need to print the month name $m = $row['month'];echo $months[$m];