Я пробовал эту работу в течение 24 часов, и теперь мне кажется, что я близок к ней!Проблема с представлением данных из SQL с несколькими циклами
Я хотел бы получить дату (колонка: ИГД) и местоположение (колонка PLATS) из MySQL, где мой код выглядит как:
<?php
$sql = "SELECT datum FROM gigs GROUP BY DATE_FORMAT(datum, '%Y') ORDER BY datum DESC";
$result = mysql_query($sql);
while($r = mysql_fetch_array($result)) {
$date = $r['datum'];
$date_new = new DateTime($date);
$year = $date_new->format('Y');
$month = $date_new->format('M');
$day = $date_new->format('d');
$sql2 = "SELECT * FROM gigs WHERE DATE_FORMAT(datum, '%Y') = $year ORDER BY datum ASC";
$result2 = mysql_query($sql2);
echo "<tr height=20px><td></td><td align=center><b>".$year."</b></td></tr>";
echo "<tr><td><b>".$month."</b></td></tr>";
while($r2 = mysql_fetch_array($result2)) {
$date2 = $r2['datum'];
$date_new2 = new DateTime($date2);
$year2 = $date_new2->format('Y');
$month2 = $date_new2->format('M');
$day2 = $date_new2->format('j');
//echo "<b>Month: ".$month."</b>";
//echo "<b>Month2: ".$month2."</b>";
if($month != $month2) {
echo "<tr><td> </td></tr><tr><td><b>".$month2."</b></td></tr>";
}
$month = $month2;
echo "<tr class=giglist><td>".$day2."</td><td>".$r2['plats']."</td></tr>";
}
echo "</td></tr>";
}
?>
Это дает мне:
2011
Jan
1. Location
2. Location
3. Location
...
Feb
1. Location
2. Location
3. Location
...
...
Dec
1. Location
2. Location
3. Location
...
2010
Dec
Jan
1. Location
2. Location
3. Location
...
Feb
1. Location
2. Location
3. Location
...
...
Dec
1. Location
2. Location
3. Location
...
I НЕ хотите дополнительный декабрь, написанный в соответствии с «2010» ...
Я надеюсь, что кто-то может помочь, потому что я потерялся в своем собственном коде xD спасибо!
Это выглядит намного лучше, чем исходный код, но если я правильно понял исходный код, вы будете распечатываться в неправильном порядке. Вы должны заказать по убыванию Год и месяц (и день) по возрастанию после этого. – kastermester
Вы абсолютно правы. Я исправлю запрос –
Вау, гораздо лучший код! Я не знал, что можно было разделить дату вроде этого и «упорядочить» более чем 1 «столбец» в SQL-коде ... Теперь я понял ... Я еще не тестировал код, но я guess $ stmt должен быть $ result, а переменные $ result-variables в цикле должны быть $ row right? Благодаря! – Robin