|
|
|
ดึงข้อมูลมาแสดง(จัดเรียง)ในตารางเวลาอย่างไรให้อยู่ในช่องเวลาด้วย |
|
|
|
|
|
|
|
เป็นโปรแกรม "จองห้องประชุม" ค่ะ ตอนนี้ข้อมูลมาลงในตารางได้แล้วบางส่วน ตรงตามวันที่มีการจอง มีการแสดงวันหยุดต่างๆ
แต่ไม่รู้จะเอาข้อมูลที่มีการจองเข้าไปใส่ให้ตรงตามช่วงเวลายังไงดี จะเขียนเงื่อนไขออกมาแบบไหน รบกวนทุกท่านด้วยนะคะ ^^
เอาแค่แนวทางก็ได้ค่ะ ขอบคุณค่ะ
ที่คิดไว้คือ... ตรวจสองว่าตรงกับชั่วโมงใดในตาราง แต่ปัญหาคือช่องว่างระหว่างเวลาที่เริ่มกับเวลาที่จบก็จะไม่มีข้อมูลอยู่กลายเป็นว่างไป...
ปล. อาจจะมีข้อมูลบางส่วน ฮาร์ดคีย์ ลงไปเลย เพราะว่า จขกท. เริ่มทำในส่วนนี้ก่อน(คิดว่ายากสุด) ส่วนเพิ่ม ลบ แก้ไข จอง จะตามมาค่ะ
ตารางข้อมูลบางส่วน BookRoom
ตารางข้อมูลบางส่วน BookRoomDetail
โค้ดของหน้าแสดงข้อมูลตารางจองห้องประชุม(003)
Code (PHP)
<?php
include('.../connectsqlserver.php');
//echo "เลือกห้องประชุม > เลือกเดือน/ปี";
//echo "<br>";
// function ตรวจสอบวันหยุด
function CheckPublicHoliday($strChkDate)
{
$strSQLHol = "SELECT * FROM Holiday WHERE HolDay = '".$strChkDate."' ";
$objQueryHol = mysql_query($strSQLHol);
$objResHol = mysql_fetch_array($objQueryHol);
if(!$objResHol)
{
return false;
}
else
{
return true;
}
mysql_close($objConnect);
}
?>
<table class="coll" width="1200" cellspacing="" border="1" bordercolor="#3E94BD" bgcolor="#FFFFFF" align="center">
<tr>
<td height="50" width="100" align="center" bgcolor = "#8EC1DA"><font color=#FFFFFF><b>วันที่/เวลา</b></font></td>
<td width="100" align="center" bgcolor = "#8EC1DA"><font color=#FFFFFF><b>8:00 - 9:00</b></font></td>
<td width="100" align="center" bgcolor = "#8EC1DA"><font color=#FFFFFF><b>9:00 - 10:00</b></font></td>
<td width="100" align="center" bgcolor = "#8EC1DA"><font color=#FFFFFF><b>10:00 - 11:00</b></font></td>
<td width="100" align="center" bgcolor = "#8EC1DA"><font color=#FFFFFF><b>11:00 - 12:00</b></font></td>
<td width="100" align="center" bgcolor = "#8EC1DA"><font color=#FFFFFF><b>12:00 - 13:00</b></font></td>
<td width="100" align="center" bgcolor = "#8EC1DA"><font color=#FFFFFF><b>13:00 - 14:00</b></font></td>
<td width="100" align="center" bgcolor = "#8EC1DA"><font color=#FFFFFF><b>14:00 - 15:00</b></font></td>
<td width="100" align="center" bgcolor = "#8EC1DA"><font color=#FFFFFF><b>15:00 - 16:00</b></font></td>
<td width="100" align="center" bgcolor = "#8EC1DA"><font color=#FFFFFF><b>16:00 - 17:00</b></font></td>
<td width="100" align="center" bgcolor = "#8EC1DA"><font color=#FFFFFF><b>17:00 - 18:00</b></font></td>
<td width="100" align="center" bgcolor = "#8EC1DA"><font color=#FFFFFF><b>18:00 เป็นต้นไป</td>
</tr>
<?
$StartDate = "23-01-2012"; //d/m/y
$strStartDate = date('d-m-Y' , strtotime($StartDate));
echo "<br>";
$strEndDate = "2012-12-31";
$intWorkDay = 0;
$intHoliday = 0;
$intPublicHoliday = 0;
$intTotalDay = ((strtotime($strEndDate) - strtotime($strStartDate))/ ( 60 * 60 * 24 )) + 1;
while (strtotime($strStartDate) <= strtotime($strEndDate)) {
$DayOfWeek = date("w", strtotime($strStartDate));
if($DayOfWeek == 0) // 0 = Sunday, 6 = Saturday;
{
$intHoliday++;
$strStartDate = date('d-m-Y' , strtotime($strStartDate));
?>
<tr>
<td height="30" align="center" bgcolor = "#8EC1DA"><font color=#FFFFFF><b><? echo "$strStartDate"; ?></b></font></td>
<td colspan="11" align="center" bgcolor = "#C0DEED"><font color=#3E94BD>วันหยุดประจำสัปดาห์</font></td>
</tr>
<?
}
elseif(CheckPublicHoliday($strStartDate))
{
$intPublicHoliday++;
$strStartDate1 = date('d-m-Y' , strtotime($strStartDate));
$strSQLHol = "SELECT * FROM Holiday WHERE HolDay = '".$strStartDate."' ";
$objQueryHol = mysql_query($strSQLHol);
while($objResHol = mysql_fetch_array($objQueryHol))
{
?>
<tr>
<td height="30" align="center" bgcolor = "#8EC1DA"><font color=#FFFFFF><b><? echo "$strStartDate1"; ?></b</font></td>
<td colspan="11" align="center" bgcolor = "#C0DEED"><font color=#3E94BD><? echo"$objResHol[Descripiton]"; ?></font></td>
</tr>
<? }
}
else
{
$strSQLBook = "SELECT BookRoomDetail.*, BookRoom.* FROM BookRoom
LEFT JOIN BookRoomDetail ON BookRoom.BookRID = BookRoomDetail.BookRID
WHERE BookRoom.BookRDate = '".$strStartDate."' AND BookRoomDetail.RoomRID = '003'";
$objQueryBook = mysql_query($strSQLBook);
$objNumBook = mysql_num_rows($objQueryBook);
if($objNumBook > 0)
{
$strStartDate = date('d-m-Y' , strtotime($strStartDate));
?>
<tr>
<td height="30" align="center" bgcolor = "#8EC1DA"><font color=#FFFFFF><b><? echo "$strStartDate"; ?></b></font></td>
<td colspan="11" align="center" bgcolor = "#C0DEED"><font color=#3E94BD>
<?
while($objResBook = mysql_fetch_array($objQueryBook))
{
echo "$objResBook[BookRID] $objResBook[BookStart] - $objResBook[BookEnd] $objResBook[BookRTopic]<BR>";
}
?></font></td>
</tr>
<?
}
else {
$intWorkDay++;
$strStartDate = date('d-m-Y' , strtotime($strStartDate));
?>
<tr>
<td height="30" align="center" bgcolor = "#8EC1DA"><font color=#FFFFFF><b><? echo "$strStartDate"; ?></b></font></td>
<td align="center">ว่าง</td>
<td align="center">ว่าง</td>
<td align="center">ว่าง</td>
<td align="center">ว่าง</td>
<td align="center">ว่าง</td>
<td align="center">ว่าง</td>
<td align="center">ว่าง</td>
<td align="center">ว่าง</td>
<td align="center">ว่าง</td>
<td align="center">ว่าง</td>
<td align="center">ว่าง</td>
</tr>
<?
$strStartDate = date ("Y-m-d", strtotime("+1 day", strtotime($strStartDate)));
?>
Tag : PHP, MySQL
|
|
|
|
|
|
Date :
2012-02-28 16:56:33 |
By :
meetingroom |
View :
1787 |
Reply :
2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
inner join ทั้ง 2 ตารางกันก็น่าจะได้แล้วนะครับ
|
|
|
|
|
Date :
2012-02-28 18:07:51 |
By :
Dragons_first |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ยังไงค่ะ รบกวนช่วยขยายความได้ไหมค่ะ ^^
เพราะตอนที่ดึงข้อมูลออกมาแสดง ก็ LEFT JOIN ไปแล้ว หรือต้องเปลี่ยนเป็น inner join ??
|
|
|
|
|
Date :
2012-02-28 20:40:00 |
By :
จขกท. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 05
|