1

これは時刻表用で、前日の時刻表と各スロットを予約した人が表示されます(これはラジオ局用です)。

現時点では、誰が各スロットを予約したかが時系列で表示されますが、各結果の横に時間を表示したいと思います。クエリは24行(真夜中から23:00まで)を出力し、各スロットの横に(00:00、01:00、02:00、03:00 ... 21:00、22)と言いたいです。 :00など。)

これは私の現在のコードです:

<?php 
include("../config.php");

#// Timetable Clearup Variabls
$yesterday = strtotime('yesterday');
$yesterdow = date('l',$yesterday);

echo "<table width=\"580px\" class=\"board\" border=\>";

$order = "SELECT * FROM timetable WHERE day = '$yesterdow'";
$result = mysql_query($order);

// Error checking
if (!$result) {
  // output error, take other action
}
else {
  while ($row=mysql_fetch_array($result)){
     // Append all results onto an array
     $rowset[] = $row;
  }
}
    foreach ($rowset as $row) {
  echo "<tr><td>" . htmlspecialchars($row['username']) . "</td></tr>";
}



?> 

手伝ってくれますか?

4

2 に答える 2

1

私たちは皆、非常に単純な問題に真剣に取り組んでいると思います。すでにクエリで使用SELECT *しているため、テーブルから3つの列すべてを既にフェッチしています。これで、テーブルの各行に別のセルを追加するだけで済みます。

echo "<tr><td>" . htmlspecialchars($row['username']) . "</td><td>" . htmlspecialchars($row['time']) . "</td></tr>";

また、行を正しい順序でフェッチしていることを確認するにはORDER BY、クエリにを追加する必要があります。

SELECT * FROM timetable WHERE day = '$yesterdow' ORDER BY time

句を指定しない場合ORDER BY、特定の順序で結果が得られる保証はありません。

最後にもう1つ、不必要に行を2回ループしています。foreachループを取り除き、エコーをwhileループ内に直接配置します。

于 2012-04-11T18:51:09.813 に答える
0

これを試して:

foreach ($rowset as $row) {
echo "<tr><td>" . htmlspecialchars($row['username']) . htmlspecialchars($row['time'])"</td></tr>";
于 2012-04-11T18:50:35.330 に答える