สอบถามการอัพโหลดไฟล์แบบหลายไฟล์พร้อมกับเก็บ 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();
                }
            }
 
        }
 
    }
 
}


 



Thammarat Phanphai 15-05-2020 12:20:55

คำแนะนำ และการใช้งาน

สมาชิก กรุณา ล็อกอินเข้าระบบ เพื่อตั้งคำถามใหม่ หรือ ตอบคำถาม สมาชิกใหม่ สมัครสมาชิกได้ที่ สมัครสมาชิก


  • ถาม-ตอบ กรุณา ล็อกอินเข้าระบบ
  • เปลี่ยน


    ( หรือ เข้าใช้งานผ่าน Social Login )

 ความคิดเห็นที่ 1
ลอง debug เงื่อนไข ตามปัญหาที่เจอ 
ถ้าข้อมูลบันทึกผิด แสดงว่า ค่าที่ส่งมาไม่ถูกต้อง ก่อนบันทึกรายการ ให้ทดสอบ
แสดงคำสั่งข้อความ 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);


ninenik 15-05-2020






เว็บไซต์ของเราให้บริการเนื้อหาบทความสำหรับนักพัฒนา โดยพึ่งพารายได้เล็กน้อยจากการแสดงโฆษณา โปรดสนับสนุนเว็บไซต์ของเราด้วยการปิดการใช้งานตัวปิดกั้นโฆษณา (Disable Ads Blocker) ขอบคุณครับ