2011-12-22 10 views
0

を追加します。は、MySQLデータベースをチェックして、私はPHPを持っているコードのPHP用の

<?php 

$columns = array('mon','thu','wed','tue', 'fri', 'sat', 'sun'); 
$num_cols = count($columns); 
$col = 0; 
$datetime = new DateTime("06:00"); 

echo "<table>"; // border=\"1\" for visible border 

// Day header 
echo "<tr>"; 
foreach($columns as $col) { 
    echo "<td at='$col'>$col</td>"; 
} 
echo "</tr>"; 


// Times 
for($i=0; $i<20; $i++) { // FIXME for more entries or other step width 
    echo "<tr>"; 
    $datetime->modify('+30 minutes'); 

    for ($j=0; $j<$num_cols; $j++) 
     echo '<td class="' . $datetime->format('H:i') . '">' . $datetime->format('H:i') . '</td>'; 

    echo "</tr>"; 
} 

echo "</table>"; 

?> 

とデータベースのMySQLで:

id | day | hours 
1 | mon | 07:00 
2 | thu | 08:40 
3 | wed | 12:30 
4 | thu | 13:00 
5 | fri | 05:00 
etc 

どのようにこれをチェックするための最良の方法ですか?日付がデータベース内にある場合、私は赤のクラスを追加例えば、赤い背景のメイクTDをしたいと思います:FOR各ループで

echo "<td at='$col' class='red'>$col</td>"; 

チェックこれは良いアイデアではありません - これは、データベースの多くのクエリに発生しました。 どうすれば作れますか?

可能であればjqueryやJSONなども使用できます。

答えて

1

これらをすべてキー配列に並べると、カレンダーをループするときにこれらのキーをチェックするだけです。

たとえば、配列array(1 => array('07:00' => true))(曜日=>予定)を取得します。

あなたはこの例を私に説明することができますisset($array[$datetime->format('N')][$datetime->format('H:i')])

+0

を確認することができますか?私は理解していません –

+2

何か必要なたびにクエリを実行するのではなく、データベースからローカルアレイにすべての情報をダウンロードするだけです。次に、キーを使用して簡単に検索可能な配列に格納します。 '$ array [1]'はmonday上のあなたのすべての予定を指し、 '$ array [1] ['08:00']'は月曜日の午前8時の予定です。この方法では、1つのMySQLクエリしか必要ありません。 –

+0

ありがとう:)私の使用例を$ datetime-> format( 'N')に変更するにはどうすればいいですか?今は不可能です... –

関連する問題