|
|
|
สอบถามปัญหาคำสั่ง SQL ข้อมูลที่เพิ่มไม่แสดงในดาต้าเบส ไฟล์ภาพที่ถูกแก้ไขไม่แสดง |
|
|
|
|
|
|
|
แก้ไขข่าว และภาพประกอบข่าว ปัญหาคือ เมื่อกดลบรูป รูปในโฟเดอร์ไม่หาย แต่สามารถเพิ่มรูปใหม่เข้ามาได้ แต่รูปใหม่ที่เพิ่มเข้ามานั้นไม่แสดงภาพ
ภาพไม่แสดงเมื่อเเก้ไขภาพ
ภาพดาต้าเบส
หน้า frm_update_news.php
Code
<?php
include 'connectdb.php';
require 'connectdb.php';
$news_id = $_GET['id'];
$sql = "SELECT * FROM tbnew WHERE news_id='$news_id'";
$res_news = mysqli_query($dbcon, $sql);
$row_news = mysqli_fetch_assoc($res_news);
?>
<html>
<head>
<meta charset="UTF-8">
<h1 style="text-align:center;">แก้ไขสถานที่ท่องเที่ยว</h1>
<h1>แก้ไขรายละเอียดข่าว รหัส <?php echo $news_id; ?></h1>
<style>
label {
display: block;
}
</style>
<script src="../ckeditor/ckeditor.js"></script>
<body bgcolor="#F0FFF0">
</head>
<body>
<form id="form1" action="update_news.php" method="post" enctype="multipart/form-data">
<label for="newstype">เลือกประเภทสถานที่ท่องเที่ยว</label>
<select name ="newstype">
<option value="">--กรุณาเลือกประเภทสถานที่ท่องเที่ยว--</option>
<?php
$sql_newstype = "SELECT * FROM tbnewtype";
$res_newstype = mysqli_query($dbcon, $sql_newstype);
while ($row_newstype = mysqli_fetch_assoc($res_newstype)) {
if ($row_newstype['newstype_id'] == $row_news['newstype_id']) {
echo '<option value="' . $row_newstype['newstype_id'].'" selected >' . $row_newstype['newstype_detail'] . '</option>';
} else {
}
echo '<option value="' . $row_newstype['newstype_id'] . '">' . $row_newstype['newstype_detail'] . '</option>';
}
?>
</select>
<label for="news_topic">เพิ่มหัวข้อข่าว</label>
<input type="text" name="news_topic" value=" <?php echo $row_news['news_topic']; ?> " required>
<label for="news_detail">เนื้อหาข่าว</label>
<textarea name="news_detail" id="news_detail" rows="20" cols="130">
<?php echo $row_news['news_detail']; ?>
</textarea>
<script>
CKEDITOR.replace('news_detail', {
uiColor: '#E6E6FA'
});
</script>
<br>
<img src="../news_image/<?php echo $row_news['news_filename']; ?> " width="200px" height="100px">
<label for="news_filename">ภาพประกอบข่าว</label>
<input type="file" name="news_filename">
<label for="news_status">สถานะข่าว</label>
<?php
if ($row_news['news_status'] == 0) {
echo ' <input type="radio" value="0" checked name="news_status"> สถานทีท่องเที่ยวทั่วไป <br>';
echo '<input type="radio" value="1" name="news_status"> สถานที่ท่องเที่ยวที่เด่น ';
} else {
echo ' <input type="radio" value="0" checked name="news_status"> สถานทีท่องเที่ยวทั่วไป <br>';
echo '<input type="radio" value="1" checked name="news_status"> สถานที่ท่องเที่ยวที่เด่น ';
}
?>
<input type="hidden" name="news_id" value="<?php echo $row_news['news_id']; ?>">
<br>
<input type="submit" value="บันทึก">
</form>
<a href="../index.php">
<br>
<br>
กลับสู่หน้าหลัก</a>
หน้า update_news.php
Code
<?php
include 'connectdb.php';
$news_id = $_POST['news_id'];
$newstype_id = $_POST['newstype'];
$news_topic = $_POST['news_topic'];
$news_detail = $_POST['news_detail'];
$news_status = $_POST['news_status'];
if (is_uploaded_file($_FILES['news_filename']['tmp_name'])) {
//ลบภาพก่อนอัป delete old image
$sql_select = "SELECT news_filename FROM tbnew WHERE news_id='$news_id'";
$result_image= mysqli_query($dbcon, $sql_select);
$row_image = mysqli_fetch_assoc($result_image);
$image_old = $row_image['news_filename'];
unlink("../news_image/".$image_old);
//up ภาพ
$image_ext = pathinfo(basename($_FILES['news_filename']['name']), PATHINFO_EXTENSION);
$new_image_name = 'news_'.uniqid().".".$image_ext;
$image_path = "../news_image/";
$image_upload_path = $image_path.$new_image_name;
$success = move_uploaded_file($_FILES['news_filename']['tmp_name'],$image_upload_path);
$sql_image = "UPDATE tbnew SET news_filename='$new_image_name' WHERE news_id=$news_id'";
mysqli_query($dbcon, $sql_image);
if ($success==false) {
echo "ไม่สามารถ upload รูปภาพได้";
exit();
}
}
//update data
$sql = "UPDATE tbnew SET news_topic='$news_topic',news_detail='$news_detail',news_status='$new_statues',news_data=NOW(),newstype_id='$newstype_id'";
$sql .= "WHERE news_id='$news_id'";
$result = mysqli_query($dbcon, $sql);
if ($result) {
//echo "บันทึกข้อมูลเรียบร้อยแล้ว";
header("Location: main.php");
} else {
echo "เกิดข้อผิดพลาด ". mysqli_error($dbcon);
}
Tag : PHP, MySQL, HTML, HTML5, Web Services, XAMPP
|
|
|
|
|
|
Date :
2019-03-11 21:27:46 |
By :
1541158739347519 |
View :
1256 |
Reply :
3 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ตรง
frm_update_news.php
ลองเพิ่ม
<input type="hidden" name="hdnOldFile" value="<?php echo $result["file_img"];?>">
ส่วนหน้า
update_news.php
ลองเพิ่ม
@unlink("img/".$_POST["hdnOldFile"]);
เมื่อมีการกด submit ให้มันทำการลบข้อมูลใน folder ออก ครับ
คือหน้า
update_news.php
ลองในมันลบภาพใน folder ให้ได้ก่อนก็ได้ครับ แล้วค่อย ๆแก้ไป
ศึกษาได้จากตัวนี้ ครับ
https://www.thaicreate.com/community/php-upload-file-mysql-edit-form.html
|
|
|
|
|
Date :
2019-03-12 08:45:53 |
By :
nobetaking |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ลองเช็คเป็นสเต็ปบายสเต็ปดูครับ
1.เมื่อกดลบรูป รูปในโฟเดอร์ไม่หาย
มีปุ่มที่ใช้ในการลบรูปโดยเฉพาะหรือป่าวครับ
ก็คือพอคลิกแล้วรูปภาพนั้นก็หายไป
(ลบรูป หรือ เมื่อมีการอัพรูปภาพใหม่แล้วให้ทำการลบรูปภาพเก่าโดยอัตโนมัติ)
2.แต่สามารถเพิ่มรูปใหม่เข้ามาได้
ที่สามารถเพิ่มรูปภาพเข้ามาได้คือ
เพิ่มได้ในทั้ง folder ที่เก็บภาพ และในฐานข้อมูลมีการจัดเก็บข้อมูล
ถ้าเพิ่มได้ทั้ง 2 ที่ภาพน่าจะแสดงครับ
3.แต่รูปใหม่ที่เพิ่มเข้ามานั้นไม่แสดงภาพ
ถ้า part ถูกน่าจะแสดงแล้วครับ ที่ไม่แสดงอาจจะเกิดจากไม่ได้เก็บชื่อไฟล์ภาพหรืออัพเดทชื่อไฟล์ภาพใหม่
เอา เมนู PHP Code ครอบ Code ครับจะได้แบบนี้
Code (PHP)
//ส่วนนี้ดึงมาแค่อันเดียวก็พอครับ
include 'connectdb.php';
require 'connectdb.php';
|
|
|
|
|
Date :
2019-03-13 09:54:22 |
By :
nobetaking |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 03
|