 |
ช่าวผมหน่อยครับ Database เรื่องดึงค่าPrimary Keyมาใช้ครับ |
|
 |
|
|
 |
 |
|
http://dev.mysql.com/doc/refman/5.0/en/insert-select.html
ลองดู syntax นี้ครับใช้แค่ sql ในการ insert จากการ select ข้อมูลที่มีอยู่แล้วครับ
|
 |
 |
 |
 |
Date :
2013-12-07 17:40:45 |
By :
num |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ผมไม่ค่อยเข้าใจเลยครับ
|
 |
 |
 |
 |
Date :
2013-12-08 00:03:54 |
By :
nonzabboy |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ไม่ทราบว่ามีฟิลด์อะไรบ้างเลยจะยกตัวอย่างให้ดูนะครับ
insert into tb_contact(name,phone)
select first_name,mobile_phone from tb_user;
============================================
name คู่กับ first_name
phone คู่กับ mobile_phone
ข้างบนนี้จะเป็นการคัดลอกข้อมูล จาก tb_user ทุกแถวไปลงไว้ในตาราง tb_contact
ถ้า tb_user มี 100 แถว
หลังจาก run คำสั่งด้านบน ตาราง tb_contact ก็จะมีจำนวนแถวเพิ่มขึ้น 100 แถวเหมือนกันครับ
|
 |
 |
 |
 |
Date :
2013-12-08 00:28:50 |
By :
num |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ครับ
มีตาราง chicken
ฟิลด์ chicken_ID เป็นPrimary Key
และตาราง dominant_feature เป็น foreign key
ฟิลด์ คือ chicken_ID
ครับ
|
 |
 |
 |
 |
Date :
2013-12-08 00:50:30 |
By :
nonzabboy |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ผมลองแล้วต้องเอา
insert into tb_contact(name,phone)
select first_name,mobile_phone from tb_user;
ใส่ลงไปใน sql ช่ายป่าวครับ
ผมอยากเวลา กดบันทึกแล้ว ดึงค่ามาใส่เลยอะครับ
|
 |
 |
 |
 |
Date :
2013-12-08 16:06:35 |
By :
nonzabboy |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
จะบันทึกลงตารางหลัก แล้วก็ตารางที่เป็น FK ใช่ป่ะ ลองศึกษาพวก mysql_insert_id ดู
|
 |
 |
 |
 |
Date :
2013-12-08 16:24:28 |
By :
Krungsri |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ครับ บันทึกลง primarykey พร้อมกับดึงค่าจากตารางprimarykeyมาลงในตารางFK ครับ
|
 |
 |
 |
 |
Date :
2013-12-08 16:51:31 |
By :
nonzabboy |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
$sql = 'insert into chicken(.รายชื่อฟิลด์..) values(.รายการค่าของฟิลด์..)';//ใส่ชื่อฟิลด์และค่าให้ครบ
$rs = mysql_query($sql);
$chicken_id = mysql_insert_id();//$chicken_id = ค่า Checken_ID ของการ insert ครั้งแรก
$sql = "insert into dominant_feature(Chicken_ID,Organ_ID,Color_ID,C_Percenttage) values('$chicken_id','1','1','1')");
mysql_query($sql);
|
ประวัติการแก้ไข 2013-12-08 17:52:57 2013-12-08 17:53:18
 |
 |
 |
 |
Date :
2013-12-08 17:52:22 |
By :
num |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
$strSQL = "INSERT INTO chicken(Sex,DOB,Weight,Height,Room_No) VALUES ('".$_POST["sex"]."','".$DOB."','".$_POST["textWeight"]."','".$_POST["textHeight"]."','".$_POST["textRoom_No"]."')";
$chicken_id = mysql_insert_id();
$sql_add = "INSERT INTO dominant_feature (Chicken_ID,Organ_ID,Color_ID,C_Percentage) VALUES ('".$chicken_id."')";
$objQuery = mysql_query($strSQL) or die (mysql_error());
$objQuery1 = mysql_query($sql_add) or die (mysql_error());
อย่างนี้ใช่ป่าวครับ
ผมลองแล้วยังไม่เข้าเลยอะครับ
|
 |
 |
 |
 |
Date :
2013-12-09 00:48:29 |
By :
nonzabboy |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
กดบันทึกแล้ว ตาราง chicken ฟิลด์chicken_IDขึ้นเป็น32

แต่ ตาราง dominant_feature ฟิลด์chicken_ID เป็น0 อะครับ มันไม่เป็น 32 เหมือนตาราง chicken อะครับ

|
 |
 |
 |
 |
Date :
2013-12-09 00:57:47 |
By :
nonzabboy |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
Code (PHP)
$strSQL = "INSERT INTO chicken(Sex,DOB,Weight,Height,Room_No) VALUES ('".$_POST["sex"]."','".$DOB."','".$_POST["textWeight"]."','".$_POST["textHeight"]."','".$_POST["textRoom_No"]."')";
$objQuery = mysql_query($strSQL) or die (mysql_error());
$chicken_id = mysql_insert_id();
$sql_add = "INSERT INTO dominant_feature (Chicken_ID,Organ_ID,Color_ID,C_Percentage) VALUES ('".$chicken_id."')";
$objQuery1 = mysql_query($sql_add) or die (mysql_error());
สลับตำแหน่งครับเพราะ mysql_insert_id() จะมีค่าต่อเมื่อมีการ insert เกิดขึ้นก่อนหน้าครับ
|
 |
 |
 |
 |
Date :
2013-12-09 01:01:53 |
By :
num |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ผมขอบคุณพี่มากๆๆๆเลยนะครับ ขอบคุณจิงง
|
 |
 |
 |
 |
Date :
2013-12-09 01:33:46 |
By :
nonzabboy |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
|
|