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 > สอบถาม การ insert ครับ โดยถ้า insert ข้อมูลที่มีอยู่ใน table แล้ว จะไม่สามารถ inset ซํ้าได้ ต้องใช้หลักการไหนครับ



 

สอบถาม การ insert ครับ โดยถ้า insert ข้อมูลที่มีอยู่ใน table แล้ว จะไม่สามารถ inset ซํ้าได้ ต้องใช้หลักการไหนครับ

 



Topic : 056403



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



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




ผม อยากทำการเช็ค ข้อมูลที่ insert เข้าไปแล้วถ้าใน table มีข้อมูลนั้นอยู่แล้ว จะไม่สามารถ insert ได้

หรือฟ้องว่ามีข้อมูลนั้นซํ้าแล้ว ประมาณนี้ง่ะครับ

จะให้หลักการ หรือ คำสั่งใน ช่วยในการเช็คเงื่อนไขนี้ดีครับ

ขอบคุณครับ

น้องแชมป์



Tag : PHP, MySQL







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2011-02-22 14:49:12 By : champweza View : 950 Reply : 5
 

 

No. 1



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

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

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

หลักการ คือ นำข้อมูลที่เป็น คีย์หลักที่ไม่สามารถซ้ำกันในฐานข้อมูลได้ ไปค้นหาในฐานข้อมูลก่อน ถ้าซ้ำกัน ก็แจ้งเตือน user ว่าซ้ำ ถ้าไม่ซ้ำ ก็ INSERT ข้อมูลไปค่ะ






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-02-22 14:54:45 By : ultrasiam
 


 

No. 2



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



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


ใช้คำสั่งไหนในการตรวจเช้ค ข้อมูลในฟิวที่ซํ้าหลอครับ

รบกวนหน่อยนะครับ

ขอบคุณครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-02-22 15:05:41 By : champweza
 

 

No. 3



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

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

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

สงสัยจะยังไม่เข้าใจที่บอกไปตอนแรก ^^ ไม่เป็นไรค่ะ เอาใหม่
จะรู้ได้ยังไงว่าข้อมูลที่จะ INSERT มันมีอยู่ในฐานข้อมูลหรือยัง ก็ต้องเข้าไปดูที่ฐานข้อมูลค่ะ แล้วจะเข้าไปยังไงล่ะ
มันก็คือการ query ข้อมูลนั่นแหละค่ะ เหมือนการค้นหา
สมมุติว่า คุณอยากรู้ว่า user_id=5 ในตาราง tbuser มันซ้ำ หรือเปล่า ก็ต้อง select ออกมาดูค่ะ

SELECT COUNT(user_id) FROM tbuser WHERE user_id=5

ถ้าผลลัพธ์ = 0 แสดงว่ายังไม่มี ถ้า > 0 แสดงว่ามีแล้วก็คือซ้ำ

ส่วนการเขียนโปรแกรมนั้น มันก็ทำได้หลายแบบ ที่นิยมกันตอนนี้คงจะเป็น Ajax อันนี้ก็ไม่แน่ใจนะคะอาจจะมีวิธีอื่นที่ดีกว่านี้
ลักษณะการทำงาน เหมือนกับ เวลาสมัครสมาชิกตามเว็บที่มีการเช็ค username ซ้ำ อะไรประมาณนั้น

เขียน ajax ส่งค่าไปคิวรี่ที่ ไฟล์ php อาจเช็คที่ OnBlur ของ Textfield ที่ป้อนรหัสก็ได้
ถ้าซ้ำ echo 1 ไม่ซ้ำ echo 0 Ajax ก็จะได้ ค่า 0 หรือ 1 เป็นค่าที่ response มา
คุณก็เอาค่าที่ได้มานี้มาเช็คอีกทีด้วย javascript

ถ้า response == 0 ก็ให้ทำงานต่อไป แต่ถ้าไม่ใช่ ให้แสดงข้อความว่า รหัสซ้ำ

ประมาณนี้ ส่วนจะเขียนโค้ดยังไงนั้น ลองศึกษาดูที่บทเรียนได้ค่ะ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-02-22 15:55:53 By : ultrasiam
 


 

No. 4



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

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

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

ตัวอย่างการตรวจสอบค่าซ้ำในฐานข้อมูลนะคะ

หน้า Form
Code (PHP)
<form id="form1" name="form1" method="post" action="">
  ID <input name="id" type="text" id="id" />
     <input type="button" name="Button" value="Check" onclick="doCallAjax(document.getElementById('id').value)" />
</form>

<script>
function doCallAjax(search_id) {
HttPRequest = false;
if (window.XMLHttpRequest) { // Mozilla, Safari,...
HttPRequest = new XMLHttpRequest();
	if (HttPRequest.overrideMimeType) {
	HttPRequest.overrideMimeType('text/html');
	}
} else if (window.ActiveXObject) { // IE

	try {
	HttPRequest = new ActiveXObject("Msxml2.XMLHTTP");
	} catch (e) {
		try {
		HttPRequest = new ActiveXObject("Microsoft.XMLHTTP");
		} catch (e) {}
	}
}

if (!HttPRequest) {
alert('Cannot create XMLHTTP instance');
return false;
}

var url = 'chk_same.php';
var pmeters ="id="+search_id;

HttPRequest.open('POST',url,true);
HttPRequest.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
HttPRequest.setRequestHeader("Content-length", pmeters.length);
HttPRequest.setRequestHeader("Connection", "close");
if(search_id!=""){
HttPRequest.send(pmeters);
}else{
alert("Please insert id")
}
	HttPRequest.onreadystatechange = function(){
		if(HttPRequest.readyState == 4) // Return Request
		{
			if(HttPRequest.responseText==0){
			alert("Not same");
			}else{
			alert("Same");
			}
		}
	}
}
</script>


ไฟล์เช็คค่าซ้ำ chk_same.php
chk_same.php
<?php
$host="localhost";
$username="root";
$passwd="";
$dbname="test";
$conn = mysql_pconnect($host,$username,$passwd)or die("Can't connect to Server");
mysql_select_db($dbname)or die("Can't connect to Database");
$sql = "SELECT COUNT(good_id) AS cid FROM good WHERE good_id=".$_POST["id"];
$query = mysql_query($sql)or die("Can't query");
$objquery = mysql_fetch_array($query);
echo $objquery['cid'];
?>



ลองเอาไปดัดแปลงใช้กันดูนะคะ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-02-22 16:43:34 By : ultrasiam
 


 

No. 5



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



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


ขอบคุณครับผม
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-02-22 16:46:39 By : champweza
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : สอบถาม การ insert ครับ โดยถ้า insert ข้อมูลที่มีอยู่ใน table แล้ว จะไม่สามารถ inset ซํ้าได้ ต้องใช้หลักการไหนครับ
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ 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 04
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 อัตราราคา คลิกที่นี่