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,037

HOME > PHP > PHP Forum > ต้องการตรวจเช็คค่าซ้ำ การฟอร์มแก้ไขข้อมูล ก่อนบันทึกลงฐาน



 

ต้องการตรวจเช็คค่าซ้ำ การฟอร์มแก้ไขข้อมูล ก่อนบันทึกลงฐาน

 



Topic : 026265



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



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




สวัสดี พี่ทุกคน
คือว่าเขียนฟอร์มการแก้ไขข้อมูลแล้ว อยากตรวจเช็คค่าว่าห้ามซ้ำกับข้อมูลของ record อื่นๆ ที่มีอยู่ในฐานแล้ว
โดยจะเช็คห้ามซ้ำบางฟิลด์ เช่น ฟิลด์ Serial No., และฟิลด์ Mac Address

โค๊ดที่เขียนสามารถแก้ไขข้อมูลของ record นั้น ๆ ลงในฐานได้ แต่ไม่ต้องการให้บางฟิลด์ไปซ้ำกับ record อื่น ได้พยายามหากระทู้เก่า ๆ จากเว็บนี้แล้ว หาไม่ได้เลยนะค่ะ รบกวนช่วยเหลือสักหน่อยนะค่ะ ขอขอบคุณมากค่ะ

-------------------------------------------------------------
File : AddCmp.php
-------------------------------------------------------------
<?php
$hostName = "localhost";
$userName = "user";
$passWord = "user";
$conn = mysql_connect($hostName, $userName, $passWord) or die ("ไม่สามารถติดต่อ Server ได้");
		mysql_query("SET NAMES utf8", $conn);
		mysql_query("USE db_testcmp");

	$sql = "SELECT * FROM tb_datacmp ORDER BY cmpID ASC"; 
	$result = mysql_query($sql) or die ("$sql_Error");
    $row = mysql_fetch_array($result);
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>:: ADD Data Computer ::</title>
</head>
<body>
<form action="AddCmpSAVE.php" method="POST" name="formCMP" id="formCMP" >
  <p>Computer Name : <input name="textCmpName" type="text" id="textCmpName" value="<?=$row['cmpName'] ?>"  />
  <p>Serial No. : <input name="textSN" type="text" id="textSN" value="<?=$row['SN'] ?>"/>
  <p>Mac Address : <input name="textMAC" type="text" id="textMAC" value="<?=$row['MacAddress'] ?>" />
  <p><input name="cmpID" type="hidden" id="textSN" value="<?=$row['cmpID'] ?>"/>
     <input name="UpdateData" type="submit" id="UpdateData " value=" Update Data  ">
</form>
</body>
</html>


-------------------------------------------------------------
File : AddCmpSAVE.php
-------------------------------------------------------------
<?php
$hostName = "localhost";
$userName = "user";
$passWord = "user";
$conn = mysql_connect($hostName, $userName, $passWord) or die ("ไม่สามารถติดต่อ Server ได้");
		     mysql_query("SET NAMES utf8", $conn);
		     mysql_query("USE db_testcmp");

$cmpID = $_POST["cmpID"];
$cmpname = $_POST["textCmpName"];
$sn= $_POST["textSN"];
$mac = $_POST["textMAC"];

		if((empty($cmpname))&&(empty($sn))&&(empty($mac))){
                echo "<script>alert('ข้อมูลไม่ครบ');history.back();</script>";
		        exit();
	       }
		   else{
                 $sql = "UPDATE tb_datacmp SET cmpName='$cmpname',SN='$sn',MacAddress='$mac' WHERE cmpID=$cmpID ";
                 $result = mysql_query($sql) or die  ("<script>alert('ไม่สามารถแก้ไขข้อมูลได้');history.back();</script>"); 
                echo "<script>alert('แก้ไขข้อมูลเรียบร้อยแล้ว');window.location='AddCmp.php';</script>";
            }
mysql_close($conn);
?>

-------------------------------------------------------------



Tag : - - - -







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2009-04-10 18:39:47 By : LukNam View : 27832 Reply : 11
 

 

No. 1



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



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


จากที่ดู นี่น่าจะเป็นการเรียกข้อมูลจากฐานข้อมูลมาแสดง แล้วทำการแก้ไข เสร็จแล้วก้อ ไป update ทับตัวเก่าใช่มะครับ ถ้าเป็นแบบนั้น ก้อไม่ต้องให้ user แก้ไข MacAddress กะ SN สิคับ

หรือไม่ ก้อกำหนดในฐานข้อมูลให้สองตัวนี้ เป็น Primary Key ครับ มันจะซ้ำกันไม่ได้ (ในกรณีที่ใช้ Insert)






