|
|
|
เราจะเช็คการป้อนข้อมูลซ้ำได้ยังไงคับ ถ้าเรามี table ที่มีข้อมูลอยู่แล้ว แล้วต้องการเพิ่มข้อมูล |
|
|
|
|
|
|
|
ผมเขียน code ไว้อย่างนี้คับ
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<?php
//............................................ติดต่อ Database...................................
$con=mysql_connect("localhost");
mysql_select_db("db_zts");
$type_id=$_REQUEST["type_id"];
$type=$_REQUEST["type"];
//.............................................บันทึกข้อมูล.......................................
$sql="INSERT INTO type_ofbusiness VALUES('$type_id','$type')";
$result=mysql_query($sql);
if(!$result){
echo"<table width=\"650\"align=\"center\"><br><tr><td><center><font color=\"#FF0000\" size=\"3\">.....ไม่สามารถบันทึกข้อมูลได้.....</font></td></tr></table>";
return;
}else{
echo"<table width=\"650\"align=\"center\"><br><tr><td><center><font color=\"#FF0000\" size=\"3\">....บันทึกข้อมูลเสร็จสมบูรณ์......</font></td></tr></table>";
return;
}
?>
แล้วต้องเขียน code ให้มันฟ้อง error เวลาที่เราเพิ่มข้อมูลที่มีอยู่แล้วยังไงคับ รบกวนด้วยคับ
|
|
|
|
|
Date :
21 ธ.ค. 2550 16:02:33 |
By :
maruk |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
$sql = "select type from type_ofbusiness where type = $type" ;
$result = mysql_query($sql,conn);
if($result != 0)
{
echo "มีข้อมูลแล้ว";
}
else
{
$sql="INSERT INTO type_ofbusiness VALUES('$type_id','$type')";
}
ลองดูนะไม่รู้ว่าถูกเปล่า อิอิ
|
|
|
|
|
Date :
21 ธ.ค. 2550 16:28:53 |
By :
Namfar |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ง่ายกว่าการ select ข้อมูลมากครับ
หลักการของการป้องกันข้อมูลซ้ำมีวิธีง่าย ๆ ดังนี้ครับ
1.ใช้ฟิลด์ที่เป็น Primary Key ให้เป็นประโยชน์ โดยข้อดีของฟิลด์ที่เป็น Primary Key คือข้อมูลในฟิลด์นี้ห้ามซ้ำกันเด็ดขาด ถ้า Insert ข้อมูลที่มีอยู่แล้วนะไม่มีทางได้เด็ดขาดครับ
2.ใช้คำสั่ง php ที่ใช้คิวรี่ข้อมูลจะมีคำสั่ง or die อยู่ ซึ่งมันจะช่วยให้การคิวรี่ข้อมูลที่ไม่สำเร็จแจ้งผลข้อผิดพลาดกลับมาครับ
mysql_connect(host,user,pass) or die(error message)
mysql_query(sql) or die (error message)
mysql_select_db(databasename) or die (error message)
|
|
|
|
|
Date :
23 ธ.ค. 2550 04:29:55 |
By :
คนไม่รู้ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Code (PHP)
<?php
?>
|
|
|
|
|
Date :
2009-04-22 15:00:00 |
By :
ppppop |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
มั่วกันทั้งนั้น..โง่ยังเสือกอวดกันอีก
คนเค้ามาหาความรู้ ไม่มีความรู้ก็อย่าแสดงความโง่ออกมา
|
|
|
|
|
Date :
2010-06-18 16:44:14 |
By :
เค |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ถึง No5 นะครับ ผมก็คิดว่าถ้าคุณรู้ว่าปัญหาของ จขกท. คืออะไรทำไมคุณไม่ช่วยเขาหน่อยล่ะครับ
ผมว่าอย่างน้อยก็ยังดีกว่า เดินมาติแล้วก็หายไปอ่ะครับ
ถึง จขกท.
ผมว่าคุณก็ลองกำหนดคอลัมส์ของตาราง type เป็นสาม คอลัมส์แล้วให้คอลัมส์หนึ่งเป็น PK แล้วทำการ set ค่าให้เป็น auto_increment ครับ แล้วส่วน
อีกสองคอลัมส์คุณก็ใส่ค่าที่กูต้องการลงไป
สงสัยก็สอบถามเพิ่มเติมได้ครับผม
|
|
|
|
|
Date :
2010-06-18 17:11:25 |
By :
oxygenyoyo |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ตามที่คุณ OxyGenyoyo บอกเลยครับ
คือ สร้าง 2 ฟิวด์ก็ได้เช่น
type_id , type_name แล้วกำหนดให้ type_id เป็น PK
แล้วเขียนโค้ดเป็น
$sql="insert into (type_id,type_name) values ('1','สินค้า')";
if(mysql_query($sql)){
echo"เพิ่มข้อมูลสำเร็จ";
}else{
echo"ชนิดของสินค้าซ้ำ";
}
เพราะถ้าเรากำหนด ฟิวด์แรกเป็น PK มันจะไม่สามารถซ้ำกันได้ มันจึงไม่สามารถเพิ่มค่าได้ เลยแสดงเออเร่อครับ
|
|
|
|
|
Date :
2010-06-18 17:39:47 |
By :
dekcomnvc |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 00
|