สอบถามหน่อยครับเรื่องการอัพโหลดรูปหลายๆรูปในแต่ละแถวโดยเก็บค่าIDแต่ละแถวมาINSERTด้วยในครั้งเดียว
คือตอนนี้ถ้า อัพโหลดแถวละรูปสามารถบันทึกได้ปกติครับ แต่ถ้าเลือกมากกว่า1รูปในแต่ละแถว มันจะ insert แค่รูปแรกของแต่ละแถว
แนะนำหน่อยครับ
พอ INSERT แล้ว
INSERT INTO picture_check SET pic_name='1.png',pic_path='pic_check',pic_datetime='2022-12-12 16:45:52',check_detail_id='1'
INSERT INTO picture_check SET pic_name='3.png',pic_path='pic_check',pic_datetime='2022-12-12 16:45:52',check_detail_id='2'
INSERT INTO picture_check SET pic_name='5.png',pic_path='pic_check',pic_datetime='2022-12-12 16:45:52',check_detail_id='3
จริงๆต้องเป็น
INSERT INTO picture_check SET pic_name='1.png',pic_path='pic_check',pic_datetime='2022-12-12 16:45:52',check_detail_id='1'
INSERT INTO picture_check SET pic_name='2.png',pic_path='pic_check',pic_datetime='2022-12-12 16:45:52',check_detail_id='1'
INSERT INTO picture_check SET pic_name='3.png',pic_path='pic_check',pic_datetime='2022-12-12 16:45:52',check_detail_id='2'
INSERT INTO picture_check SET pic_name='4.png',pic_path='pic_check',pic_datetime='2022-12-12 16:45:52',check_detail_id='2'
INSERT INTO picture_check SET pic_name='5.png',pic_path='pic_check',pic_datetime='2022-12-12 16:45:52',check_detail_id='3'
INSERT INTO picture_check SET pic_name='6.png',pic_path='pic_check',pic_datetime='2022-12-12 16:45:52',check_detail_id='3'
Code From)
print("<form action=\"\" method=\"POST\" enctype=\"multipart/form-data\" accept-charset=\"utf-8\">");
print("<table border=\"1\" style=\"position:relative; left:14px; top:5px; width:400mm;\" class=\"radio-toolbar\" id=\"products\">");
print("<tr>");
print("<td colspan=\"9\" style=\"text-align:center;\">");
print("<input type=\"hidden\" name=\"motor_id\" value=\"" . $get_pic_check[0]['motor_name_id'] . "\" >");
print("<div id=\"name_motor2\">Motor Number : " . $get_pic_check[0]['motor_name_id'] . " (" . $get_pic_check[0]['name'] . ")</div>");
// print($get_machine[0]['extra']);
print("</td>");
print("</tr>");
print("<thead");
print("<tr style=\"text-align:center;\">");
//print("<td style=\"width:10%;\">วันที</td>");
$get_check_list = getlist("SELECT * FROM check_list where motor_code_id=" . $get_pic_check[0]['motor_name_id'] . " AND checklist_status='1'");
for ($i = 0; $i < sizeof($get_check_list); $i++) {
//print("<input type=\"text\" name=\"check_list_id[]\" value=\"" . $get_check_list[$i]['checklist_id'] . "\">");
print("<tr style=\"text-align:center;\">");
print("<td style=\"width:12%;\">" . ($i + 1) . "." . $get_check_list[$i]['checklist_name'] . "</td>");
$get = getlist("SELECT * FROM mac_statuscheck ");
for ($k = 0; $k < sizeof($get); $k++) {
print("<td style=\"width:15%;\">");
print("<input type=\"radio\" id='$i-$k' name=\"status_check[" . $get_check_list[$i]['checklist_id'] . "]\" value=\"" . $get[$k]['id_status'] . "\" >");
print("<label for=\"$i-$k\" style='cursor:pointer;margin-bottom:0px;'> " . $get[$k]['status_name'] . "</label>");
print("<br>");
print("</td>");
}
print("<td style=\"width:12%;\">");
print("<input style=\"width:100%;\" type=\"text\" name=\"comment[" . $get_check_list[$i]['checklist_id'] . "]\" value=\"\" >");
print("</td>");
print("<td style=\"width:12%;\">");
print("<input style=\"width:100%;\" type=\"file\" value=\"\" name=\"picture[" . $get_check_list[$i]['checklist_id'] . "]\" id=\"picture\" accept=\".jpg,.png\" multiple >");
print("</td>");
print("<td style=\"width:12%;\">");
print("<a onclick=\"window.open('machine_check.php?id=" . $get_check_list[$i]['checklist_id'] . "','','menuber=no,toorlbar=no,location=no,scrollbars=no, status=no,resizable=no,width=800,height=500,top=60,left=500')\" class=\"btn btn-warning\" >สถานะ</i></a>");
print("</td>");
print("</tr>");
}
print("<tr>");
print("<td colspan=\"9\" style=\"text-align:center;\">");
print("<input type='submit' name='submit_check' value='บันทึก' style='width:40%;height:20%;' class='myButton'");
print("</td>");
print("</tr>");
print("</table>");
print("</form>");
Code Insert
if ($_POST['submit_check']) {
$date_check = date("Y-m-d");
$time_check = date("H:i:s");
$pic_datetime = date("Y-m-d H:i:s");
$motor_id = $_POST['motor_id'];
$pic = $_POST['pic'];
$user_check = $_SESSION['id_user'];
$name_check = $_SESSION['name'];
foreach ($_POST['status_check'] as $item => $value) {
$comment = $_POST['comment'][$item];
$pic = $_POST['pic'][$item];
{
query("INSERT INTO check_detail SET date_check='$date_check', time_check='$time_check', motor_name_id='$motor_id',checklist_id='$item',status='$value',comment='$comment',check_user='$user_check',check_name='$name_check'");
}
}
// upload รูป
foreach ($_FILES['picture']['name'] as $key => $val) {
$path = "pic_check";
$file_name = basename(iconv("utf-8", "tis-620", $_FILES["picture"]["name"][$key]));
$name_insert_db_image = $_FILES["picture"]["name"][$key];
$target_file = $path . "/" . $file_name; //อ่านชื่อไฟล์
$imageFileType = pathinfo($target_file, PATHINFO_EXTENSION); //หานามสกุลไฟล์ โดยแบ่งออกเป็น 3 อาเรย์ 1 dirname = path , basename =name+type file
//print($target_file);
if (!@mkdir($path, 0, true)) { //เป็นการตรวจสอบ folder ว่ามีหรือไม่ถ้ามีจะเข้าไปที่ if ที่เป็นจริง ถ้าไม่มีระบบจะสร้าง folder ให้และกระโดดไปทำงาน ที่ else
}
if (move_uploaded_file($_FILES["picture"]["tmp_name"][$key], $target_file)) {
query("INSERT INTO picture_check SET pic_name='$name_insert_db_image',pic_path='" . $path . "',pic_datetime='" . $pic_datetime . "',check_detail_id='$key'");
}
}
} //end ปุ่ม submit
Tag : PHP, XAMPP
ประวัติการแก้ไข 2022-12-12 16:20:02
Date :
2022-12-12 16:18:53
By :
benlovehi5
View :
398
Reply :
7
พึงระวังการ generate HTML ด้วยลูป
input file ลองเอา id attribute ออก หรือไม่ก็ทำเป็น dynamic id
HTML จะต้องไม่มี id ซ้ำกัน
ลองแค่นี้ก่อน
Date :
2022-12-12 17:15:42
By :
009
HTML จะมี attribute ต่างๆ รวมทั้ง id ด้วย
อะไรคือ attribute
https://www.w3schools.com/html/html_attributes.asp
ความสำคัญของ id attribute
https://www.w3schools.com/html/html_id.asp
ในโค้ดที่คุณแปะมีการสร้าง(generate) HTML แบบ auto/loop จาก server-side (PHP)
แต่ id ของ input file เมื่อวนซ้ำจะได้ id เดียวกันทั้งหมด...ซึ่งผิดหลักของ HTML
ทางเลือก คือ เอา id ออกไปเลย หรือ ทำเป็น dynamic เช่นใส่ picture id หรือ รันเลข ห้อยท้าย
ถ้าไม่เข้าใจศึกษาหรือทบทวนพื้นฐานแต่ละส่วนให้เข้าใจ
หรือฝึก debug ด้วย echo/print_r หรือแม้กระทั่ง
debug tools ในการ step-in, step-over, step-out ด้วย xdebug
Date :
2022-12-12 19:08:40
By :
009
Load balance : Server 05