2011-08-07 9 views
2

私のPHPスクリプトのヘルプが必要です。私は、ユーザーが自分のクラスの時間を選択できるスクリプトを作成しています。時間リストは24時間グリッドでロックされます。つまり、1時間に1つのクラスのみが実行されます。クラス予約システムを作るPHP

このスクリプトの目的は、ユーザーに利用可能な時間の簡単なフォームを表示することです。

1日に24時間可能です。1部屋です。 * 私は3つの部屋があります。 *

私は後でフォームを作成する方法を理解していますが、私は3つの部屋がある場合、利用可能な時間を表示する方法です。ここで

は、私がこれまでに得たものである:

<?php 
include 'db-connect.php'; 
if (isset($_GET['month']) && isset($_GET['day']) && isset($_GET['year'])) { 

    $month = $_GET['month']; 
    $day = $_GET['day']; 
    $year = $_GET['year']; 

    //string together date 
    $date = $month."/".$day."/".$year; 

    //return classes on this date 
    $sql = mysql_query("SELECT start_time, server FROM classes WHERE date = '$date'"); 

    if (mysql_num_rows($sql)<=0) { 

     echo "show all the times."; 

    }else { 

     $timelist = array(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24); 
     $servers = array(1,2,3); 

     while($query = mysql_fetch_array($sql)) { 

       unset($timelist[$query['start_time'] - 1]); 

     } 
    } 
} 
?> 

は、データベースの例:

+---------------------------------------------------------------------------------------+ 
| classID | trainerID | type | date  | start_time | duration | server | define  | 
+---------------------------------------------------------------------------------------+ 
| 1  | 1   | 12 | 08/7/2011 | 9   | 60  | 1  | dummy class | 
+---------------------------------------------------------------------------------------+ 
+0

私はこの質問にはあまりにも愚かだと思います。しかし、私はあなたを少し助けることができます.. $ timelist = range(1、24);あなたの長いアレイのためのより良い方法です。そして、あなたはdbテーブルの例を提供することができますか? –

+0

よく私のdbテーブルの名前はclassです。classID(自動インクリメント)、date(00/00/0000)、start_time(1 - 24)、duration(15-60分)、server 1,2、または3)。 –

+0

http://sql-info.de/mysql/examples/CREATE-TABLE-examples.htmlこれをあなたの質問に追加してください。 –

答えて

1

代わりに、あなただけのように、それぞれの時間が中に発見された配列の数を格納することができ、あなたの現在の戦略の:

//define time list 
$timelist = array_fill(1, 24, 0); 

while($query1 = mysql_fetch_array($sql1)) { 

    $timelist[$query1['start_time']]++; 

} 

while($query2 = mysql_fetch_array($sql2)) { 

    $timelist[$query2['start_time']]++; 

} 

while($query3 = mysql_fetch_array($sql3)) { 

    $timelist[$query3['start_time']]++; 

} 

$timelist = array_keys(array_filter($timelist, 'equals3')); 

function equals3($x){ 
    return $x == 3; 
} 

ここで、$ timelistは、3つのクエリすべてで検出された時間の配列です。少なくとも1つのクエリに欠けていた時間の配列を使用する場合は、最後の数行の代わりにこれを使用します。

関連する問題