Date : 2009-04-10 18:50:48 By : noomna19
 


 

No. 2



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



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


ขอขอบคุณสำหรับคำแนะนำนะค่ะ

แต่คงเป็นไปไม่ได้ เพราะอันที่จริงฟอร์มนี้จะมีช่องกรอกรายละเอียดมากกว่า แต่ช่องอื่นๆ มันให้ซ้ำได้ แต่สองช่องที่ว่ามานี้ ไม่อยากให้ซ้ำ เช่น หากเปลี่ยนชื่อเครื่องคอม ก็ไม่ต้องการให้ช่อง SN และช่อง Mac Address มันซ้ำกัน ข้อมูลจะเป็น ID เดิม แต่อาจจะมีการแก้ไขบางช่อง..
เคยไปกำหนดใน Database ให้เป็น Primary Key แล้ว แต่ก็มีบางข้อมูลบางรายการไม่มี SN และข้อมูลบางรายการก็ไม่มี Mac Address หากเป็นค่าว่าง ไม่ก็สามารถบันทีกลงไปได้อีก...

เกิดความสับสน งง มากว่าจะทำอย่างไรกันดีนะค่ะ...ขอขอบคุณพี่ ๆ ที่มาช่วยเหลือ
Date : 2009-04-10 19:32:10 By : LukNam
 

 

No. 3



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



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


อ๋อออ แบบนี้นี่เอง งั้นคงต้องตรวจสอบก่อนจะทำการอัพเดทล่ะครับ

Code (PHP)
<?php
$sql="Select * From tb_datacmp Where SN='".$sn."' or MacAddress='".$mac."'";  
$query=mysql_query($sql);
$row=mysql_num_rows($query);
if($row==0){
 // ทำการอัพเดทได้
}else{
 echo "<script>alert('SN หรือ MacAddress ซ้ำ กรุณาตรวจสอบ')</script>"; // ใส่ alert เลยครับ 
exit;
}
?>


แบบนี้อ่ะคับ (สงกรานต์ไม่ไปเที่ยวไหนหรอครับ )
Date : 2009-04-10 19:59:06 By : noomna19
 


 

No. 4



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



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


ขอขอบคุณมากเลยนะค่ะ...

จะพยายามศึกษาและเขียนให้ได้ หากไม่ได้อาจจะมารบกวนขอความช่วยเหลืออีกครั้ง
(สงกรานต์ก็อยากจะกลับบ้านค่ะ แต่คงต้องเอาโปรแกรมนี้ไปทำด้วย งานเร่งมากด้วย ก็เขียนไม่ค่อยจะเก่งเลย น่าเศร้า ๆ ๆ ๆ )
Date : 2009-04-10 21:12:08 By : LukNam
 


 

No. 5



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



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


เรียน พี่หนุ่มคุง

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

ถ้าเป็น ID เดิม น่าจะสามารถแก้ไขข้อมูลต่าง ๆ ได้ ยกเว้นแต่ฟิลด์ SN และ MacAddress
ไม่ควรจะซ้ำกับ ID อื่น ๆ ถ้าหาก ID อื่น ๆ นั้น ได้มี SN หรือ MacAddress ไม่ควรจะทำการแก้ไข ID นั้นได้
-------------------------------------------------------------
File : AddCmp.php
-------------------------------------------------------------
<?php
$hostName = "localhost";
$userName = "user";
$passWord = "user";
$conn = mysql_connect($hostName, $userName, $passWord) or die ("ไม่สามารถติดต่อ Server ได้");
		mysql_query("SET NAMES utf8", $conn);
		mysql_query("USE db_testcmp");
//  แบ่งหน้า
if(isset($_GET['page'])){
		$current_page= $_GET['page'];	
	}
	else{
		$current_page = 1;
	}
 	$page_size = 1;      // กำหนดจะให้แสดงกี่บรรทัดต่อหน้า
	$start_row = ($current_page- 1) * $page_size ;
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>:: ADD Data Computer ::</title>
</head>
<body>
<form action="AddCmpSAVE.php" method="POST" enctype="multipart/form-data" name="formCMP" id="formCMP" >
<?php 
      $sqlA = "SELECT * FROM tb_datacmp ORDER BY cmpID ASC LIMIT $start_row, $page_size"; 
	  $resultA = mysql_query($sqlA) or die ("$sql_Error");
           while($rowA= mysql_fetch_array($resultA)){
?> 
  <p>Computer ID : <input name="cmpID" type="text" id="textSN" value="<?=($rowA["cmpID"])?>" size="2" readonly />
  <p>Computer Name : <input name="textCmpName" type="text" id="textCmpName" value="<?=($rowA['cmpName'])?>"  />
  <p>Serial No. : <input name="textSN" type="text" id="textSN" value="<?=($rowA['SN'])?>"/>
  <p>Mac Address : <input name="textMAC" type="text" id="textMAC" value="<?=($rowA['MacAddress'])?>" />
<?php } ?>
  <hr align="left" width="300" size="2" color="#FF0000">
     <input name="UpdateData" type="submit" id="UpdateData " value="UpdateData">

