สอบถามการอัพโหลดไฟล์แบบหลายไฟล์พร้อมกับเก็บ id อัพโหลดจากพอร์ม

ถาม-ตอบ แนะนำไอเดียว โค้ดตัวอย่าง แนวทาง วิธีแก้ปัญหา สอบถามการอัพโหลดไฟล์แบบหลายไฟล์พร้อมกับเก็บ id อัพโหลดจากพอร์ม

สอบถามการอัพโหลดไฟล์แบบหลายไฟล์พร้อมกับเก็บ id อัพโหลดจากพอร์ม

จากรูป แสดงของมูล ที่ผมลูปมาโชว์ โดยมีสามข้อมูลด้วยกัน ในช่องแบบไฟล์ผมต้อง
โดยผมเลือก
  id 1 ผมเลือก 3 ไฟล์
  id 2 ผมไม่ได้เลือกไฟล์
  id 3 ผมเลือก 2 ไฟล์ 

 




- เมื่อผมกดบันทึก มันควรจะเป็นแบบนี้ คือ ช่อง pro_id ควรจะมี id 1 อยู่ 3 ไฟล์ และ id 3 อยู่ 2 ไฟล์



แต่ช่อง pro_id มันดันเป็น id 1 หมดเลยครับ




โค้ดหน้า update ครับ

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 171.7.27.xxx 15-05-2020 12:20:55

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

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


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


  • ( หรือ เข้าใช้งานด้วย Facebook คลิก )
 ความคิดเห็นที่ 1
ลอง debug เงื่อนไข ตามปัญหาที่เจอ 
ถ้าข้อมูลบันทึกผิด แสดงว่า ค่าที่ส่งมาไม่ถูกต้อง ก่อนบันทึกรายการ ให้ทดสอบ
แสดงคำสั่งข้อความ sql เป็น string ดูค่าความถูกต้องของข้อมูลก่อนทำงานจริง

การที่ค่าไม่ถูกต้องเป็นไปได้ว่า เราส่งค่ามาผิดแต่แรก (กำหนดค่าในฟอร์มผิดพลาด) หรือการอ้างอิง key ของ array ไม่ถูกต้อง
(การเรียกใช้งานไม่ถูกต้อง) ทั้งหมดก็คือต้องย้อน debug ตรวจสอบข้อมูล

>>>  อัพเดท >>> 15-05-2020
------------------------------------------
    $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;




$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 223.24.63.xxx 15-05-2020






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