สอบถามการอัพโหลดไฟล์แบบหลายไฟล์พร้อมกับเก็บ id อัพโหลดจากพอร์ม
ถาม-ตอบ แนะนำไอเดียว โค้ดตัวอย่าง แนวทาง วิธีแก้ปัญหา สอบถามการอัพโหลดไฟล์แบบหลายไฟล์พร้อมกับเก็บ id อัพโหลดจากพอร์ม
สอบถามการอัพโหลดไฟล์แบบหลายไฟล์พร้อมกับเก็บ id อัพโหลดจากพอร์ม
จากรูป แสดงของมูล ที่ผมลูปมาโชว์ โดยมีสามข้อมูลด้วยกัน ในช่องแบบไฟล์ผมต้อง
โดยผมเลือก
id 1 ผมเลือก 3 ไฟล์
id 2 ผมไม่ได้เลือกไฟล์
id 3 ผมเลือก 2 ไฟล์
- เมื่อผมกดบันทึก มันควรจะเป็นแบบนี้ คือ ช่อง pro_id ควรจะมี id 1 อยู่ 3 ไฟล์ และ id 3 อยู่ 2 ไฟล์
แต่ช่อง pro_id มันดันเป็น id 1 หมดเลยครับ
โค้ดหน้า update ครับ
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 | for ( $i = 0; $i < count ( $_POST [ "pro_id" ]); $i ++) { $sql_pro_update = "UPDATE productivity SET quarter1 = '" . $_POST["txtQuarter1"][$i] . "' , quarter2 = '" . $_POST["txtQuarter2"][$i] . "' , quarter3 = '" . $_POST["txtQuarter3"][$i] . "' , quarter4 = '" . $_POST["txtQuarter4"][$i] . "' , url = '" . $_POST["URL"][$i] . "' , dateAdd_now = NOW() WHERE pro_id = '" . $_POST["pro_id"][$i] . "' "; $result_pro = mysqli_query( $con , $sql_pro_update ); $pro_id = $_POST [ "pro_id" ][ $i ]; for ( $j = 0; $j < count ( $_FILES [ "txtfile_upload_pro" ][ "name" ]); $j ++) { if ( $_FILES [ "txtfile_upload_pro" ][ "name" ][ $j ] == "" ) { } else { if ( $_FILES [ "txtfile_upload_pro" ][ 'size' ][ $j ] > 0) { if ( $_FILES [ "txtfile_upload_pro" ][ 'size' ][ $j ] > 1024 * 25000) ///ขนาดของไฟล์ที่อัพโหลด { echo "<script>alert('ขนาดไฟล์ห้ามเกิน 25 Mb');history.back();</script>" ; exit (); } if (( $_FILES [ "txtfile_upload_pro" ][ 'type' ][ $j ] == "application/msword" ) //file .doc || ( $_FILES [ "txtfile_upload_pro" ][ 'type' ][ $j ] == "application/vnd.openxmlformats-officedocument.wordprocessingml.document" ) //file .dcox || ( $_FILES [ "txtfile_upload_pro" ][ 'type' ][ $j ] == "application/vnd.ms-excel" ) //file .xls || ( $_FILES [ "txtfile_upload_pro" ][ 'type' ][ $j ] == "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" ) //file .xlsx || ( $_FILES [ "txtfile_upload_pro" ][ 'type' ][ $j ] == "application/pdf" ) //file pdf || ( $_FILES [ "txtfile_upload_pro" ][ 'type' ][ $j ] == "application/vnd.ms-powerpoint" )) //file ppt { $date = Date ( "dmy_His" ); move_uploaded_file( $_FILES [ "txtfile_upload_pro" ][ 'tmp_name' ][ $j ], "file_pro/" . $date . "_" . $_FILES [ "txtfile_upload_pro" ][ "name" ][ $j ]); $sql_pro_fileupdate = "INSERT INTO flie_report_pro (pro_id, P_id, filename, type, size, date) values ('" . $pro_id . "', '" . $_POST [ "txtP_id" ] . "', '" . $date . "_" . $_FILES [ "txtfile_upload_pro" ][ "name" ][ $j ] . "', '" . $_FILES [ "txtfile_upload_pro" ][ "type" ][ $j ] . "', '" . $_FILES [ "txtfile_upload_pro" ][ "size" ][ $j ] . "', '" . date ('Y-m-d ') . "' )"; $result_pro_file = mysqli_query( $con , $sql_pro_fileupdate ); } else { echo "<script>alert('Please upload file .doc/.docx/.xls/.pdf');history.back();</script>" ; exit (); } } } } } |

คำแนะนำ และการใช้งาน
สมาชิก กรุณา ล็อกอินเข้าระบบ เพื่อตั้งคำถามใหม่ หรือ ตอบคำถาม สมาชิกใหม่ สมัครสมาชิกได้ที่ สมัครสมาชิก
- ถาม-ตอบ กรุณา ล็อกอินเข้าระบบ
ความคิดเห็นที่
1
ลอง debug เงื่อนไข ตามปัญหาที่เจอ
ถ้าข้อมูลบันทึกผิด แสดงว่า ค่าที่ส่งมาไม่ถูกต้อง ก่อนบันทึกรายการ ให้ทดสอบ
แสดงคำสั่งข้อความ sql เป็น string ดูค่าความถูกต้องของข้อมูลก่อนทำงานจริง
การที่ค่าไม่ถูกต้องเป็นไปได้ว่า เราส่งค่ามาผิดแต่แรก (กำหนดค่าในฟอร์มผิดพลาด) หรือการอ้างอิง key ของ array ไม่ถูกต้อง
(การเรียกใช้งานไม่ถูกต้อง) ทั้งหมดก็คือต้องย้อน debug ตรวจสอบข้อมูล
>>> อัพเดท >>> 15-05-2020
------------------------------------------
ถ้าข้อมูลบันทึกผิด แสดงว่า ค่าที่ส่งมาไม่ถูกต้อง ก่อนบันทึกรายการ ให้ทดสอบ
แสดงคำสั่งข้อความ sql เป็น string ดูค่าความถูกต้องของข้อมูลก่อนทำงานจริง
การที่ค่าไม่ถูกต้องเป็นไปได้ว่า เราส่งค่ามาผิดแต่แรก (กำหนดค่าในฟอร์มผิดพลาด) หรือการอ้างอิง key ของ array ไม่ถูกต้อง
(การเรียกใช้งานไม่ถูกต้อง) ทั้งหมดก็คือต้องย้อน debug ตรวจสอบข้อมูล
>>> อัพเดท >>> 15-05-2020
------------------------------------------
1 2 3 4 5 6 7 8 9 10 11 12 | $sql_pro_update = "UPDATE productivity SET quarter1 = '" . $_POST["txtQuarter1"][$i] . "' , quarter2 = '" . $_POST["txtQuarter2"][$i] . "' , quarter3 = '" . $_POST["txtQuarter3"][$i] . "' , quarter4 = '" . $_POST["txtQuarter4"][$i] . "' , url = '" . $_POST["URL"][$i] . "' , dateAdd_now = NOW() WHERE pro_id = '" . $_POST["pro_id"][$i] . "' "; echo $sql_pro_update ; // $result_pro = mysqli_query($con, $sql_pro_update); $pro_id = $_POST [ "pro_id" ][ $i ]; echo $pro_id ; |
1 2 3 4 5 6 | $date = Date ( "dmy_His" ); // move_uploaded_file($_FILES["txtfile_upload_pro"]['tmp_name'][$j], "file_pro/" . $date . "_" . $_FILES["txtfile_upload_pro"]["name"][$j]); $sql_pro_fileupdate = "INSERT INTO flie_report_pro (pro_id, P_id, filename, type, size, date) values ('" . $pro_id . "', '" . $_POST [ "txtP_id" ] . "', '" . $date . "_" . $_FILES [ "txtfile_upload_pro" ][ "name" ][ $j ] . "', '" . $_FILES [ "txtfile_upload_pro" ][ "type" ][ $j ] . "', '" . $_FILES [ "txtfile_upload_pro" ][ "size" ][ $j ] . "', '" . date ('Y-m-d ') . "' )"; echo $sql_pro_fileupdate ; // $result_pro_file = mysqli_query($con, $sql_pro_fileupdate); |

ขอบคุณทุกการสนับสนุน
![]()