-2

I'm having problem trying to edit/update my product page which has multiple images using php prepared statement. if i have only one image in the image field it will update and unlink the oldimage successfully but since i have added 4(four) more images, updating this images is giving me tough time. Please can someone correct me where i'm wrong on this?

Below are the INSERT PAGE AND EDIT PAGE

Here is the code i used to insert product to database

<?php
    include 'admin_config.php';

    if (isset($_POST['view'])) {

      $id           = $_POST['id'];
      $title        = $_POST['title'];
      $make         = $_POST['make'];
      $model        = $_POST['model'];
      $price        = $_POST['price'];
      $loc          = $_POST['loc'];
      $yr           = $_POST['yr'];
      $condi        = $_POST['condi'];
      $trans        = $_POST['trans'];
      $mileage      = $_POST['mileage'];
      $isfeatured   = $_POST['isfeatured'];
      $wheel        = $_POST['wheel'];
      $details      = $_POST['details'];

      $photo=$_FILES['image']['name'];
      $upload="uploads/".$photo;

      $photo2=$_FILES['image2']['name'];
      $upload2="uploads/".$photo2;

      $photo3=$_FILES['image3']['name'];
      $upload3="uploads/".$photo3;

      $photo4=$_FILES['image4']['name'];
      $upload4="uploads/".$photo4;

      $photo5=$_FILES['image5']['name'];
      $upload5="uploads/".$photo5;

      // form validation: ensure that the form is correctly filled
      $sql = "INSERT INTO vehicle     (id,title,make,model,price,loc,yr,condi,trans,mileage,isfeatured,wheel,details,photo,photo2,photo3,photo4,photo5) VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)";

    $stmt=$conn->prepare($sql);
    $stmt->bind_param("isssssisssisssssss",$id,$title,$make,$model,$price,$loc,$yr,$condi,$trans,
    $mileage,$isfeatured,$wheel,$details,$upload,$upload2,$upload3,$upload4,$upload5);       
    $stmt->execute();
    move_uploaded_file($_FILES['image']['tmp_name'], $upload);
    move_uploaded_file($_FILES['image2']['tmp_name'], $upload2);
    move_uploaded_file($_FILES['image3']['tmp_name'], $upload3);
    move_uploaded_file($_FILES['image4']['tmp_name'], $upload4);
    move_uploaded_file($_FILES['image5']['tmp_name'], $upload5);

    $_SESSION['message'] = "Vehicle Added Successfully!"; 
   }

   ?>

    <section class="section">
      <div class="row">

        <div class="col-lg-12">

          <?php include ('message.php'); ?>

            <div class="card">
              <div class="card-body">
                <a href="add_property.php" class="btn btn-primary m-3" width="200px" >Add New Vehicle</a>
                <hr>

                <!-- No Labels Form -->
                  <form action="./add_vehicle.php" method="POST" class="row g-3" enctype="multipart/form-data">

                    <input type="hidden" name="id" value="<?php echo $row['id']; ?>">

                    <div class="col-md-6">
                        <label for="title" class="form-label">Title</label>
                        <input type="text" name="title" class="form-control">
                    </div>

                    <div class="col-md-6">
                        <label for="make" class="form-label">Make</label>
                        <input type="text" name="make" class="form-control">
                    </div>

                    <div class="col-md-6">
                        <label for="model" class="form-label">Model</label>
                        <input type="text" name="model" class="form-control">
                    </div>

                    <div class="col-md-6">
                        <label for="price" class="form-label">Price</label>
                        <input type="text" name="price" class="form-control">
                    </div>

                    <div class="col-md-6">
                        <label for="loc" class="form-label">Location</label>
                        <input type="text" name="loc" class="form-control">
                    </div>

                    <div class="col-md-6">
                        <label for="yr" class="form-label">Year</label>
                        <input type="text" name="yr" class="form-control">
                    </div>

                    <div class="col-md-6">
                        <label for="condi" class="form-label">Condition</label>
                        <select id="inputState" name="condi" class="form-select">
                            <option selected disabled value="">Select Condition</option>
                            <option value="New">New</option>
                            <option value="Foreign Used">Foreign Used</option>
                            <option value="Nigeria Used">Nigeria Used</option>
                        </select>
                    </div>

                    <div class="col-md-6">
                        <label for="trans" class="form-label">Transmission</label>
                        <select id="inputState" name="trans" class="form-select">
                            <option selected disabled value="">Select Transmission</option>
                            <option value="Automatic">Automatic</option>
                            <option value="Manual">Manual</option>
                        </select>
                    </div>

                    <div class="col-md-6">
                        <label for="mileage" class="form-label">Mileage</label>
                        <input type="text" name="mileage" class="form-control">
                    </div>

                    <div class="col-md-6">
                        <label for="isfeatured" class="form-label">isFeatured</label>
                        <select id="inputState" name="isfeatured" class="form-select">
                            <option selected disabled value="">Select isFeature</option>
                            <option value="1">Yes</option>
                            <option value="0">No</option>
                        </select>
                    </div>

                    <div class="col-md-6">
                        <label for="wheel" class="form-label">Wheel</label>
                        <input type="text" name="wheel" class="form-control">
                    </div>

                    <div class="col-md-12">
                        <label for="details" class="form-label">Description</label>
                        <textarea id="default" class="form-control" rows="8" name="details"></textarea>
                    </div><br><br>

                    <div class="col-md-6 justify-content-center">
                        <label for="customFile" class="form-label">Photo</label>
                        <input type="file" name="image" class="custom-file">
                    </div><br><br>

                    <div class="col-md-6 justify-content-center">
                        <label for="customFile" class="form-label">Photo2</label>
                        <input type="file" name="image2" class="custom-file">
                    </div><br><br>

                    <div class="col-md-6 justify-content-center">
                        <label for="customFile" class="form-label">Photo3</label>
                        <input type="file" name="image3" class="custom-file">
                    </div><br><br>

                    <div class="col-md-6 justify-content-center">
                        <label for="customFile" class="form-label">Photo4</label>
                        <input type="file" name="image4" class="custom-file">
                    </div><br><br>

                    <div class="col-md-6 justify-content-center">
                        <label for="customFile" class="form-label">Photo5</label>
                        <input type="file" name="image5" class="custom-file">
                    </div><br><br>

                    <div class="text-center">
                        <input type="submit" name="view" class="btn btn-primary btn-block" value="Add Product">
                        <input type="reset" name="clear" class="btn btn-secondary btn-block" value="Reset Product">
                    </div>
                  </form>
                  <!-- End No Labels Form -->

              </div>
            </div>

        </div>

      </div>
    </section>

  </main><!-- End #main -->

