ช่วยหน่อยครับ updateอัพโหลดไฟล์ แล้วชื่อในฐานข้อมูลเป็นแบบมั่วๆ แก้ไงครับ
ผม update ข้อมูลไฟล์อัพโหลดใหม่ พอแก้แล้วชื่อในฐานข้อมูลกับ มั่วครับ บทที่ 2-ฉบับปรับปรà¸... แบบนี้ครับ ควรแก้ยังได้ดีครับ ไม่ได้อัพขึ้นโฮสนะครับ
Code (PHP)
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<style>
body {
background: url('images/bg.jpg') top center ;
background-attachment:fixed;
background-size: 100%;
background-origin: content;
background-repeat: no-repeat;
}
</style>
<?php
include "class.resizepic.php";
$db = new mysqli("localhost", "root", "123456", "dbboard");
if(mysqli_connect_errno()) die("Connect Failed! :" . mysqli_connect_error());
$db->set_charset('utf8');
if(isset($_POST['Submit1'] ))
{
$num_file = count($_FILES['file']['name']);
$select = false;
$count = 0;
for($i = 0; $i < $num_file ; $i++)
{
if($_FILES['file']['error'][$i] != 0)
{
$count++;
continue;
}
if($_FILES['file']['name'][$i] != "")
{
#ฟังก์ชั่นนี้ใช้สำหรับ Rename ชื่อไฟล์ที่ทำการอัพโหลดใหม่ รับค่า $_FILES['file']['name']
#ผลลัพธิ์จะได้ เช่น รับค่า ทดสอบ.docx ฟังก์ชั่นจะส่งค่ามาเป็น Acdeq12345678.docx เป็นต้น
function getNewName($fileName){
$fileName = explode('.',$fileName);
$i = count($fileName)-1;
$fileType = strtolower($fileName[$i]);
$rand = substr(str_shuffle('abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'),0,5);
$result = $rand.time().'.'.$fileType;
return $result;
}
$Filename = getNewName($_FILES['file']['name'][$i]);
$originalFilename = $_FILES['file']['name'][$i];
$type = $_FILES['file']['type'][$i];
// .gif, .png, .jpg, .zip, .docx, .pdf, .doc, .swf, .rar
if ( $type == "image/gif") {$pic_type = 'GIF'; }
else if ($type == "image/png") {$pic_type = 'PNG'; }
else if (($type == "image/jpg") or ($type=="image/jpeg") or ($type == "image/pjpeg")) {$pic_type = 'JPG'; }
else if ($type == "application/octet-stream") {$pic_type = false;}
else if ($type == "application/vnd.openxmlformats-officedocument.wordprocessingml.document") {$pic_type = false;}
else if ($type == "application/pdf") {$pic_type = false;}
else if ($type == "application/msword") {$pic_type = false;}
else if ($type == "application/x-shockwave-flash") {$pic_type = false;}
else if ($type == "application/octet-stream") {$pic_type = false;}
if(move_uploaded_file($_FILES['file']['tmp_name'][$i], "fileRequestUpload/".$Filename)){
if($pic_type){
$original_image = "fileRequestUpload/". $Filename ;
$pic_size = getimagesize($original_image);
$desired_width = 250 ;
$per_div = abs($desired_width - $pic_size[0]) * 100 / $pic_size[0];
$desired_height = $pic_size[0] > $desired_width ? $pic_size[1] - floor( $pic_size[1] * $per_div / 100) : $pic_size[1] + floor( $pic_size[1] * $per_div / 100);
$image = new hft_image($original_image);
$image->resize($desired_width, $desired_height, '0');
$image->output_resized("fileRequestUpload/".$Filename, "JPG");
}
$sql = $db->query("update pending set (pen_upload_name , pen_upload) VALUES ('{$originalFilename}' , '{$Filename}') ");
if($sql)
{
echo "<H3>ERROR:Can not Upload</H3>";
$upload_true = true;
}else{
echo "<META HTTP-EQUIV=refresh CONTENT=\"1; \">";
}
}
}else{
$count++;
}
}
}
?>
<style>
body {
background: url('images/bg.jpg') top center ;
background-attachment:fixed;
background-size: 100%;
background-origin: content;
background-repeat: no-repeat;
}
</style>
<?
$id_edit=$_POST[id_edit];
$pen_admin=$_POST[pen_admin];
$pen_notes_admin=$_POST[pen_notes_admin];
$pen_status=$_POST[pen_status];
include"connect.php";
$sql="update pending set pen_admin='$pen_admin',pen_notes_admin='$pen_notes_admin',pen_status='$pen_status',pen_upload='$Filename' where pen_id='$id_edit'";
$result=mysql_db_query($dbname,$sql);
if($result){
echo"<META HTTP-EQUIV=refresh CONTENT=\"1; URL=page_admin.php\">";
}else{
echo"<H3>ERROR:Can not fix</H3>";
}
Mysql_close();
?>
มีประมาณนี้ครับTag : PHP
Date :
2015-10-26 21:37:47
By :
NuItMaster
View :
969
Reply :
19
ยังไม่ได้อีกหรอครับ ป๊าดดดดดดดดด ทำไมมันยากเย็นแสนเข็นจัง ขอดูโครงสร้าง DB หน่อยครับ ขอเป็นภาพก็ได้
Date :
2015-10-26 22:57:15
By :
arm8957
อันนี้เป็นไฟล์ใหม่นะครับ คือว่าอันเก่านั้นได้ไปแล้ว ผมเลยลองประยุกต์ดู แต่เปลี่ยนจากการ insert เป็น update เท่านั้นเอง
คอนเซป ประมาณว่าผู้ใช้เข้ามากรอกข้อมูลการร้องขอจากแอดมิน แอดมินก็หาไฟล์เอกสารส่งกลับให้ผุ็ใช้ ผู้ใช้สามารถเข้าไปดูดาวน์โหลดเอกสารนั้นได้
ตรรางของการร้องขอ ครับ
Date :
2015-10-27 06:49:29
By :
NuItMaster
ถามนิดครับ ได้ลอง ส่งไฟล์หลาย ไฟล์หรือยังครับ
ที่ถาม เพราะ เห็นเอา function ไว้ในลูป
จะได้error แบบนี้นะครับ Fatal error: Cannot redeclare getNewName()
Date :
2015-10-27 08:08:55
By :
NewbiePHP
ผมก้อแก้ไฟล์ส่งไฟได้ตามปกตินะครับแต่มันเข้าแต่ pen_upload แต่ pen_upload_name ผมเลย งง อ่ะครับ
Date :
2015-10-27 09:48:16
By :
NuItMaster
ต้องการให้ผู้ดูแลระบบส่งไฟล์ที่ร้องขอมา 1 ไฟล์ ต่อ 1 ข้อมูลครับ ส่วนมากข้อมูล จะเป็นไฟล์เอกสารครับ
Date :
2015-10-27 09:50:26
By :
NuItMaster
คือ งานที่ผมทำนั้นมันเกี่ยวกับการร้องขอเอกสาร
เช่น เราร้องขอเอกสารข้อมูลเกี่ยวกับโรงพยบาล ผ่านเว็บแอพที่สร้างขึ้นมาโดยให้ผู้ดูแลระบบอ่านคำร้องขอนั้นและส่งข้อมูลการร้องขอกลับไป
ขั้นตอนการร้องขอ
1.ผู้ใช้กรอกแบบฟอร์มการร้องขอ
2.ผู้ดูแลระบบอ่านฟอร์มการร้องขอของผู้ใช้
3.ผู้ดูแลระบบเตรียมไฟล์เอกสารและส่งกลับ 1 คำร้องขอ ต่อ 1 การส่งไฟล์
4.ผู้ใช้เรียกดูการร้องขอนั้น และดาวน์โหลดไฟล์ที่ผู้ดูแลระบบส่งมา
เสร็จขั้นตอนการร้องขอ
สิ่งผมที่คิดไว้
1.ผู้ใช้กรอกแบบฟอร์มการร้องขอ ---> insert ข้อมูลการร้องขอ add_from.php
2.ผู้ดูแลระบบอ่านฟอร์มการร้องขอของผู้ใช้ ---> select ข้อมูลการร้องขอ view_from.php
3.ผู้ดูแลระบบเตรียมไฟล์เอกสารและส่งกลับ 1 คำร้องขอ ต่อ 1 การส่งไฟล์ ---> update ข้อมูลการร้องขอ edit_from.php
4.ผู้ใช้เรียกดูการร้องขอนั้น และดาวน์โหลดไฟล์ที่ผู้ดูแลระบบส่งมา ---> select ข้อมูลที่ update แล้ว view_edit.php
ประมาณนี้ครับ ไม่รู้ว่าจะใช้แบบที่พี่ขอหรือป่าว
Date :
2015-10-27 10:24:35
By :
NuItMaster
ส่วนใหญ่ดูโค้ดของคนอื่นมากครับ แก้ไขเล็กๆน้อยๆ เพราะไม่มีความรู้เรื่องแบบนี้เลย
Date :
2015-10-27 10:25:30
By :
NuItMaster
ขอบคุณครับสำหรับคำสอน ผมจะพยายามให้มากกว่านี้ ขอบคุณครับ
ส่วนงาน ผมไม่รู้จะอธิบายยังไงดี น่าจะ ผู้ใช้ insert แค่ข้อมูลคำร้องขอนั้นๆ ส่วนผู้ดูแลระบบดูและให้คำแนะนำและอัพโหลดงานที่ร้องขอมา (ผมของ insert แล้วมันขึ้นอีกบันทัดของ sql ผมเลยใช้การ update แทน มันก้อได้นะครับ แต่ปัญหาคือจะเก็บชื่อไฟล์งานภาษาไทยแบบของเก่านะครับ พพี่เคยให้เก็บอีกฟิลด์ใช่ไหมครับ ผมแยกฟิลด์ เป็นชื่อเอกสารเดิมที่อัพและชื่อเอกสารที่copy ตรงส่วนcopyมันเก็บไฟล์ได้เก็บชื่อได้) แต่ผมอยากได้ชื่อเก่าด้วยเพื่อที่จะเห็นเป็นชื่องานที่อัพใน sql จะได้รู้ว่า เราอัพงานชื่ออะไรขึ้นไป
ผมเข้าใจว่างานที่เคยถามเรื่องภาษาไทยกับอันนี้ไม่ได้แตกต่างกันมากผมเลยเอาจับมาใส่อันนี้ครับ
Date :
2015-10-27 15:41:48
By :
NuItMaster
อะเข้าเรื่องปัญหาของคุณ
คำถาม ขั้นตอนการ INSERT กับ UPDATE อยู่ในเงื่อนไขเดียวกันหรือไม่ คือ INSERT เสร็จ UPDATE เลยรึเปล่า หรือ INSERT ก็ต่อเมื่อรับคำสั่ง INSERT และ UPDATE ก็ต่อเมื่อได้รับคำสั่งให้ UPDATE
ผมอยากให้แยกกันครับ
Date :
2015-10-27 15:42:44
By :
NuItMaster
มีคนช่วยไหมครับบบ
งานชิ้นสุท้ายหล่ะครับ
Date :
2015-10-28 09:04:19
By :
NuItMaster
1.ผู้ใช้กรอกแบบฟอร์มการร้องขอ ---> insert ข้อมูลการร้องขอ add_from.php
2.ผู้ดูแลระบบอ่านฟอร์มการร้องขอของผู้ใช้ ---> select ข้อมูลการร้องขอ view_from.php
3.ผู้ดูแลระบบเตรียมไฟล์เอกสารและส่งกลับ 1 คำร้องขอ ต่อ 1 การส่งไฟล์ ---> update ข้อมูลการร้องขอ edit_from.php
4.ผู้ใช้เรียกดูการร้องขอนั้น และดาวน์โหลดไฟล์ที่ผู้ดูแลระบบส่งมา ---> select ข้อมูลที่ update แล้ว view_edit.php
ก็โอเคแล้วครับ ส่วนโค๊ด ดูได้ที่นี่ หาเอาที่ตรงกับความต้องการ มีเยอะแยะ
https://www.thaicreate.com/php.html
Date :
2015-10-28 09:29:58
By :
NewbiePHP
ขอบคุณสำหรับคำแนะนำนะครับ พอดีผมทำไว้ทุกหน้าแก้ไขทุกหน้าแล้ว(1,2,3,4)ทำเสร็จแล้วครับ
แต่ปัญหาคือผมทำขอ 3 ให้แก้อัพโหลดไฟล์อะครับ ผมอยากเก็บชื่อไฟล์เดิมด้วย พอมีคำแนะนำไหมครับ (update ข้อมูลการร้องขอ edit_from.php)
Date :
2015-10-28 10:01:47
By :
NuItMaster
$sql = $db->query("update pending set (pen_upload_name , pen_upload) VALUES ('{$originalFilename}' , '{$Filename}') ");
โค๊ดข้างบน รูปแบบการอัพเดท มันผิด
update table set pen_upload_name='.....' , pen_upload='....' where pen_id='.....'
จุดๆๆ ใส่เอาเองนะครับ
Date :
2015-10-28 10:16:37
By :
NewbiePHP
อ๋อ ขอบคุณมากครับ
Date :
2015-10-28 10:21:48
By :
NuItMaster
ได้แล้ว เย้ๆ
Code
<?
$id_edit=$_GET[id_edit];
include"connect.php";
$sql="select * from pending where pen_id='$id_edit'";
$sql1="select pending.pen_fname,pending.pen_lname,pending.pen_nname,pending.teldep,pending.dep_name,pending.pos_name,pending.pen_name,pending.pen_notes,
pending.pen_admin,pending.pen_notes_admin,pending.pen_status,pending.pen_upload,pending.pen_upload_name
from pending where pending.pen_id='$id_edit'";
$result=mysql_db_query($dbname,$sql);
@$rs=mysql_fetch_array($result);
$fname=$rs[fname];
$lname=$rs[lname];
$nname=$rs[nname];
$teldep=$rs[teldep];
$dep_name=$rs[dep_name];
$pos_name=$rs[pos_name];
$pen_name=$rs[pen_name];
$pen_notes=$rs[pen_notes];
$pen_admin=$rs[pen_admin];
$pen_notes_admin=$rs[pen_notes_admin];
$pen_status=$rs[pen_status];
$pen_upload=$rs[pen_upload];
$pen_upload_name=$rs[pen_upload_name];
?>
ผมแก้บรรทัดล่างๆ ครับ
$sql="update pending set pen_admin='$pen_admin',pen_notes_admin='$pen_notes_admin',pen_status='$pen_status',pen_upload='$Filename',pen_upload_name='$originalFilename' where pen_id='$id_edit'";
ผมแก้ตามนี้ครับ พอดีได้เลย ขอบคุณสำหรับคำแนะนำจากทุกๆท่านนะครับ
Date :
2015-10-28 10:37:29
By :
NuItMaster
แล้วที่ผมบอก ไม่ได้แก้เหรอครับ พอเข้าเคส มันก็จะเออเร่อร์เอานะ ทั้ง function ที่อยู่ใน ลูป อีก
อย่าทำแบบขอไปทีไม่ดีนะครับ
Date :
2015-10-28 10:41:51
By :
NewbiePHP
Load balance : Server 01