|
|
|
รบกวนช่วยดูโค้ดหน่อยครับ คือว่ากดจองสนามไปแล้วมันขึ้นสถานะจองไม่ถูกต้องอ่ะครับ |
|
|
|
|
|
|
|
กดจองสนามไปแล้วมันขึ้นสถานะจองไม่ถูกต้องอ่ะครับ
รบกวนช่วยดูโค้ดผมที ขอบคุณครับ
<< ภาพประกอบ >>
1.อันนี้ตารางโชว์การจองครับ
2.เมื่อกดจองไปแล้ว
3.เมื่อกดจองเวลา 19.00 กลับขึ้นแบบนี้อ่ะครับ
4.db booking
5.db field
6.db time
<< Code PHP ส่วนของ show ตารางการจอง และการ GET ค่าจาก checkbox ครับ >>
$query = mysql_query("SELECT * FROM time WHERE time_status = 1 ORDER BY time_name ASC");
$query2 = mysql_query("SELECT * FROM field ORDER BY field_name ASC ");
$arrTime = array();
$arrField = array();
while($result = mysql_fetch_array($query)) array_push($arrTime,$result);
while ($result2 = mysql_fetch_array($query2)) array_push($arrField,$result2);
$strTable= '<table border="1" id="box-table-a" width="" align="center">
<tr>
<th><strong>เวลา/สนาม</strong></th>';
//LOOP แสดงชือเวลา
foreach ($arrTime as $time)
{
$strTable.='<th>'.show_time($time["time_name"]).'</th>';
}
$strTable.='</tr>';
//LOOP แสดงชื่อสนาม
foreach($arrField as $f_name)
{
$strTable.='<tr><th>'.$f_name["field_name"].'</th>';
$sql = "SELECT * FROM booking,time WHERE fieldID = '{$f_name[fieldID]}' AND date = '{$date}' ORDER BY time.time_name ASC ";
$query=mysql_query($sql) or die (mysql_error);
$num = mysql_num_rows($query);
$run = 0;
// LOOP แสดงค่า จอง หรือว่าง
foreach($arrTime as $time)
{
$time_now = date("H:i:s");
$date_now = date ("Y-m-d");
// ==== เมื่อมีการจอง ========== >>>>>> ปัญหาอยู่แถวๆนี้ครับ
if ($num > $run && $time ["timeID"] == mysql_result($query,$run,'booking.timeID') && $date >= $date_now )
{
if ($date == $date_now && $time['time_name'] < $time_now && $time['time_name'] )
{
$strTable.='<td><font color="green"><b>Playing</b></font></td>';
$run++;
}
else
{
$strTable.='<td><font color="orange"><b>จองแล้ว</b></font></td>';
$run++;
}
}
// ==== ไม่มีการจอง =====
else
{
if($_SESSION['userID'] == "")
{
$strTable.='<td>ว่าง</td>';
}
else
{
$timestamp1 = strtotime($date_now);
$timestamp2 = strtotime('+7 days',$timestamp1);
$date7 = date('Y-m-d', $timestamp2);
if ($date < $date_now || $date > $date7 ) //จองได้ล่วงหน้า 7 วัน
{
$strTable.='<td><font color="#C0C0C0">ว่าง<input name="chk" type="checkbox" disabled="disables" value=""></font></td>' ;
}
else if ($time['time_name'] < $time_now && $date == $date_now ) // เวลาน้อยกว่าเวลาปัจจุบัน
{
$strTable.='<td><font color="#C0C0C0">ว่าง<input name="chk" type="checkbox" disabled="disables"></font></td>';
}
else
{
$chkField= $f_name['fieldID'];
$chkTime = $time['timeID'];
$chkDate= $date;
$chkUser = $_SESSION['userID'];
$chkDate2Book = date("Y-m-d");
$chkTime2Book = date("H:i:s");
$strTable.='<td>ว่าง
<input type ="checkbox" name ="chk[]" id="chk"
value ="'.$chkField."_".$chkTime."_".$chkDate ."_".$chkUser."_".$chkDate2Book."_".$chkTime2Book .'"
onClick="if(form_book.chk.checked==false){form_book.btnSubmit.disabled=true;} else{form_book.btnSubmit.disabled=false; }"> </td>';
}
}
}
}
}
$strTable.='</tr>'.'</table>';
echo $strTable;
?>
</p>
<? if (isset($_SESSION["userID"])) { ?>
<center>
<input name="btnReset"class="but_mid_green4" type="reset" id="btnReset" value="CLEAR" />
<input name="btnSubmit" class="but_mid_green4" type="submit" id="btnSubmit" value="BOOK NOW >>" disabled="disabled" onClick="return confirm ('ยืนยันการจอง')" />
</center>
<? } ?>
<? if ($_GET['btnSubmit'])
{
$strchk = $_GET["chk"];
for($i= 0;$i < count($strchk[$i]);$i++)
{
if(trim($strchk[$i]) != "")
{
for ($j= 0 ;$j < count($strchk) ;$j++)
{
$no = explode ("_",$strchk[$j]);
$text1 = $no[0];
$text2 = $no[1];
$text3 = $no[2];
$text4 = $no[3];
$text5 = $no[4];
$text6 = $no[5];
$s = "INSERT INTO booking (fieldID,timeID,date,userID,date2book,time2book) VALUES ('$text1','$text2','$text3','$text4','$text5','$text6')" ;
$q = mysql_query ($s) or die (mysql_error());
}
}
}
}
Tag : PHP, MySQL
|
|
|
|
|
|
Date :
2014-06-09 23:02:59 |
By :
jpong7 |
View :
4003 |
Reply :
6 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขอบคุณครับคุณ Alan ผม Join ตารางได้มา 3 ฟิลด์แล้วครับ แต่ติดปัญหาตรงเรื่อง LOOP อ่ะครับ คือมันวนขึ้นทั้งหมดเลยครับ
ตรง Loop Foreach ควรจะเขียนยังไงดีอ่ะครับ
$sql ="SELECT booking.bookingID, booking.userID, booking.fieldID, booking.timeID, time.time_name, booking.date, booking.date2book, booking.time2book
FROM booking
INNER JOIN time ON booking.timeID = time.timeID
WHERE date = '{$date}'
ORDER BY time.time_name";
$query=mysql_query($sql) or die (mysql_error);
$num = mysql_num_rows($query);
$run = 0;
foreach($arrTime as $time)
{
$time_now = date("H:i:s");
$date_now = date ("Y-m-d");
// ==== เมื่อมีการจอง ======
if ($date == $date_now && $time['time_name'] < $time_now && $time ["time_name"] == mysql_result($query,$run,'time_name' )) //ติดเงื่อนไขนี้อ่ะครับ ควรเขียนยังไงดีครับ
{
$strTable.='<td><font color="orange"><b>จองแล้ว</b></font></td>';
$run++;
}
}
|
ประวัติการแก้ไข 2014-06-10 16:07:38 2014-06-10 16:11:19
|
|
|
|
Date :
2014-06-10 16:06:11 |
By :
jpong7 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ผมว่าลองเปลี่ยนจาก
WHERE date = '{$date}'
เป็น
WHERE fieldID = '{$f_name[fieldID]}' AND date = '{$date}'
น่าจะช่วยได้ครับ
|
|
|
|
|
Date :
2014-06-10 17:00:10 |
By :
Alan |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
กดจองแล้วมันไม่ลงล็อคอ่ะครับ ไม่ตรงตามเวลาครับ เดี๋ยวลองดูใหม่ครับ ขอบคุณมากครับคุณ alan
|
ประวัติการแก้ไข 2014-06-10 17:23:04
|
|
|
|
Date :
2014-06-10 17:11:31 |
By :
jpong7 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ได้แล้วครับ ขอบคุณคุณ alan มากๆครับ น้ำตาจะไหล TT
|
|
|
|
|
Date :
2014-06-10 17:38:20 |
By :
jpong7 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
อยากได้โค้ดบ้างจังค่ะ แอดFacebook มาสอนได้ไหมค่ะ กำลังจะทำโปรเจคจบ ระบบการจองสนามฟุตบอล รบกวนน่อยค่ะ Facebook ชื่อ นฤมล เรืองสุข หรือLine : neslovekik
|
|
|
|
|
Date :
2015-11-25 00:04:46 |
By :
Gik |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 02
|