<!------ แสดงผลจำนวนเรคคอร์ดของข้อมูล จำนวนหน้าและลิงค์หน้าต่อ ๆไป ------>
		<?
		//  จำนวนแถวทั้งหมด
			  $result = mysql_query("SELECT COUNT(*) FROM tb_datacmp");
		 //    $result = mysql_query($sql);
			 $num_rows = mysql_result($result,0,0);
		
		//  จำนวนเพจทั้งหมด
			 $num_pages = ceil($num_rows/$page_size);
			 $group_size = 1;     //  การแบ่งจำนวนกลุ่มต่อหน้า 
			 $current_group = ceil($current_page/$group_size);
		
			 echo "total&nbsp;<b>$num_rows</b>&nbsp;page&nbsp;&nbsp;";
			 echo "|&nbsp;&nbsp;<b>$current_page</b>/<b>$num_pages</b>";
		     echo "&nbsp;&nbsp;&nbsp&nbsp;&nbsp;&nbsp;&nbsp&nbsp&nbsp;&nbsp;&nbsp&nbsp";
			 
				 if($current_group  > 1){
			     //  กลุ่มหมายเลขเพจและลิงค์ Previous
					 $last_page_of_last_group = ($current_group - 1) * $group_size;
					echo "<a href=$PHP_SELF?page=1><b>&laquo;</b>";
					echo "<a href=\"".$_SERVER['PHP_SELF'] ."?";
					echo "page=$last_page_of_last_group\" >&nbsp;<b>&#8249;</b></a>&nbsp;";
			}
			
			$first_page_of_current_group = (($current_group - 1) * $group_size) + 1;
			$last_page_of_current_group = $current_group * $group_size;
			
			if($last_page_of_current_group <= $num_pages){
				$end = $last_page_of_current_group;	
			}
			else{
				$end = $num_pages;	
			}
			for($i = $first_page_of_current_group; $i <= $end; $i++){
				//  หมายเลขของหน้าปัจจุบันไม่ต้องทำลิงค์
					if($i == $current_page){
						echo "&nbsp;<font color='red'>". $i ."</font>&nbsp;";
					}
					else{
						echo "<a href=\"".$_SERVER['PHP_SELF'] . "?";
						echo "page=$i\">". $i ."</a>&nbsp;";
					}
			}
			if($num_pages >  $last_page_of_current_group){
			
			//  กลุ่มหมายเลขเพจและลิงค์ Next 
				$first_page_of_next_group =  $last_page_of_current_group + 1;
					echo "<a href=\"".$_SERVER['PHP_SELF']."?";
					echo "page=$first_page_of_next_group\">&nbsp;<b>&#8250;</b>&nbsp;</a>&nbsp;";
					echo "<a href=$PHP_SELF?page=".$num_pages."><b>&raquo;</b></a> \n";
			}
		?>
</form>  
</body>
</html>


-------------------------------------------------------------
File : AddCmpSAVE.php
-------------------------------------------------------------
<?php
$hostName = "localhost";
$userName = "user";
$passWord = "user";
$conn = mysql_connect($hostName, $userName, $passWord) or die ("ไม่สามารถติดต่อ Server ได้");
		     mysql_query("SET NAMES utf8", $conn);
		     mysql_query("USE db_testcmp");

$cmpID = $_POST["cmpID"];
$cmpname = $_POST["textCmpName"];
$sn= $_POST["textSN"];
$mac = $_POST["textMAC"];

		     if((empty($cmpID))||(empty($cmpname))||(empty($sn))||(empty($mac))){
				   echo "<script>alert('ข้อมูลไม่ครบ กรุณากรอกให้ครบด้วย');history.back();</script>";
				   exit();
				  }else{
						$sql = "SELECT * FROM tb_datacmp WHERE SN='".$sn."' OR MacAddress='".$mac."'";   
						$query = mysql_query($sql); 
						$row = mysql_num_rows($query); 
				if($row == 0){ 
					 $sqlUP = "UPDATE tb_datacmp SET cmpName='$cmpname',SN='$sn',MacAddress='$mac' WHERE cmpID = $cmpID LIMIT 1";
					 $resultUP = mysql_query($sqlUP) or die  ("<script>alert('ไม่สามารถแก้ไขข้อมูลได้');history.back();</script>"); 
                          echo "<script>alert('แก้ไขข้อมูลเรียบร้อยแล้ว');window.location='AddCmp.php';</script>";
                   }else{ 
			 	          echo "<script>alert('SN หรือ Mac Address ซ้ำ กรุณาตรวจสอบ');history.back();</script>";    // ใส่ alert เลยครับ  
				         exit; 
			     }
           } 
