อยากถามเรื่องการแก้ไข และบันทึกข้อมูล โดยที่เช็คเงื่อนไขว่ามีค่าซ้ำกันหรือไม่ แล้วค่อยบันทึก แต่ไม่ต้องเซ็คเงื่อนไขในแถวที่กำลังจะแก้ไข
** เงื่อนไง 1=จองเวลาเช้า, 2=จองเวลาบ่าย, 3=จองทั้งเช้าทั้งบ่าย
1. จอง 1 สามารถจอง 2 ได้ แต่ไม่สามารถจอง 3 ได้
2. จอง 2 สามารถจอง 1 ได้ แต่ไม่สามารถจอง 3 ได้
3. จอง 3 ไม่สามารถจอง 2 ได้ และ 3 ได้
แต่ปัญหาตอนนี้คือ ตอนเช็คเงื่อนไขการส่งค่ามา ก่อนทำการบันทึก มันดันไปอ่านค่าในแถวที่ต้องการแก้ไขด้วยน่ะสิครับ
สมมุติว่า ผมจะแก้ไขวันที่ 2009-05-01 เวลา=3 ห้อง=1 เพื่อเปลี่ยนเป็น วันที่ 2009-05-01 เวลา=2 ห้อง=1
มันไม่ให้ทำการบันทึก เนื่องกจากมันอ่านแถวที่กำลังแก้ไขด้วยสิ ทำให้บันถึงไม่ได้
ผมอยากให้มันตรวจสอบทุกแถวว่ามีค่าซ้ำมั้ย? แต่ไม่อยากให้มันอ่านแถวที่กำลังแก้ไข เพราะถ้ามันอ่านแถวที่กำลังแก้ไขด้วย มันจะไม่สามารถบันทึกได้ ตามตัวอย่าง "ผมจะแก้ไขวันที่ 2009-05-01 เวลา=3 ห้อง=1 เพื่อเปลี่ยนเป็น วันที่ 2009-05-01 เวลา=2 ห้อง=1"
***ไม่ทราบว่าต้องแก้โค้ดในส่วนไหนมันถึงจะลงตัวทุกเงื่อนไขครับ***
Code (PHP)
<html>
<head>
<title>ระบบจองห้องประชุม สำนักงานจังหวัดลำปาง</title>
<link rel="icon" href="pic/logo.gif" type="image/gif" >
</head>
<body>
<?
$objConnect = mysql_connect("localhost","root","1234") or die("Error Connect to Database");
$cs1 = "SET character_set_results=tis620";
mysql_query($cs1) or die('Error query: ' . mysql_error());
$cs2 = "SET character_set_client = tis620";
mysql_query($cs2) or die('Error query: ' . mysql_error());
$cs3 = "SET character_set_connection = tis620";
mysql_query($cs3) or die('Error query: ' . mysql_error());
$objDB = mysql_select_db("test");
$rr="$_POST[roomddl]";
$uu="$_POST[txtdate]";
$timeSts="$_POST[timedll]"; // 1=เช้า ,2=บ่าย, 3=เช้า-บ่าย
$name="$_POST[namerestxt]";
$select="SELECT * FROM tbres WHERE room='$rr' AND use_date='$uu'";
$result=mysql_query($select);
$row=mysql_fetch_array($result);
$num=mysql_num_rows($result);
if($num >0 ){
$sts= $row["time_res"];
if($sts=="3"){
echo "<script>alert(' ไม่สามารถจองห้องนี้ได้ เนื่องจากมีการมีการจองไว้ทั้งวัน');window.location='list_admin.php';</script>";exit(); //ถ้าใน row นั้นมีค่าเท่ากับ 3 ไม่สามารถจองได้ ทั้ง 1 และ 2
}
if($sts==$timeSts){
echo "<script>alert(' ไม่สามารถจองห้องนี้ ในช่วงเวลานี้ได้ เนื่องจากมีการมีจองไว้แล้ว');window.location='list_admin.php';</script>";exit(); // ค่าที่ POST มามีค่าเท่ากับใน row ไม่สามารถจองได้
}else{
if($timeSts==3){
echo "<script>alert(' ไม่สามารถจองห้องนี้ ในช่วงเวลานี้ได้ เนื่องจากมีการมีจองไว้แล้ว');window.location='list_admin.php';</script>";exit(); // ค่าที่ส่งมามีค่าเท่ากับ 3 ไม่สามารถจองได้
}else{
}
}
}
$d=date('Y-m-d');
if ($uu<=$d){
echo "<script>alert(' !!! คุณไม่สามารถจองห้องย้อนหลังได้ !!! ');window.location='list_admin.php';</script>";exit();
}else{
}
if ($name==""){
echo "$name";
echo "<script>alert(' !!! คุณไม่ได้ใส่ชื่อผู้จอง !!! ');window.location='list_admin.php';</script>";exit();
}else{
$strSQL = "UPDATE tbres SET ";
$strSQL .="room = '".$_POST["roomddl"]."' ";
$strSQL .=", log_date = CURDATE() ";
//$strSQL .="log_date = .CURDATE(). ";
$strSQL .=",use_date = '".$_POST["txtdate"]."' ";
$strSQL .=",time_res = '".$_POST["timedll"]."' ";
$strSQL .=",res_ing = '".$_POST["namerestxt"]."' ";
$strSQL .=",unit = '".$_POST["txtunit"]."' ";
$strSQL .=" WHERE unit = '".$_POST["txtunit"]."'AND res_ing= '".$_POST["namerestxt"]."'";
//echo "$_GET[use_date]";
//$objQuery = mysql_query($strSQL);
$objQuery = mysql_query($strSQL) or die(mysql_error());
if($objQuery)
{
echo "$strSQL";
echo "<script>
alert('บันทึกได้แล้ว');
window.location='list_admin.php';
</script>";
exit();
}
else
{
echo "<script>
alert('บันทึกไม่ได้');
window.location='list_admin.php';
</script>";
exit();
}
}
mysql_close($objConnect);
?>
</body>
</html>
Tag : - - - -
Date :
2009-09-25 18:35:33
By :
oasiis
View :
1327
Reply :
5
ไม่มีคนช่วยผมเลยหรอครับ
Date :
2009-09-25 20:32:59
By :
oasiis
ไม่รู้ว่าอย่างนี้จะได้เปล่านะครับ ลองดูนะครับ
<?
$rr="$_POST[roomddl]";
$uu="$_POST[txtdate]";
$timeSts="$_POST[timedll]"; // 1=เช้า ,2=บ่าย, 3=เช้า-บ่าย
$name="$_POST[namerestxt]";
$date=date('Y-m-d');
//-เช็คค่าว่างของชื่อ
if($name==""){
echo "กรุณาใส่ชื่อ";
exit();
}
if ($uu<=$date){
echo "ไม่สามารถจองย้อนหลังได้";
exit();
}
// เช็คห้องกับวันตามเงื่อนไข
$select="SELECT * FROM tbres WHERE room='$rr' AND use_date='$uu'";
$result=mysql_query($select);
$row=mysql_fetch_array($result);
$num=mysql_num_rows($result);
$sts= $row["time_res"];
if($num >'0' && $timeSts=='3' ){
echo "<script>alert(' ไม่สามารถจองห้องนี้ ในช่วงเวลานี้ได้ เนื่องจากมีการมีจองไว้แล้ว');window.location='list_admin.php';</script>";exit(); // ค่าที่ส่งมามีค่าเท่ากับ 3 ไม่สามารถจองได้
}else if($sts=="3"){
echo "<script>alert(' ไม่สามารถจองห้องนี้ได้ เนื่องจากมีการมีการจองไว้ทั้งวัน');window.location='list_admin.php';</script>";exit(); //ถ้าใน row นั้นมีค่าเท่ากับ 3 ไม่สามารถจองได้ ทั้ง 1 และ 2
}else if($sts==$timeSts){
echo "<script>alert(' ไม่สามารถจองห้องนี้ ในช่วงเวลานี้ได้ เนื่องจากมีการมีจองไว้แล้ว');window.location='list_admin.php';</script>";exit(); // ค่าที่ POST มามีค่าเท่ากับใน row ไม่สามารถจองได้
}else{
$strSQL = "UPDATE tbres SET ";
$strSQL .="room = '".$_POST["roomddl"]."' ";
$strSQL .=", log_date = CURDATE() ";
$strSQL .=",use_date = '".$_POST["txtdate"]."' ";
$strSQL .=",time_res = '".$_POST["timedll"]."' ";
$strSQL .=",res_ing = '".$_POST["namerestxt"]."' ";
$strSQL .=",unit = '".$_POST["txtunit"]."' ";
$strSQL .=" WHERE unit = '".$_POST["txtunit"]."'AND res_ing= '".$_POST["namerestxt"]."'";
$objQuery = mysql_query($strSQL) or die(mysql_error());
}
?>
Date :
2009-09-26 00:23:56
By :
onizike
ไม่ได้ครับ
Date :
2009-09-26 09:41:55
By :
oasiis
ทำไม่ได้ครับ งง ไม่รู้ว่าจะต้องทำแบบไหน ???????????
Date :
2009-09-26 09:53:57
By :
oasiis
ช่วยหน่อยครับ
Date :
2009-09-27 20:31:12
By :
oasiis
Load balance : Server 03