การแก้ไขข้อความโดยที่ไม่ทำการ upload มาใหม่ให้ใช้ไฟล์เดิมค่ะ

ถาม-ตอบ แนะนำไอเดียว โค้ดตัวอย่าง แนวทาง วิธีแก้ปัญหา การแก้ไขข้อความโดยที่ไม่ทำการ upload มาใหม่ให้ใช้ไฟล์เดิมค่ะ

การแก้ไขข้อความโดยที่ไม่ทำการ upload มาใหม่ให้ใช้ไฟล์เดิมค่ะ
ก่อนการอัพเดทจะมีรูปภาพ เมื่อแก้ไขข้อความแล้วกดอัพเดท ค่าของรูปภาพเดิมไม่ส่งมาค่ะ
รหัสสินค้าที่ 14 คือก่อนที่จะมีการอัพเดทหรือเเก้ไขข้อมูลต่าง ๆ ไฟล์ภาพยังคงเป็นภาพเดิมไม่เปลี่ยนแปลงอะไร
แต่ในรหัสสินค้าที่ 12 คือ หลังจากที่ลองอัพเดทชื่อสินค้าแล้วแต่ว่าไฟล์รูปภาพสินค้าเปลี่ยนเป็นไฟล์อื่น แล้วไฟล์รูปภาพที่แสดงให้เห็นไม่ได้เป็นไฟล์นามสกุลไม่ใช่ไฟล์ .JPG .PNG 
<?php
				include ("./header.php");
				include ("./connectdb.php");
		        include ("./menu1.php");

?>
<?php

       $pro_id=$_POST['pro_id'];
	   $pro_name=$_POST['pro_name'];
	   $pro_price=$_POST['pro_price'];
	   $pro_count=$_POST['pro_count'];

	   //upload  imag

 	$numrand = (mt_rand());
	
$pro_image = (isset($_REQUEST['pro_image']) ? $_REQUEST['pro_image'] : '');
	
	$upload=$_FILES['pro_image'];
	if($upload <> '') { 
 
	//โฟลเดอร์ที่เก็บไฟล์
	$path="product/";
	
	
	//ตัวขื่อกับนามสกุลภาพออกจากกัน
	$type = strrchr($_FILES['pro_image']['name'],".");
	$nawe = $numrand.$type;
	
	$path_copy = $path.$nawe;
		
		
		//คัดลอกไฟล์ไปยังโฟลเดอร์
	move_uploaded_file($_FILES['pro_image'] ['tmp_name'],$path_copy);  
	
	}
	
	
	
	  
	  $sql = "update product SET pro_name='$pro_name',
	   pro_image='$nawe',
	   pro_price='$pro_price',
	   pro_count='$pro_count'
	   where pro_id='$pro_id'";
		
	  //$result = $mysqli->query($sql) or die($mysqli->error.__LINE__);
		$mysqli->query($sql);
		echo $sql;exit();

?>
		
	
		 
    <meta http-equiv="refresh" content="0; url=./show_product.php">
		 
 
<?php
		
		include("./footer.php");
		
?>


BookloveEarth 29-05-2019 20:33:07

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

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


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


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

 ความคิดเห็นที่ 1
การเขียนโปรแกรม หลักสำคัญคือ การทำงานภายใต้เงื่อนไข http://niik.in/que_2798_6304
การอัพโหลดรูปภาพ โดยเก็บชื่อไฟล์ไว้ใน database และก็เก็บไฟล์ไว้บน server
ทำได้สองแบบคือ อัพเดทแยก กับอัพเดทรวม
อัพโหลดแยก
 
