|
|
|
การลบหรือแก้ไขข้อมูลทีีมีความสัมพันธ์กัน สามตาราง |
|
|
|
|
|
|
|
คุณจะต้องไล่ลบ table ที่เป็นลูกก่อนครับ ดูตัวอย่างนี้ครับ
Code (PHP)
<html>
<head>
<title>ThaiCreate.Com Tutorial</title>
</head>
<body>
<?
$objConnect = mysql_connect("localhost","root","root") or die("Error Connect to Database");
$objDB = mysql_select_db("mydatabase");
//*** Select Old File (Album) ***//
$strSQL = "SELECT * FROM album WHERE AlbumID = '".$_GET["AlbumID"]."' ";
$objQuery = mysql_query($strSQL) or die ("Error Query [".$strSQL."]");
$objResult = mysql_fetch_array($objQuery);
//*** Delete Files (Album) ***//
@unlink("myfile/".$objResult["AlbumShot"]);
//*** Delete Rows (Album)***//
$strSQL = " DELETE FROM album ";
$strSQL .=" WHERE AlbumID = '".$_GET["AlbumID"]."' ";
$objQuery = mysql_query($strSQL);
//*** Loop Delete Gallery ***//
$strSQL2 = "SELECT * FROM gallery WHERE AlbumID = '".$_GET["AlbumID"]."' ORDER BY GalleryID ASC ";
$objQuery2 = mysql_query($strSQL2) or die ("Error Query [".$strSQL2."]");
while($objResult2 = mysql_fetch_array($objQuery2))
{
//*** Delete Files (Gallery) ***//
@unlink("myfile/".$objResult2["GalleryShot"]);
}
//*** Delete All Rows (Gallery)***//
$strSQL = " DELETE FROM gallery ";
$strSQL .=" WHERE AlbumID = '".$_GET["AlbumID"]."' ";
$objQuery = mysql_query($strSQL);
echo "Delete Complete<br>";
mysql_close($objConnect);
?>
<a href="view_album.php">View Album</a>
</body>
</html>
Go to : PHP Create Album Images Gallery / jQuery Lightbox
|
|
|
|
|
Date :
2011-11-23 09:09:30 |
By :
webmaster |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ควรลบจากล่างขึ้นบนคับ ระบบฐานข้อมูลส่วนใหญ่ไม่ได้ตามลบให้
เราต้องลบตรางที่เป็น FK ก่อน แล้วจริงลบตารางที่ถูกอ้างอิงคับ
บางระบบฐานข้อมูลจะไม่ยอมให้ลบเรคคอร์ดที่ถูกอ้างอิงก่อนด้วยซ้ำ
|
|
|
|
|
Date :
2011-11-23 09:13:43 |
By :
pkait09 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ยังมองไม่ค่อยเห็นภาพค่ะ ยัง งงๆ อยู่ ตอนนี้ทำเอง งง เอง
|
|
|
|
|
Date :
2011-11-23 09:20:58 |
By :
มือใหม่หัดขับ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
คือ คุณวิน หมายถึงว่า เราต้องไล่ ลบเอง หรอค่ะ จากตารางเล็ก ไปจนถึง ตารางใหญ่ คือ งง จริงๆ ค่ะ
|
|
|
|
|
Date :
2011-11-23 09:24:07 |
By :
มือใหม่หัดขับ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ประมาณนั้นครับ แต่ถ้าทำ CasCade ก็ลบแค่ Table หลักก็พอครับ
|
|
|
|
|
Date :
2011-11-23 09:30:39 |
By :
webmaster |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ยังมีปัญหาอยู่อะคะ ใช้ cascade ลบแล้วก็ไปตามลบตารางที่มี FK แต่พอ เราจะเพิ่มข้อมูล ข้อมูลกับไม่เข้า เช่น
videocataloty
vcat_id (PK)
vcat_name
...
videoname
vname_id (PK)
vcat_id (FK)
....
ตาราง videocataloty เพิ่มได้ แล้วข้อมูลก็ดึงมาที่ select list ให้ videoname เลือก แต่พอ add ข้อมูลลง videoname กลับไม่รับข้อมูล
เลยลองไปลม relationship cascade in phpmyadmin ปรากฏว่าเพิ่มข้อมูลได้ ใน videoname ปัญหาก็จะกลับมาเหมือนเดิมคือ ลบตารางแม่แล้วตาราง ตารางลูกที่มี ID (FK) จาก primary ของตารางแม่ ก็ไม่ลบ เพราะฉะนั้นข้อมูลก็จะเกิดการผิดพลาด
งง งง งง ช่วยด้วยยยยยยยยยยยยยย
|
|
|
|
|
Date :
2011-11-23 13:20:42 |
By :
มือใหม่หัดขับ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 03
|