بخصوص الحذف المتعدد
السلام عليكم
بخصوص الحذف المتعدد عندي يشتغل على اللوكال هوست 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 أشخاص وجدو هذه الاجابة مفيدة. هل وجدتها؟ نعم لا |