AND HERE IS MY EDIT PAGE

<?php

include 'admin_config.php';

$update=false;
$id           = '';
$title        = '';
$make         = '';
$model        = '';
$price        = '';
$loc          = '';
$yr           = '';
$condi        = '';
$trans        = '';
$mileage      = '';
$isfeatured   = '';
$wheel        = '';
$details      = '';
$photo        = '';
$photo2        = '';
$photo3        = '';
$photo4        = '';
$photo5        = '';


if(isset($_GET['id'])) {
 $id=$_GET['id'];

$sql="SELECT * FROM vehicle WHERE id=?";
$stmt=$conn->prepare($sql);
$stmt->bind_param("i", $id);
$stmt->execute();
$result=$stmt->get_result();
$row=$result->fetch_assoc();

$id           = $row['id'];
$title        = $row['title'];
$make         = $row['make'];
$model        = $row['model'];
$price        = $row['price'];
$loc          = $row['loc'];
$yr           = $row['yr'];
$condi        = $row['condi'];
$trans        = $row['trans'];
$mileage      = $row['mileage'];
$isfeatured   = $row['isfeatured'];
$wheel        = $row['wheel'];
$details      = $row['details'];
$photo        = $row['photo'];  
$photo2        = $row['photo2']; 
$photo3        = $row['photo3']; 
$photo4        = $row['photo4']; 
$photo5        = $row['photo5'];  

}


if (isset($_POST['update'])) {

$id           = $_POST['id'];
$title        = $_POST['title'];
$make         = $_POST['make'];
$model        = $_POST['model'];
$price        = $_POST['price'];
$loc          = $_POST['loc'];
$yr           = $_POST['yr'];
$condi        = $_POST['condi'];
$trans        = $_POST['trans'];
$mileage      = $_POST['mileage'];
$isfeatured   = $_POST['isfeatured'];
$wheel        = $_POST['wheel'];
$details      = $_POST['details'];
$oldimage     = $_POST['oldimage'];
$oldimage2     = $_POST['oldimage2'];
$oldimage3     = $_POST['oldimage3'];
$oldimage4     = $_POST['oldimage4'];
$oldimage5     = $_POST['oldimage5'];

if(isset($_FILES['image']['name'])&&($_FILES['image']['name']!="")){
 $newimage="uploads/".$_FILES['image']['name'];
 unlink($oldimage);
 move_uploaded_file($_FILES['image']['tmp_name'], $newimage);
 } 
if(isset($_FILES['image2']['name2'])&&($_FILES['image2']['name2']!="")){
 $newimage2="uploads/".$_FILES['image2']['name2'];
 unlink($oldimage2);
 move_uploaded_file($_FILES['image2']['tmp_name2'], $newimage2);
 } 
if(isset($_FILES['image3']['name3'])&&($_FILES['image3']['name3']!="")){
 $newimage3="uploads/".$_FILES['image3']['name3'];
 unlink($oldimage3);
 move_uploaded_file($_FILES['image']['tmp_name'], $newimage3);
 } 
if(isset($_FILES['image4']['name4'])&&($_FILES['image4']['name4']!="")){
 $newimage4="uploads/".$_FILES['image4']['name4'];
 unlink($oldimage4);
 move_uploaded_file($_FILES['image4']['tmp_name4'], $newimage4);
 } 
if(isset($_FILES['image5']['name5'])&&($_FILES['image5']['name5']!="")){
 $newimage5="uploads/".$_FILES['image5']['name5'];
 unlink($oldimage);
 move_uploaded_file($_FILES['image5']['tmp_name5'], $newimage5);
 } 
 else{
   $newimage=$oldimage;
   $newimage2=$oldimage2;
   $newimage3=$oldimage3;
   $newimage4=$oldimage4;
   $newimage5=$oldimage5;
  }

 // form validation: ensure that the form is correctly filled
 $sql = "UPDATE vehicle SET title=?,make=?,model=?,price=?,loc=?,yr=?,condi=?,trans=?,mileage=?,isfeatured=?,
wheel=?,details=?,photo=?,photo2=?,photo3=?,photo4=?,photo5=? WHERE id=?";
  $stmt=$conn->prepare($sql);
  $stmt
>bind_param("sssssisssisssssssi",$title,$make,$model,$price,$loc,$yr,$condi,$trans,$mileage,$isfeatured,
$wheel,$details,$upload,$upload2,$upload3,$upload4,$upload5,$id);       
  $stmt->execute();

  $_SESSION['message'] = "Vehicle Updated Successfully!"; 

  }

 ?>


<section class="section">
  <div class="row">

    <div class="col-lg-12">

      <?php include ('message.php'); ?>

        <div class="card">
          <div class="card-body">
            <a href="edit_vehicle.php" class="btn btn-primary m-3" width="200px" >Add New Vehicle</a>
            <hr>

              <!-- No Labels Form -->
              <form action="./edit_vehicle.php" method="POST" class="row g-3" enctype="multipart/form-data">

                <input type="hidden" name="id" value="<?php echo $row['id']; ?>">

                <div class="col-md-6">
                    <label for="title" class="form-label">Title</label>
                    <input type="text" name="title" class="form-control" value="<?=$title; ?>">
                </div>

                <div class="col-md-6">
                    <label for="make" class="form-label">Make</label>
                    <input type="text" name="make" class="form-control" value="<?=$make; ?>">
                </div>

                <div class="col-md-6">
                    <label for="model" class="form-label">Model</label>
                    <input type="text" name="model" class="form-control" value="<?=$model; ?>">
                </div>

                <div class="col-md-6">
                    <label for="price" class="form-label">Price</label>
                    <input type="text" name="price" class="form-control" value="<?=$price; ?>">
                </div>

                <div class="col-md-6">
                    <label for="loc" class="form-label">Location</label>
                    <input type="text" name="loc" class="form-control" value="<?=$loc; ?>">
                </div>

                <div class="col-md-6">
                    <label for="yr" class="form-label">Year</label>
                    <input type="text" name="yr" class="form-control" value="<?=$yr; ?>">
                </div>

                <div class="col-md-6">
                    <label for="condi" class="form-label">Condition</label>
                    <input type="text" name="condi" class="form-control" value="<?=$condi; ?>">
                </div>

                <div class="col-md-6">
                    <label for="trans" class="form-label">Transmission</label>
                    <input type="text" name="trans" class="form-control" value="<?=$trans; ?>">
                </div>

                <div class="col-md-6">
                    <label for="mileage" class="form-label">Mileage</label>
                    <input type="text" name="mileage" class="form-control" value="<?=$mileage; ?>">
                </div>

                <div class="col-md-6">
                    <label for="isfeatured" class="form-label">isFeatured</label>
                    <input type="text" name="isfeatured" class="form-control" value="<?=$isfeatured; ?>">
                </div>

                <div class="col-md-6">
                    <label for="wheel" class="form-label">Wheel</label>
                    <input type="text" name="wheel" class="form-control" value="<?=$wheel; ?>">
                </div>

                <div class="col-md-12">
                    <label for="details" class="form-label">Description</label>
                    <textarea id="default" class="form-control" rows="8"><?=$details; ?></textarea>
                </div><br><br>

                <div class="col-md-6 justify-content-center">
                    <input type="hidden" name="oldimage" value="<?= $photo; ?>">
                    <input type="file" name="image" class="custom-file">
                    <img src="<?= $photo; ?>" width="150" class="img-thumbnail">
                </div><br><br>

                <div class="col-md-6 justify-content-center">
                    <input type="hidden" name="oldimage2" value="<?= $photo2; ?>">
                    <input type="file" name="image2" class="custom-file">
                    <img src="<?= $photo2; ?>" width="150" class="img-thumbnail">
                </div><br><br>

                <div class="col-md-6 justify-content-center">
                    <input type="hidden" name="oldimage3" value="<?= $photo3; ?>">
                    <input type="file" name="image3" class="custom-file">
                    <img src="<?= $photo3; ?>" width="150" class="img-thumbnail">
                </div><br><br>

                <div class="col-md-6 justify-content-center">
                    <input type="hidden" name="oldimage4" value="<?= $photo4; ?>">
                    <input type="file" name="image4" class="custom-file">
                    <img src="<?= $photo4; ?>" width="150" class="img-thumbnail">
                </div><br><br>

                <div class="col-md-6 justify-content-center">
                    <input type="hidden" name="oldimage5" value="<?= $photo5; ?>">
                    <input type="file" name="image5" class="custom-file">
                    <img src="<?= $photo5; ?>" width="150" class="img-thumbnail">
                </div><br><br>

                <div class="text-center">
                    <input type="submit" name="update" class="btn btn-primary btn-block" value="Update Vehicle">
                    <input type="reset" name="clear" class="btn btn-secondary btn-block" value="Reset Vehicle">
                </div>
              </form>
              <!-- End No Labels Form -->
          </div>
        </div>

    </div>

  </div>
