2012-04-11 6 views
1

を使用してテーブルにMySQLのクエリからの結果とそれがないです(これは、ラジオ局のためです。)前日の時刻表を表示し、誰が各スロットを予約した表示これはタイムテーブルのためにあるPHP

現時点で各スロットを時間順に予約した人が表示されますが、各結果の横に時間を表示したいと思います。クエリは、24行(真夜中から23時まで)と、各スロットの横に(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>"; 
} 



?> 

あなたは助けることはできますか?

+0

また、曜日は名前ではなく数字として保存する必要があります。その後、あなたは自然に並べ替えることができ、彼らは英語に依存していません。 – Corbin

+1

@Corbin - 彼の実際の質問は、時間を表示するのではなく、並べ替えについて何も言わないようです。 – Cfreak

+1

タイムスロットはどのようにデータベースに保存されていますか? –

答えて

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句を指定しない場合、あなたはありません持っています特定の順序で結果を得ることを保証します。

最後に、不必要な行を2回ループしています。 foreachループを取り除き、whileループの中に直接エコーを入れてください。

+0

優れています。ありがとうございました。出力された情報をRSSフィードに変換できる方法はありますか? – Logan

+0

もちろん、可能です。しかし、それはこの質問の範囲外です。ここで質問する前にいくつかのチュートリアルに従ってください。 [W3Schools](http://www.w3schools.com/)には初心者のための良いチュートリアルがあります。スタックオーバーフローは、チュートリアルを依頼する場所ではなく、特定の問題に対する解決策を求めるためのものです。 – Travesty3

0

はこれを試してみてください。

foreach ($rowset as $row) { 
echo "<tr><td>" . htmlspecialchars($row['username']) . htmlspecialchars($row['time'])"</td></tr>"; 
関連する問題