paradox
3 سال پیش توسط paradox مطرح شد
5 پاسخ

ویرایش تصویر در php

سلام دوستان برای ویرایش یه مشکلی دارم وقتی ویرایش انجام میدم به درستی انجام میشه اصلا مشکلی نیست ولی اگه موقع ویرایش عکس جدید انتخاب نکنم عکس قبلی دیگه خونده نمیشه
یعنی هر دفعه روی دکمه ویرایش میزنم حتما باید یه تصویر انتخاب کنم

کدهای من


<?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");
    }
    }

ثبت پرسش جدید
مهدی شاه عباسیان
تخصص : برنامه نویس
@shahabbasian 3 سال پیش مطرح شد
0

برای ویرایش اگر عکس ارسال نشده بود دیگه از متغیر $_FILES استفاده نکنید
یعنی اگر عکس امده بود که خوب عکس رو قرار بدید توی $image و اگر عکس نیومده بود همون مقدار قبلی که در دیتابیس ذخیره شده رو بدید به متغیر $image
و یا اگر عکس نیومد کلا کوئری ویرایش رو بدون image انجام بدید


الف. شین.
تخصص : junior php developer
@alefsheen 3 سال پیش مطرح شد
0

سلام
در اینجا:

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'];

فرشید مرادی
تخصص : noob
@eniack 3 سال پیش مطرح شد
0

سلام ، یک راه حل ساده !!
داخل فایل های 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);
    }

این کد رو جایگزین کدی که واسه گرفتن و آپلود کردن عکس میکنید قرار بدید


paradox
@wxyz4367 3 سال پیش مطرح شد
0

@alefsheen
سلام اینکارو انجام دادم
مشکلی که پیش اومد دیگه تصویر جدید که میزارم اپدیت نمیشه


paradox
@wxyz4367 3 سال پیش آپدیت شد
0

این الان مشکلش چیه که اصلا اپدیت نمیکنه؟

<?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');
    }
}

?>

برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام