سلام دوستان برای ویرایش یه مشکلی دارم وقتی ویرایش انجام میدم به درستی انجام میشه اصلا مشکلی نیست ولی اگه موقع ویرایش عکس جدید انتخاب نکنم عکس قبلی دیگه خونده نمیشه
یعنی هر دفعه روی دکمه ویرایش میزنم حتما باید یه تصویر انتخاب کنم
کدهای من
<?php
if (isset($_GET['edit'])) {
$id = $_GET['edit'];
$query = mysqli_query($db, "SELECT * FROM managecourses WHERE id= $id");
$courseInfo = mysqli_fetch_assoc($query);
?>
<div class="panel-body">
<form method="post" action="managecourses.php" enctype="multipart/form-data">
<input type="hidden" name="id" value="<?php echo $courseInfo['id']; ?>">
<div class="form-group">
<label for="exampleInputEmail1">نام دوره:</label>
<input type="text" class="form-control" id="exampleInputEmail1" name='course' placeholder="نام دانشجو را وارد نمایید" value="<?php echo $courseInfo['course']; ?>">
</div>
<div class="form-group">
<label for="exampleInputPassword1">نام استاد:</label>
<input type="text" class="form-control" id="exampleInputPassword1" name='teachername' placeholder="رشته را وارد نمایید" value="<?php echo $courseInfo['teacher']; ?>">
</div>
<div class="form-group">
<label for="exampleInputEmail1">مدت دوره:</label>
<input type="text" class="form-control" id="exampleInputEmail1" name='modatzaman' placeholder="نمره را وارد نمایید" value="<?php echo $courseInfo['time']; ?>">
</div>
<div class="form-group">
<label for="exampleInputEmail1">توضیحات:</label>
<textarea name='comment' value="<?php echo $courseInfo['comment']; ?>" class="form-control"></textarea>
</div>
<div class="form-group">
<label for="exampleInputFile">آپلود عکس:</label>
<input type="file" name="new-image" id="exampleInputFile" class="form-control">
<input type="hidden" name="upload" value="<?php echo $courseInfo['image']; ?>" class="form-control">
<img src="../uploads/<?php echo $courseInfo['image']; ?>" width="150px" height="150px">
</div>
<button type="submit" name="edit_button" class="btn btn-info">ثبت اطلاعات جدید</button>
</form>
</div>
<?php } ?>
if (isset($_POST['edit_button'])) {
$id = $_POST['id'];
$course = $_POST['course'];
$teacher = $_POST['teachername'];
$time = $_POST['modatzaman'];
$description = $_POST['comment'];
if(!empty($_FILES['new-image']['name']))
{
$images = $_FILES['new-image']['name'];
$tmp = $_FILES['new-image']['tmp_name'];
move_uploaded_file($tmp , '../uploads/' .$images);
}
else
{
$images = $_FILES['upload'];
}
$updateCourse = mysqli_query($db, "UPDATE managecourses SET course = '$course' , teacher = '$teacher' , time = '$time' , comment = '$description' , image = '$images' WHERE id = '$id' ");
if($updateCourse){
header("location:managecourses.php");
}
}
برای ویرایش اگر عکس ارسال نشده بود دیگه از متغیر $_FILES استفاده نکنید
یعنی اگر عکس امده بود که خوب عکس رو قرار بدید توی $image و اگر عکس نیومده بود همون مقدار قبلی که در دیتابیس ذخیره شده رو بدید به متغیر $image
و یا اگر عکس نیومد کلا کوئری ویرایش رو بدون image انجام بدید
سلام
در اینجا:
if (!empty($_FILES['new-image']['name'])) {
$images = $_FILES['new-image']['name'];
$tmp = $_FILES['new-image']['tmp_name'];
move_uploaded_file($tmp , '../uploads/' .$images);
}
else {
$images = $_FILES['upload'];
}
اشتباه کردی! متغیر $image رو اینطور مقدار دهی کن:
$image = $_POST['upload'];
سلام ، یک راه حل ساده !!
داخل فایل های html یک input با تایپ hidden تعریف کنید با نام last_img و مقدار فعلی عکس رو داخلش قرار بدید ، بعد از ارسال فرم کد زیر رو بنویسید آپدیت عکس یا مقدار دهی قبلی
$file_image = $_FILES['file_image']['name'];
$temp = $_FILES['file_image']['tmp_name'];
$size = $_FILES['file_image']['name'];
if (isset($_POST['last_img'])) {
$last_image = $_POST['last_img'];
}
if ($file_image != "") {
move_uploaded_file($temp, "../uploads/" . $file_image);
} else {
$file_image = $last_image;
move_uploaded_file($temp, ".../uploads/" . $file_image);
}
این کد رو جایگزین کدی که واسه گرفتن و آپلود کردن عکس میکنید قرار بدید
@alefsheen
سلام اینکارو انجام دادم
مشکلی که پیش اومد دیگه تصویر جدید که میزارم اپدیت نمیشه
این الان مشکلش چیه که اصلا اپدیت نمیکنه؟
<?php
if(isset($_GET['edit']))
{
$id = $_GET['edit'];
$query = mysqli_query($db , "SELECT * FROM `mangecourses` WHERE id = $id");
$courcseInfo = mysqli_fetch_assoc($query)
?>
<div class=" col-lg-12 content">
<div class="col-lg-6 banner">
<p>فرم ویرایش</p>
</div>
<div class=" col-lg-6 boxform">
<form method="post" action="managecourses.php" enctype="multipart/form-data">
<input type="hidden" value="<?php echo $courcseInfo['id'] ?>" name="id">
<div class="form-group">
<label>نام دوره:</label>
<input type="text" name="course" class="form-control" value="<?php echo $courcseInfo['course'] ?>">
</div>
<div class="form-group">
<label>نام استاد:</label>
<input type="text" name="teacher" class="form-control" value="<?php echo $courcseInfo['teacher'] ?>">
</div>
<div class="form-group">
<label>مدت دوره:</label>
<input type="text" name="time" class="form-control" value="<?php echo $courcseInfo['time'] ?>">
</div>
<div class="form-group">
<label for="exampleInputPassword1">توضیحات:</label>
<textarea class="form-control" name="description" value="<?php echo $courcseInfo['description'] ?>"></textarea>
</div>
<div class="form-group">
<label> عکس:</label>
<input type="file" name="new-image">
<input type="hidden" name="image" value="<?php echo $courcseInfo['image'] ?>">
</div>
<div class="form-group">
<center><button class="btn btn-success" name="editCourse" type="submit">ویرایش</button></center>
</div>
</form>
</div>
</div>
<?php } ?>
</section>
<?php
//edit
if(isset($_POST['editCourse'])) {
$id = $_POST['id'];
$course = $_POST['course'];
$teacher = $_POST['teacher'];
$time = $_POST['time'];
$descript = $_POST['description'];
if(!empty($_FILES['new-image']['name']))
{
$images = $_FILES['new-image']['name'];
$tmp = $_FILES['new-image']['tmp_name'];
move_uploaded_file($tmp , '../upload/' .$images);
}
else
{
$images = $_POST['image'];
}
$update = mysqli_query($db, " UPDATE mangecourses SET course = '$course' , teacher = '$teacher' , time = '$time' , description = '$descript' , image = '$images WHERE id = $id ");
if ($update) {
header('location:managecourses.php');
}
}
?>
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