2012-03-20 53 views
0

因爲每個人都在這個新的東西開始。 我想要得到正確的查詢,以顯示今天預訂從MRBS日曆的時間和房間的順序實例房間1 10 -11,房間2從11-11房間1從11-14房間3從13-15的順序。 我從Rowland carson得到了一個數組樣本,但是我希望它每天都顯示,並且按時間排列,任何人都有任何想法?他們非常歡迎這將在學校成立,以顯示在探險中每天的預訂。 這就是我今天:從mysql mrbs顯示今天的預訂日曆

 session_start(); 
$php_session_id = session_id(); 

$this_page = basename($_SERVER['PHP_SELF']); 
if ($_SESSION[ThisPage] == $this_page) 
{ 

} 

define("ONE_DAY", (60*60*24)); 

$nowArray = getdate(); 

if ($_POST[show_calendar] != "") // form submitted so capture data from it 
{ 
    switch ($_POST[show_calendar]) 
    { 
     case "chosen": 
      if (!checkdate($_POST['month'], $_POST['mday'], $_POST['year'])) 
      { 
       $day = $nowArray['mday']; 
       $month = $nowArray['mon']; 
       $year = $nowArray['year']; 
      } 
      else 
      { 
       $day = $_POST['mday']; 
       $month = $_POST['month']; 
       $year = $_POST['year']; 
      } 
      break; 


    } 

} 
else // first pass, form not submitted 
{ 
    $day = $nowArray['mday']; 
    $month = $nowArray['mon']; 
    $year = $nowArray['year']; 
} 

$startTimestamp = mktime (0, 0, 0, $month, $day, $year); 
$theDateArray = getdate($startTimestamp); 

$theWeekday = $theDateArray['wday']; 
if ($theWeekday > 1) 
{ 
    $startTimestamp = $startTimestamp - ($theWeekday * ONE_DAY); 
    $theDateArray = getdate($startTimestamp); 
} 

$theTimestamp = $startTimestamp; 

$startingDateArray = getdate($startTimestamp); 

$startYear = $theDateArray['year']; 

$dispTimestamp = $startTimestamp; 

//connect to database 
$conn = mysql_connect($mysql_host, $mysql_user, $mysql_pass) 
    or die(mysql_error()); 
mysql_select_db($booking_db, $conn) or die(mysql_error()); 

$get_entries = "select timestamp 
    from $bookings 
    order by timestamp desc 
    limit 1 
    " 
    ; 
$entries_result = mysql_query($get_entries) or die(mysql_error()); 
$data_row = mysql_fetch_object($entries_result); 
$last_changed = $data_row->timestamp; 

$get_rooms = "select * 
    from $rooms 
    order by id 
    " 
    ; 
$rooms_result = mysql_query($get_rooms) or die(mysql_error()); 
$n_rooms = mysql_num_rows($rooms_result); 
$n_cols = $n_rooms + 1; 

$booking_block = "<TABLE align=center BORDER=1 CELLPADDING=5>\n"; 
$booking_block .= "<tr><td colspan=".$n_cols.">"; 
$booking_block .= "Room bookings for today "; 
$booking_block .= $startingDateArray['mday']." "; 
$booking_block .= $startingDateArray['month']." "; 
$booking_block .= $startingDateArray['year']." "; 
$booking_block .= "(Last change to any booking was made "; 
$booking_block .= $last_changed; 
$booking_block .= ")</td></tr>\n"; 
$booking_block .= "<tr><td align=right>".$startYear."</td>\n"; 

while ($rooms = mysql_fetch_array($rooms_result, MYSQL_ASSOC)) 
{ 
    $booking_block .= "<td>"; 
    $booking_block .= $rooms['room_name']; 
    $booking_block .= "</td>"; 
} 
$booking_block .= "</tr>\n"; 

for ($day_number = 0; $day_number <= 6; $day_number++) 
{ 
    $booking_block .= "<tr>\n"; 
    $booking_block .= "<td align=right valign=top>"; 
    $endOfDay = $theTimestamp + ONE_DAY; 
    $theDateArray = getdate($theTimestamp); 
    if ($theDateArray['year'] != $startYear) 
    { 
     $startYear = $theDateArray['year']; 
     $booking_block .= $startYear."<br>"; 
    } 
    $booking_block .= date("D d M", $theTimestamp)."</td>\n"; 

    for ($room_number = 1; $room_number <= $n_rooms; $room_number++) 
    { 
     $get_bookings = "select * 
      from $bookings 
      where start_time >= $theTimestamp 
      and start_time <= $endOfDay 
      and room_id = $room_number 
      order by start_time 
      " 
      ; 
     $bookings_result = mysql_query($get_bookings) or die(mysql_error()); 
     $booking_block .= "<td valign=top>"; 
     if (mysql_num_rows($bookings_result) > 0) 
     { 
      while ($booking_entry = mysql_fetch_array($bookings_result, MYSQL_ASSOC)) 
      { 
       $booking_block .= date("H:i", $booking_entry['start_time']); 
       $booking_block .= "-"; 
       $booking_block .= date("H:i", $booking_entry['end_time']); 
       $booking_block .= " "; 
       $booking_block .= $booking_entry['name']; 
       $booking_block .= "<br>\n"; 
      } 
     } 
     else 
     { 
      $booking_block .= "<br>"; 
     } 
     $booking_block .= "</td>"; 
    } 
    $booking_block .= "</tr>\n"; 
    $theTimestamp = $theTimestamp + ONE_DAY; 
} 

$booking_block .= "<tr><td colspan=".$n_cols." align=right>"; 
$booking_block .= "This web page rendered on "; 
$booking_block .= $nowArray['mday']." "; 
$booking_block .= $nowArray['month']." "; 
$booking_block .= $nowArray['year']." "; 

$booking_block .= "</table>\n"; 

// Close the database connection 
mysql_close($conn); 

?> 

<html> 
<head> 
    <meta http-equiv="Content-Style-Type" content="text/css"> 
    <link type="text/css" rel="stylesheet" href="q_style.css"> 
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> 
    <title><?php echo "Room bookings for week of ".$startingDateArray['mday']." ".$startingDateArray['month']." ".$startingDateArray['year'] ?></title> 
<head> 
<body> 

<?php include("page_header.php") ?> 

<hr> 

<table border=0 cellpadding=1 width="100%"> 
    <tr> 
     <td align=right>&nbsp;</td> 
    </tr> 
</table> 

<table align=center BORDER=0 CELLPADDING=5 width="100%"> 
    <tr> 
     <td> 
      <?php echo $booking_block; ?>  </td> 
    </tr> 
</table> 

<table border=0 cellpadding=1 width="100%"> 
    <tr> 
     <td>&nbsp;</td> 
    </tr> 
</table> 

<hr> 

回答

0

此SQL將返回START_TIME和ROOM_ID下令今天預訂 -

SELECT * 
FROM $bookings 
WHERE start_time >= UNIX_TIMESTAMP(CURRENT_DATE) 
AND start_time < UNIX_TIMESTAMP(CURRENT_DATE + INTERVAL 1 DAY) 
ORDER BY start_time, room_id 

如果這是你正在尋找不是你將需要投入更多的努力進入你的問題。什麼是表名和它們的結構?你期望輸出的格式是什麼?

+0

感謝這讓我走上了正確的軌道,但我會返回一個更詳細的問題再次感謝你 – Rutan 2012-03-21 13:40:07