私は24時間この作業をしようとしましたが、今は近くにいるように感じます!複数のループでSQLのデータを表示するときに問題が発生する
私は日付(カラム:データム)を取得したいと思います。これは、私に与え
<?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を:私のコードは次のように見えるのMySQLからと場所(plats列) "2010"の下に書かれた余分な12月を望んではいけません...
誰かが助けてくれることを願っています。
これは元のコードよりもはるかによく見えますが、元のコードの意図が正しく理解されていれば、間違った順序で印刷されます。あなたは、年の降順でそれを昇順にする必要があります。 – kastermester
あなたは絶対に正しいです。私はクエリを修正します –
うわー、はるかに良いコード!私はそのような日付とSQLコード内の1列以上の "順序"を分割することが可能であるかどうかはわかりませんでした...今すぐ取得します...まだコードはテストされていませんが$ stmtを$ resultとし、ループの$ result-variablesを$ row rightとすべきでしょうか?ありがとう! – Robin