у меня есть таблица в базе данных, как это:
name date year
John 1/5/15 2015
Maria 3/3/15 2015
John 7/3/16 2016
Steve 5/2/16 2016
Steve 9/7/17 2017
John 9/1/17 2017
И хочу получить таблицу так:
Name 2015 2016 2017
John 1/5/15 7/3/16 9/1/17
Maria 3/3/15
Steve 5/2/16 9/7/17
Я пытался с этим запросом:
$sql = "SELECT DISTINCT(name),date,year FROM table ORDER BY name ASC";
$query = $conn->query($sql);
Теперь я не знаю, какой цикл использовать, чтобы данные выглядели во второй таблице.
Я пробовал с этим кодом
while($row = $query->fetch_assoc()) {
<td>" . $row["prezime_ime"] . "</td>
<td>" . ($row["date"]) . "</td>
Теперь я застрял здесь. Я новичок в PHP, поэтому, пожалуйста, кто-нибудь может мне помочь. большое спасибо
Вы можете сделать группу по
SELECT name,
MAX( CASE WHEN YEAR(date) = 2015
THEN date
END) as 2015,
MAX( CASE WHEN YEAR(date) = 2016
THEN date
END) as 2016,
MAX( CASE WHEN YEAR(date) = 2017
THEN date
END) as 2017
FROM yourTable
GROUP BY name