|
بخصوص الحذف المتعدد
السلام عليكم
بخصوص الحذف المتعدد عندي يشتغل على اللوكال هوست 100% لكن على الموقع لا يعمل شوف الكود
for($i=0;$i<8;$i++){
$file_id = $checkbox[$i];
$file_query = @mysql_query("SELECT * FROM `".$db[prefix]."uploaded`
WHERE `id` = '$file_id' AND
`uploadedby` = '".$QUL[id]."'");
$num_file = @mysql_num_rows($file_query);
$row_file = @mysql_fetch_assoc($file_query);
if($num_file > 0){
@unlink('uploaded/file/'.$row_file[newname]);
@mysql_query("DELETE FROM `".$db[prefix]."uploaded` WHERE `id` = '$file_id'");
}
}
الجيك بوكس في صفحة تحديد الملفات
<input type="checkbox" name="checkbox[]" value="{file.id}" />
اتمنى اشوف الحل
2 إجابات
يمكنك استعمال دالة الـimplode الخاصة بـPHP ودالة IN() الخاصة بالـMYSQL
كالاتى: mysql_query(\"delete from `table` where id IN(\".implode(\",\",$_POST[\'checkbox\']).\")\") لكنها لن تعمل لحذف الملفات الترتطبة بالصف بواسطة: Gamal 2 من 2 أشخاص وجدو هذه الاجابة مفيدة. هل وجدتها؟ نعم لا
يا اخى جرب هذه الطريقة:
اولا نتاكد من وجود الارسال بدالة isset() ثم نستخدم الـforeach لتفريغ المصفوفة اليك الكود الكامل if(isset($_POST[\'checkbox\'])){
foreach ($_POST[\'checkbox\'] as $file_id) {
$file_id = intval($file_id);
$file_query = @mysql_query(\"SELECT * FROM `\".$db[prefix].\"uploaded`
WHERE `id` = \'$file_id\' AND
`uploadedby` = \'\".$QUL[id].\"\'\");
if ($row_file = @mysql_fetch_array($file_query)) {
if(@unlink(\'uploaded/file/\'.$row_file[\'newname\'])){
@mysql_query(\"DELETE FROM `\".$db[prefix].\"uploaded`
WHERE `id` = \'$file_id\'\");
}
}
}
}
بس انا لاحظت بعض العيوب البرمجية فى الكود الاول هى مش هتخلى الاسكربت يقف بس هى عيوب برمجية يفضل تحسينها مثل:
if ($row_file = @mysql_fetch_array($file_query))الان انت وضعت الـ$row_file يساوى الصف ان وجد بواسطة: MacOS 3 من 3 أشخاص وجدو هذه الاجابة مفيدة. هل وجدتها؟ نعم لا |

