24 시간 동안이 작업을 수행하려고 시도했지만 이제는 필자가 가깝다고 느낍니다.다중 루프를 사용하여 SQL에서 데이터를 표시 할 때 문제가 발생했습니다.
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을 :
<?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>";
}
?>
이 나에게주는 : 내 코드처럼 보이는 MySQL의에서 (plats입니다 열) 및 위치 :
나는 날짜 (자료 열)을 좀하고 싶습니다 "2010"아래에 쓰여진 여분의 12 월을 원하지 마라.
누군가 내가 도울 수 있기를 바란다.
원본 코드보다 훨씬 좋아 보이지만 원본 코드의 의도가 맞다면 잘못된 순서로 인쇄됩니다. 당신은 그 해가 오름차순으로, 그리고 그 다음에 오름차순으로 달 (그리고 일)을 주문해야합니다. – kastermester
당신은 절대적으로 옳습니다. 쿼리를 수정합니다 –
와우, 훨씬 좋은 코드! 나는 그것과 "순서"에 의해 SQL 코드에서 1 개 이상의 '열'과 같은 날짜를 분할하는 것이 가능하다는 것을 몰랐다 ... 지금 나는 그것을 얻는다 ... 나는 아직 코드를 테스트하지 않았지만 $ stmt가 $ result가되어야하고 $ result-variables가 $ row이어야합니다. 감사! – Robin