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 > การทำรีเลชั่น ใน Mysql ผมมีปัญหาเกี่ยวกับการ เพิ่มลบข้อมูลในตาราง แม่ แต่ฟิลตารางลูกไม่ยอมแก้ไขตามไปด้วย ทีแรกนึกว่า ความสัมพันธ์ของ ตาราง ฐานข้อมูล Mysql



 

การทำรีเลชั่น ใน Mysql ผมมีปัญหาเกี่ยวกับการ เพิ่มลบข้อมูลในตาราง แม่ แต่ฟิลตารางลูกไม่ยอมแก้ไขตามไปด้วย ทีแรกนึกว่า ความสัมพันธ์ของ ตาราง ฐานข้อมูล Mysql

 



Topic : 006385

Guest




ผมมีปัญหาเกี่ยวกับการ เพิ่มลบข้อมูลในตาราง แม่ แต่ฟิลตารางลูกไม่ยอมแก้ไขตามไปด้วย ทีแรกนึกว่า ความสัมพันธ์ของ ตาราง ฐานข้อมูล Mysql จะ เป็น แบบ auto แต่ลองหลายครั้งไม่ใช่ ก็เลยอยากถาม ถึงวิธีการเขียน query สร้าง ความสัมพันธ์ใน ฐานข้อมูล mysql อะครับ
การสร้างความสัมพันธ์ ในฐานข้อมูล MySql ใช้คำสั่ง SQL แบบไหนบ้างครับ รบกวนด้วยนะครับ

แล้วก็ผมไปเปิด phpMyAdmin ไปพบคำว่า ความสามารถด้านความสัมพันธ์ของฐานข้อมูล ได้ถูกระงับไว้ตาม
เหตุผลที่แจ้งไว้ แต่เป็น ภาษาอังกฤษ อะครับอ่านแล้ว ไม่ทราบซิ้งพอ
รบกวนด้วยนะครับ แล้ววันเสาว์จะมาเปิดดูอีกครั้งนะครับ


Tag : - - - -







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 30 พ.ย. 2548 17:57:28 By : korndee View : 6195 Reply : 6
 

 

No. 1

Guest


ช่วยตอบกระทู้หน่อยครับ






Date : 3 ธ.ค. 2548 01:15:13 By : korndee
 


 

No. 2



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

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

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


เท่าที่ทราบนะคับ อย่างแรก type ของตารางต้องเป็น InnoDB คับ
แล้วพอกดดูที่โครงสร้าง (หลังจากกดเลือกตารางใดตารางหนึ่งแล้ว)
ด้านล่างข้างใต้โครงสร้าง มันจะมีเมนู 'มุมมองรีเลชัน' อยู่ (Relation view)
ก็กดเข้าไปเลยครับ ทีนี้ถ้าภายใน DB ของเรามีการกำหนด PK ไว้มากกว่า 1 ตาราง
มันก็จะขึ้นมาให้เราเลือกความสัมพันธ์ได้เลยครับ เราไม่ต้องเขียน code เอง

หรือ เขียน code ประมาณนี้ก็ได้คับ

CREATE TABLE child(id INT, parent_id INT,
INDEX par_ind (parent_id),
FOREIGN KEY (parent_id) REFERENCES parent(id)
ON DELETE CASCADE

ที่มานะคับ http://dev.mysql.com/doc/refman/5.0/en/innodb-foreign-key-constraints.html
Date : 7 ธ.ค. 2548 22:28:22 By : nut_t02
 

 

No. 3

Guest


ขอบคุณ คุณ Nut_t02 มากครับ ที่ช่วยให้คำชี้แนะ
Date : 8 ธ.ค. 2548 00:38:13 By : korndee
 


 

No. 4

Guest


พอมีรูปให้ดูรึป่าวค่ะ
Date : 2010-11-20 12:31:43 By : conan
 


 

No. 5



โพสกระทู้ ( 74,058 )
บทความ ( 838 )

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

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

Go to : MySQL Relation CasCade On Delete/On Update
Date : 2010-11-20 21:07:58 By : webmaster
 


 

No. 6



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



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


ถ้าท่านไม่เข้าใจ Database Relationship ผมมี function execute transaction sql string ให้ครับ โดยที่ท่านข้อมูล sql เก็บเข้าตัวแปร array ครับ เสร็จแล้วส่งเข้า function ถ้ามันทำเสร็จทุก sql ถึงจะ commit ให้ครับ
Code (PHP)
<?
//ส่วนการเชื่อมต่อฐานข้อมูลผมไม่เขียนนะครับ


function execute_transactions($arr_sql){
	//***** จะใช้ Transactions ได้ Table ต้องใช้ ENGINE แบบ InnoDB ด้วยนะครับนั้น *****
	if(gettype($arr_sql)!="array"){//ต้องส่ง SQL มาเป็นอาเรย์เท่านั้น
		echo "<font color=\"red\">Not Array SQL command!</font><br>";
		return false;
	} else {
	global $conn;
	$affect = 0;
	mysql_query("BEGIN");
	for ($i=0;$i<count($arr_sql);$i++){
		mysql_query($arr_sql[$i]);
		if(mysql_error()){
			mysql_query("ROLLBACK"); //ถ้่าำไม่สามารถกระทำได้ต้องคืนค่าเดิมทั้งหมด
			return false; //ออกจากฟังก์ชั่นเมื่อคืนค่าเดิมแล้ว
		}else{
		$affect += mysql_affected_rows($conn);
		}
	}//for ($i=0;$i<count($arr_sql);$i++){
	mysql_query("COMMIT"); 
	return $affect;//คืนค่าเป็นจำนวนเร็คคอร์ดที่ถูกกระทำ
  }
}

//เวลาเรียกใช้เก็บค่า sql stirng ไว้ใน array ครับ รวมเป็นชุดเมื่อครบ transaction แล้วค่อยเรียกใช้ function ครับ
//ตัวอย่างการเรียกใช้ผมครับ 
$arr_sql=array();
$arr_sql[]=" DELETE from paid_tmp where job_id =$job_id and cus_id=$cus_id; "; 
$arr_sql[]=" UPDATE bill_advance set status=1,approve_by='".$_SESSION["login_name"]."'  where job_id =$job_id and cus_id=$cus_id; "; 
$arr_sql[]=" UPDATE paid_records set status=2,approve_by='".$_SESSION["login_name"]."' where paid_records.cus_id=$cus_id and status=1;  "; 

execute_transactions($arr_sql); //funcion ยังคืนค่าเป็น rows affected ทั้งหมดด้วยนะครับประกาศตัวแปรรับค่าได้ ลองเอาไปใช้ดูนะครับ วิธีนี้ท่านต้องเขียน sql ควบคุมการ cascase ให้ครบนะครับ แต่ถ้าทำ casecade design เป็นก็ดีครับสะดวกด้วย
?>




ประวัติการแก้ไข
2010-11-29 13:10:52
Date : 2010-11-29 13:09:22 By : wad
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : การทำรีเลชั่น ใน Mysql ผมมีปัญหาเกี่ยวกับการ เพิ่มลบข้อมูลในตาราง แม่ แต่ฟิลตารางลูกไม่ยอมแก้ไขตามไปด้วย ทีแรกนึกว่า ความสัมพันธ์ของ ตาราง ฐานข้อมูล Mysql
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ 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 03
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 อัตราราคา คลิกที่นี่