I have this SQL statement:
SELECT id, name, date FROM money_month WHERE user_id = '{$_SESSION['id']}';
It returns me rows like that:
| id | name | date |
|----|--------|------------|
| 1 | Mike | 2018-09-05 |
| 2 | Nelson | 2018-09-07 |
| 3 | Bity | 2018-09-08 |
| 4 | Ory | 2018-10-04 |
If I use Group by like:
SELECT id, name, date FROM money_month WHERE user_id = '{$_SESSION['id']}' GROUP BY YEAR(date), MONTH(date) ORDER BY date DESC;
it works, but shows only first row from each month, like this:
| id | name | date |
|-----------|------|------------|
| September | | |
| 1 | Mike | 2018-09-05 |
| October | | |
| 4 | Ory | 2018-10-04 |
Is possible to separate rows with months, to look like this?
| id | name | date |
|-----------|--------|------------|
| September | | |
| 1 | Mike | 2018-09-05 |
| 2 | Nelson | 2018-09-07 |
| 3 | Bity | 2018-09-08 |
| October | | |
| 4 | Ory | 2018-10-04 |
My SQL output
$month = '';
while($row = $result->fetch_assoc()) {
if($month != $row["date"])
{
$month = substr($row["date"],5,2);
if ($month == "10") { $output= "October"; }
if ($month == "9") { $output= "September"; }
echo $output;
}
Trying to achieve someting like this: 
But my output looks like this: 
from Separate months inside SQL output
No comments:
Post a Comment