Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 109,027

HOME > PHP > PHP Forum > อยากถามเรื่องการตรวจสอบค่าซ้ำของทุกแถว ยกเว้นแถวที่กำลังทำการแก้ไขไม่ต้องตรวจสอบ



 

อยากถามเรื่องการตรวจสอบค่าซ้ำของทุกแถว ยกเว้นแถวที่กำลังทำการแก้ไขไม่ต้องตรวจสอบ

 



Topic : 032305



โพสกระทู้ ( 613 )
บทความ ( 0 )



สถานะออฟไลน์




ผมติดปัญหาการตรวจสอบค่าซ้ำของทุกแถว ยกเว้นแถวที่กำลังทำการแก้ไขไม่ต้องตรวจสอบ

เพราะถ้าตรวจสอบแล้วมันไม่สามารถบันทึกได้ เช่น

แถวที่ต้องการแก้ไขมีข้อมูลอยู่ว่า วันที่ 2009-10-01 เวลา 3 ห้อง 3 เปลี่ยนเป็น วันที่ 2009-10-01 เวลา 2 ห้อง 3

******** เวลา 1=เช้า, 2=บ่าย, 3=เช้า-บ่าย ********

มันไปตรวจสอบทุกแถว รวมทั้งแถวที่ต้องการแก้ไขด้วย พอจะมีวิธีไหนบ้างไหมครับ ที่จะไม่ให้ตรวจสอบแถวที่ต้องการแก้ไข



Tag : - - - -







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2009-09-27 20:43:16 By : oasiis View : 1202 Reply : 9
 

 

No. 1



โพสกระทู้ ( 381 )
บทความ ( 0 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Twitter Facebook

ก็คงต้องทำ ฟิลด์ status เพิ่มขึ้นมาอีก 1 ฟิลด์ครับ
เมื่อทำการแก้ไข เรคคอร์ดใดขึ้น ก็ทำการ Update สถานะของเรคคอร์ดนั้นแล้วค่อยทำการ Select ข้อมูลขึ้นมา แก้ไข เมื่อทำการแก้ไขแล้วเสร็จ หรือกดปุ่ม(Submit) ก็ทำการ Update สถานะของเรคคอร์ดนั้นกลับไปเป็นเหมือนเดิม อย่างเช่น

0 = ปกติ
1 = แก้ไข






Date : 2009-09-27 21:24:08 By : extenser
 


 

No. 2



โพสกระทู้ ( 1,463 )
บทความ ( 1 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Twitter Blogger

$r = mysql_query("SELECT * FROM tb WHERE date_column_name='2009-10-01' AND id <> 'id ที่กำลังแก้ไข' ");
if (mysql_num_rows($r) > 0){
//not allow to save
}else{
mysql_query("UPDATE ...");
}

ใช่แบบนี้ป่าวหว่า เดาเอา แหะๆ
Date : 2009-09-27 21:36:41 By : num
 

 

No. 3



โพสกระทู้ ( 613 )
บทความ ( 0 )



สถานะออฟไลน์


โค้ดเป็นแบบนี้ครับ แต่ไม่รู้จะเพิ่มคำสั่งอะไรตรงไหน เพื่อไม่ให้ตรวจสอบในแถวที่กำลังแก้ไข

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]"; 
$unt="$_POST[txtunit]";


$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);

//echo $select;

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>

Date : 2009-09-27 21:58:36 By : oasiis
 


 

No. 4



โพสกระทู้ ( 1,463 )
บทความ ( 1 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Twitter Blogger

บรรทัด

$select="SELECT * FROM tbres WHERE room='$rr' AND use_date='$uu' ";

แทนด้วย

$select="SELECT * FROM tbres WHERE (room='$rr' AND use_date='$uu') AND NOT (unit = '".$_POST["txtunit"]."'AND res_ing= '".$_POST["namerestxt"]."')";

ครับ
Date : 2009-09-27 23:11:48 By : num
 


 

No. 5



โพสกระทู้ ( 613 )
บทความ ( 0 )



สถานะออฟไลน์


ยังไม่ได้ครับ

มันไม่เข้าเงื่อนไขอ่ะครับ
Date : 2009-09-27 23:21:39 By : oasiis
 


 

No. 6



โพสกระทู้ ( 1,463 )
บทความ ( 1 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Twitter Blogger

ขอตัวอย่าง input และโปรแกรมนี้ให้ผลลัพธ์ไม่ตรงกับที่ต้องการอย่างไรครับ
Date : 2009-09-27 23:40:09 By : num
 


 

No. 7



โพสกระทู้ ( 613 )
บทความ ( 0 )



สถานะออฟไลน์


ผมลองแก้ไข ดูแล้วสามารถจองซ้ำได้ในวัน เวลา เดียวกันอยู่ครับ

แล้วเมื่อมันซ้ำ กันมันจะลบข้อมูลที่เหมือนกัน ไป 1 แถว
Date : 2009-09-27 23:47:55 By : oasiis
 


 

No. 8



โพสกระทู้ ( 1,463 )
บทความ ( 1 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Twitter Blogger

แบบนี้ได้ยังครับ แหะๆ

<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]"; 
$unt="$_POST[txtunit]";


$select="SELECT * FROM tbres WHERE (room='$rr' AND use_date='$uu')";
$result=mysql_query($select);
//echo $select;

$d=date('Y-m-d');
//mี่ต้องใช้ loop เพราะถ้าใช้ if อาจจะข้ามการตรวจสอบ บาง record ไป
//เนื่องจากในห้องและในวันที่หนึ่งๆ อาจจะมี การบันทึกไว้ 2 record ก็ได้
//เช่น เช้า และ บ่าย แยกกัน
while($row = mysql_fetch_assoc($result)){
	if ($row['unit']==$_POST['txtunit'] && $row['res_ing']==$_POST['namerestxt']
		&& $row['time_res'] == $_POST['timedll']
	){
		//ข้ามการตรวจสอบ record เดียวกัน  (ที่ไม่ได้มีการเปลี่ยนแปลง time_res )
		continue;
	}
	$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{
		}		
	}
}

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>

Date : 2009-09-28 00:24:08 By : num
 


 

No. 9



โพสกระทู้ ( 613 )
บทความ ( 0 )



สถานะออฟไลน์


ได้แล้วครับ ขอบคุณมากเลยครับ ดีใจมากเลย

ขอรบกวนอีกเรื่องครับ

ถ้าผมอยากให้ รหัสการจองเป็นตัวเลขอ่ะ เรียงลำดับไปเรื่อยๆ 1 2 3 4 5 6 7 8 9 10 11 12 โดยไม่เป็นแบบ auot เป็นเพียง int เฉยๆ

แล้วผมเมื่อลบ 5 9 ไป ก็จะเหลือ 1 2 3 4 6 7 8 10 11 12 แล้วเมื่อผมเพิ่มข้อมูลเพิ่มอีก 1 record อยากให้รหัสการจอง +1 ไปเรื่อยๆ

หาค่าที่หายไป คือ 5 ให้เพิ่ม 5 ลงไป จะต่อเขียนโค้ดยังไงครับ
Date : 2009-09-28 00:28:35 By : oasiis
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : อยากถามเรื่องการตรวจสอบค่าซ้ำของทุกแถว ยกเว้นแถวที่กำลังทำการแก้ไขไม่ต้องตรวจสอบ
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)







Exchange: นำเข้าสินค้าจากจีน, Taobao, เฟอร์นิเจอร์, ของพรีเมี่ยม, ร่ม, ปากกา, power bank, แฟลชไดร์ฟ, กระบอกน้ำ

Load balance : Server 00
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2024 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่