mysql_close($conn);
?>

-----------------------------------------------------------------
Date : 2009-04-13 16:00:05 By : LukNam
 


 

No. 6



โพสกระทู้ ( 11,835 )
บทความ ( 10 )

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

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


Code (PHP)
<?php
$sql = "SELECT * FROM tb_datacmp WHERE (SN='".$sn."' OR MacAddress='".$mac."') AND cmpID != $cmpID";
$query = mysql_query($sql); 
if(mysql_num_rows($query) != 0){
//ซ้ำกับ record อื่นๆ
}else{
//ไม่ซ้ำ save โลด
}
?>

Date : 2009-04-18 16:14:48 By : plakrim
 


 

No. 7



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



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


ขอขอบคุณ คุณพี่ PlaKriM อย่างสูงเลยนะค่ะ ที่กรุณาช่วยเหลือ
ตอนนี้ได้ทำการทดสอบแล้ว ใช้ได้แล้วนะค่ะ ดีมากเลยนะ...

หวังเป็นอย่างยิ่งว่าคงไม่รบกวน และโอกาสหน้าอาจจะมารบกวนอีก คงไม่ว่าอะไรนะ
ขอบคุณมากค่ะ...!!!!

------------------------------------------------------------------
<?php
$hostName = "localhost";
$userName = "user";
$passWord = "user";
$conn = mysql_connect($hostName, $userName, $passWord) or die ("ไม่สามารถติดต่อ Server ได้");
mysql_query("SET NAMES utf8", $conn);
mysql_query("USE db_testcmp");

$cmpID = $_POST["cmpID"];
$cmpname = $_POST["textCmpName"];
$sn= $_POST["textSN"];
$mac = $_POST["textMAC"];

if((empty($cmpID))||(empty($cmpname))||(empty($sn))||(empty($mac))){
echo "<script>alert('ข้อมูลไม่ครบ กรุณากรอกให้ครบด้วย');history.back();</script>";
exit();
}else{
$sql = "SELECT * FROM tb_datacmp WHERE (SN='".$sn."' OR MacAddress='".$mac."') AND cmpID != $cmpID";
$query = mysql_query($sql);
if(mysql_num_rows($query) != 0){
echo "<script>alert('SN หรือ Mac Address ซ้ำ กรุณาตรวจสอบ');history.back();</script>";
exit();
}else{
$sqlUP = "UPDATE tb_datacmp SET cmpName='$cmpname',SN='$sn',MacAddress='$mac' WHERE cmpID = $cmpID LIMIT 1";
$resultUP = mysql_query($sqlUP) or die ("<script>alert('ไม่สามารถแก้ไขข้อมูลได้');history.back();</script>");
echo "<script>alert('แก้ไขข้อมูลเรียบร้อยแล้ว');window.location='AddCmp.php';</script>";
exit();

}
}
mysql_close($conn);
?>
------------------------------------------------------------------
Date : 2009-04-19 15:28:28 By : LukNam
 


 

No. 8

Guest


มีวิธีตรวจสอบรูปแแบบการกรอก mac address ไหมคับว่าถูกต้องตามรูปแบบหรือไม่
Date : 2012-01-20 18:30:51 By : lin2online
 


 

No. 9



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



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


ขอขอบคุณ พี่ PlaKriM เหมือนกันครับ ผมกำลังหาวิธีนี้เหมือนกัน คิดมาหลายวันคิดไม่ออกสักที่ขอบคุณพี่จริงๆๆ ครับ
Date : 2012-03-28 15:05:29 By : amkung
 


 

No. 10



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



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


การตรวจสอบรูปแบบการกรอก mac address ลองหา keyword พวก jquery validate remote ดูอะครับ
Date : 2012-03-28 15:08:36 By : amkung
 


 

No. 11



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



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


http://www.meiocodigo.com/projects/meiomask/ ลองศึกษาจากนี้ดูนะครับ การกรอก Mac address อะครับ
Date : 2012-03-28 15:11:12 By : amkung
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
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 อัตราราคา คลิกที่นี่