<?php
// มีการส่งไฟล์มา
if($_FILES['pro_image']['name']!=""){
    //โฟลเดอร์ที่เก็บไฟล์
    $path="product/";
        
    //ตัวขื่อกับนามสกุลภาพออกจากกัน
	$arrType = explode(".",$_FILES['pro_image']['name']); // แยกชื่อไฟล์ด้วย . เป็น array
	$type = array_pop($arrType);	 // เอา array ตัวสุดท้ายมาเป็น นามสกุลไฟล์
	$numrand = "ชื่อไฟล์ใหม่";  // กำหนดชื่อรูปแบบไฟล์ใหม่ที่ต้องการ
    $nawe = $numrand.".".$type;  // สร้่างรูปแบบชื่อไฟล์ใหม่ โดยต่อเข้ากับนามสกุล
     
    $path_copy = $path.$nawe;  // กำหนด path ไฟล์ที่จะจัดเก็บ
        //คัดลอกไฟล์ไปยังโฟลเดอร์
    move_uploaded_file($_FILES['pro_image'] ['tmp_name'],$path_copy);  
	$sql = "update product SET pro_image='$nawe' where pro_id='$pro_id'";
	$mysqli->query($sql);
	// หรือจะใส่เงื่อนไขอีกก็ได้
/*	if(move_uploaded_file($_FILES['pro_image'] ['tmp_name'],$path_copy)){ // อัพโหลดไฟล์เรียบร้อย
		$sql = "update product SET pro_image='$nawe' where pro_id='$pro_id'";
		$mysqli->query($sql);		
	}*/
}
// ต่อด้วขอัพเดทส่วนอื่นๆ
$sql = "update product SET 
pro_name='$pro_name',
pro_price='$pro_price',
pro_count='$pro_count'
where pro_id='$pro_id'";

//$result = $mysqli->query($sql) or die($mysqli->error.__LINE__);
$mysqli->query($sql);
?>
 
อัพโหลดรวม
 
การอัพเดทรูปรวมกับข้อมูลอื่น เราต้องมั่นใจว่า ต้องมีข้อมูลทุกฟิลด์ ส่งมา
อย่างกรณีมีไฟล์รูปเดิมอยู่แล้ว เราต้องส่งค่า input hidden ชื่อรูปเดิมที่ใช้อยู่มาด้วย
 
<input type="hidden" name="h_pro_image" value="ชื่อไฟล์รูปเดิม" />
ไว้ใช้กรณี ที่ไม่มีการอัพโหลดรูป หรืออัพโหลดรูปไม่ผ่าน แนวทางตามด้านล่าง
 
 
<?php
// มีการส่งไฟล์มา
if($_FILES['pro_image']['name']!=""){ // มีอัพโหลดไฟล์
    //โฟลเดอร์ที่เก็บไฟล์
    $path="product/";
        
    //ตัวขื่อกับนามสกุลภาพออกจากกัน
	$arrType = explode(".",$_FILES['pro_image']['name']); // แยกชื่อไฟล์ด้วย . เป็น array
	$type = array_pop($arrType);	 // เอา array ตัวสุดท้ายมาเป็น นามสกุลไฟล์
	$numrand = "ชื่อไฟล์ใหม่";  // กำหนดชื่อรูปแบบไฟล์ใหม่ที่ต้องการ
    $nawe = $numrand.".".$type;  // สร้่างรูปแบบชื่อไฟล์ใหม่ โดยต่อเข้ากับนามสกุล
     
    $path_copy = $path.$nawe;  // กำหนด path ไฟล์ที่จะจัดเก็บ
        //คัดลอกไฟล์ไปยังโฟลเดอร์

	// หรือจะใส่เงื่อนไขอีกก็ได้
	if(!move_uploaded_file($_FILES['pro_image'] ['tmp_name'],$path_copy)){ // อัพโหลดไม่สำเร็จ
		$nawe = $_POST['h_pro_image']; // ใช้ชื่อเดิม จาก input hidden ที่ส่งมา
	}else{ // อัพโหลดรูปผ่าน 
		// อาจทำคำสัี่งลบรูปเดิม
		@unlink($path.$_POST['h_pro_image']);	
	}
}else{ // ไม่มีการอัพโหลดไฟล์ 
	$nawe = $_POST['h_pro_image']; // ใช้ชื่อเดิม จาก input hidden ที่ส่งมา
}
// ต่อด้วขอัพเดทส่วนอื่นๆ
$sql = "update product SET 
pro_name='$pro_name',
pro_image='$nawe',
pro_price='$pro_price',
pro_count='$pro_count'
where pro_id='$pro_id'";

//$result = $mysqli->query($sql) or die($mysqli->error.__LINE__);
$mysqli->query($sql);
?>


บทความแนะนำที่เกี่ยวข้อง
สร้างฟังก์ชันสำหรับอัพโหลดรูป แบบกำหนดเงื่อนไข อย่างง่ายอ่าน 21,773
ninenik 30-05-2019






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