</section>
4
  • Don't you think you included too much code?
    – Dharman
    Commented Jan 26, 2023 at 22:00
  • 1
    FYI you can combine isset($variable) and $variable != '' into if (!empty($variable))
    – Barmar
    Commented Jan 26, 2023 at 22:01
  • 1
    $_FILES['image3']['name3'] should be $_FILES['image3']['name'] and similarly for all the other files.
    – Barmar
    Commented Jan 26, 2023 at 22:02
  • Ok Barmar, i'll do just that. Thanks
    – Abuchi
    Commented Jan 26, 2023 at 22:07

1 Answer 1

-1

The else block is only connected to the last if block for image5.

Each if statement for an image should have its own else to set the corresponding $newimageX to $oldimageX.

if(isset($_FILES['image']['name'])&&($_FILES['image']['name']!="")){
    $newimage="uploads/".$_FILES['image']['name'];
    unlink($oldimage);
    move_uploaded_file($_FILES['image']['tmp_name'], $newimage);
} else {
    $newimage = $oldimage;
}

if(isset($_FILES['image2']['name'])&&($_FILES['image2']['name']!="")){
    $newimage2="uploads/".$_FILES['image2']['name'];
    unlink($oldimage2);
    move_uploaded_file($_FILES['image2']['tmp_name'], $newimage2);
} else {
    $newimage2 = $oldimage2;
}

if(isset($_FILES['image3']['name'])&&($_FILES['image3']['name']!="")){
    $newimage3="uploads/".$_FILES['image3']['name'];
    unlink($oldimage3);
    move_uploaded_file($_FILES['image']['tmp_name'], $newimage3);
} else {
    $newimage3 = $oldimage3;
}

if(isset($_FILES['image4']['name'])&&($_FILES['image4']['name']!="")){
    $newimage4="uploads/".$_FILES['image4']['name'];
    unlink($oldimage4);
    move_uploaded_file($_FILES['image4']['tmp_name'], $newimage4);
} else {
    $newimage4 = $oldimage4;
}

if(isset($_FILES['image5']['name'])&&($_FILES['image5']['name']!="")){
    $newimage5="uploads/".$_FILES['image5']['name'];
    unlink($oldimage);
    move_uploaded_file($_FILES['image5']['tmp_name'], $newimage5);
} else {
    $newimage5 = $oldimage5;
}
7
  • Thank alot but when i edited and submit, i can't find it in the database.....seems i made a mistake somewhere
    – Abuchi
    Commented Jan 26, 2023 at 22:21
  • There was too much code for me to wade through, this was the only part that seemed obviously wrong.
    – Barmar
    Commented Jan 26, 2023 at 22:23
  • Thanks so much Barmar, it's just that when i edit and submit it disappeared from the database but i really appreciate it that you'd identified my problem. i'm cross-checking to discover why it's not submitting to database after editing.
    – Abuchi
    Commented Jan 26, 2023 at 22:36
  • You should enable mysqli error reporting. See stackoverflow.com/questions/22662488/…
    – Barmar
    Commented Jan 26, 2023 at 23:49
  • Thanks so much but after adding the error reporting, it's displaying this error message (Warning: unlink(): Invalid argument in ......) across all the lines i used unlink(oldimage); Please do you have any idea what this error mean? Warning: unlink(): Invalid argument
    – Abuchi
    Commented Jan 27, 2023 at 9:14

Not the answer you're looking for? Browse other questions tagged or ask your own question.