A-AA+then

unlink รูปทั้งหมดจากไดเร็กทอรี่ภายใต้ id=xxx

1,431
สวัสดีครับ,
ผมเพิ่งเข้ามาที่นี่ครั้งแรก และแอบเซฟเว็บไปอ่านเกือบหมด ได้ความรู้ขึ้นมากครับ แต่ผมอยากสอบถามเรื่องหนึ่ง เกี่ยวกับฟังก์ชัน unlink ผมประยุกต์โปรแกรมอัพโหลดรุปภาพ โดยอัพได้ครั้งละ 8 รูป, สามารถแก้ไขได้, เพิ่ม/ลบ หัวข้อของรูปนั้นๆได้ แต่เวลาลบ ผมก็ใชวิธีการอย่างนี้ครับ
 
//ตารางสำหรับเก็บชื่อรูปภาพ,จำนวนคลิก ฯลฯ
$sql="delete from my_table where id='xxx'";
$result=mysql_db_query($dbname,$sql);
while($rec=mysql_fetch_array($result)){
$ref_id=$rec['ref_id'];
}
;

//ตารางเก็บรูปภาพ
$sql_pix="select * from pic_db where ref_id='xxx'";
$result_pix=mysql_db_query($dbname,$sql_pix);
while($rec_pic=mysql_fetch_array($result_pix)){
$ref_id=$rec['ref_id'];
$pix_file=$rec['pic_file'];
};

if($result){
echo "delete ok";
unlink(ไฟล์รูปทุกไฟล์ที่มีชื่อเท่ากับ $pix_file);
}else{
echo "error: unable to delete";
}

ไม่ทราบว่าผมทำฐานข้อมูลยากไป หรือมันมีทางแก้ที่ง่ายกว่านี้ครับ

รบกวนด้วยครับ,
ขอบคุณครับ

ปล.โค้ดนี้ผมนึกเอา ไม่ชัวร์ว่าเหมือนต้นฉบับ เพราะแอบเขียนจากที่ทำงานครับ ;P

2 ความคิดเห็น

สรุปว่ายังไง ? งง...........................
ปัญหาคืออะไร
1

ไม่ค่อยเข้าใจสิ่งที่เขียน มันดูมึนๆ

หลักๆเลยจะลบยังไง ก็ไปดูที่วิธีเก็บสิครับ ว่าเก็บยังไง ต้องเริ่มที่ตรงนั้น

ถ้าเป็นผม...

1.เก็บชื่อรูปภาพทั้งหมดลงบนฐานข้อมูลทีละ record ในกรณีที่ อัป 8 รูปก็เก็บ 8 record โดยชื่อไฟล์ไม่ซ้ำกัน ในกรณีนี้อาจใช้ เวลาเป็นชื่อไฟล์ได้ เพราะรูปถูกอัปโหลดไม่พร้อมกัน (ขึ้นกับวิธีอัปโหลด)
2.แสดงผลก็ไม่ยุ่งยาก อานชื่อไฟล์ ออกมาจากฐานข้อมูล จะได้ชื่อไฟล์ทั้ง 8 ไฟล์ออกมาทีเดียว และแสดงผลได้เลย
3.ลบก็เหมือนแสดงผล

สิ่งสำคัญที่ต้องทำคือ นอกจากชื่อไฟล์ อาจต้องมี id ของ อัลบัม เพื่อให้รู้ว่านี่เป็นภาพชุดเดียวกัน ในการอ่าน หรือลบ เราจะอ้างอิงจากชื่ออัลบัมนี้

ไม่รู้ว่าเข้าใจหรือ เปล่า ลองประยุกต์ดูนะ

อ้อ unlink() สามารถลบได้ทีละไฟล์ เท่านั้นนะ และ ไม่สามารถลบ ไดเร็คทอรี่ ที่ไม่ว่างได้ จะลบ 8 ไฟล์ ต้อง วนลูป ลบทีละไฟล์
2
^