Я хочу обновить значения, но я не хочу менять изображение при обновлении изображения удалить

Я обновляю значения моей формы. Изображение уже загружено и видно на форме. Когда я только обновляю текстовое значение, изображение удаляется, и оно показывает blank.means, оно не остается тем же самым, когда я обновляю его, просто удаляю автоматически, я думаю, что не получая путь для текущего значения изображения, когда я обновляю другие значения. пожалуйста, помогите мне разобраться с этой проблемой
например, если мне нужно обновить только имя человека, я меняю имя, а другие поля остаются прежними. Когда я нажимаю на обновить, все значения остаются прежними, а также обновляются те, которые я обновляю, но проблема в том, что эта фотография удаляется, не остаются прежними

<?php

$v_id = $_GET['v_id'];
include "config.php";

$sql = "SELECT * FROM my_veh_ven WHERE v_id='$v_id'";
$result = mysqli_query($conn,$sql);
if(mysqli_num_rows($result)>0)
{
while($row = mysqli_fetch_assoc($result)) {
?>
<!-- form start -->
<form role="form" method="POST" action="updateVehicle.php?v_id=<?= $row["v_id"] ?>" enctype="multipart/form-data">
<div class="box-body"><div class="form-group col-md-offset-0 col-md-4">
<label for="">25+ Days Rent in PKR</label>
<input type="text" class="form-control" name="v_25_plus_rent" value="<?=$row["v_25_plus_rent"]?>">
</div><div class="form-group col-md-offset-0 col-md-8">
<label >Change Vehicle Picture</label>
<input  type="file"  name="image" id="myFile" value="images/<?=$row["image"]?>" accept="image/*">
</div><div class="form-group col-md-offset-0 col-md-4" style="text-align: center;">
<label for="exampleInputFile" style="text-align: center;" >Current Vehicle Picture</label>
<?php echo'<Image src="images/'.$row["image"].'" style="width:325px;height:220px;"></Image>'; ?>
</div>

<div class=" ">
<div class=" with-border" style="text-align:center;">
<h4 class="box-title" style="text-align:center;"><b>Vendor Details</b></h4>
</div>
</div></div>
<!-- /.box-body -->

<div class="box-footer skin-yellow">
<button type="submit" name="submit" class="btn btn-primary skin-yellow">Update</button>
</div>
</form>
<?php
}

} else {
echo "Sorry something wrong";
}

mysqli_close($conn);
?>
   <?php
include "config.php";
if(isset($_POST['submit']))
{

$target = "images/".basename($_FILES['image']['name']);
$v_type = $_POST["v_type"];
$v_name = $_POST["v_name"];
$v_man = $_POST["v_man"];
$v_model = $_POST["v_model"];
$v_color = $_POST["v_color"];
$v_trans = $_POST["v_trans"];
$v_1_15_rent = $_POST["v_1_15_rent"];
$v_16_25_rent = $_POST["v_16_25_rent"];
$v_25_plus_rent = $_POST["v_25_plus_rent"];
$v_reg = $_POST["v_reg"];
$vendor_name = $_POST["vendor_name"];
$vendor_mobile = $_POST["vendor_mobile"];
$vendor_price = $_POST["vendor_price"];
$image = $_FILES["image"]["name"];
$v_id=$_GET["v_id"];

$sql = " UPDATE my_veh_ven SET v_type='$v_type', v_name='$v_name' ,v_man='$v_man' ,v_color='$v_color', v_trans='$v_trans',  v_1_15_rent='$v_1_15_rent' , v_16_25_rent='$v_16_25_rent' ,v_25_plus_rent='$v_25_plus_rent' , image='$image' , v_reg='$v_reg' ,vendor_name='$vendor_name', vendor_mobile='$vendor_mobile' ,vendor_price='$vendor_price'  WHERE v_id='$v_id' ";

if (mysqli_query($conn, $sql))
{

if(move_uploaded_file($_FILES['image']['tmp_name'], $target))
{
$success = "✓ Successfully Updated";
}

}
else
{
$fail = "X  Not Updated";
}
}

mysqli_close($conn);
?>

-2

Решение

<input type="file"/> не имеет значения атрибута использования. Изображение, после загрузки, находится на вашем сервере, и это все. Вы не можете установить значение ввода на что-либо, что было бы значимым.

Что вам, безусловно, нужно — это показать загруженную картинку вместо ввода и представить ввод, если пользователь хочет изменить его.

РЕДАКТИРОВАТЬ: Теперь, когда у нас есть ваш код PHP, мы видим, что вы перезаписываете переменную $ image, даже если она пуста

$image = $_FILES["image"]["name"];

Вы должны проверить, существует ли $ _FILES [«изображение»], иначе изображение будет нулевым или неопределенным. И тогда вы обновите базу данных с неправильным значением. Я предлагаю вам относиться к загрузке иначе, чем к другим данным:

<?php
include "config.php";
if(isset($_POST['submit']))
{

$target = "images/".basename($_FILES['image']['name']);
$v_type = $_POST["v_type"];
$v_name = $_POST["v_name"];
$v_man = $_POST["v_man"];
$v_model = $_POST["v_model"];
$v_color = $_POST["v_color"];
$v_trans = $_POST["v_trans"];
$v_1_15_rent = $_POST["v_1_15_rent"];
$v_16_25_rent = $_POST["v_16_25_rent"];
$v_25_plus_rent = $_POST["v_25_plus_rent"];
$v_reg = $_POST["v_reg"];
$vendor_name = $_POST["vendor_name"];
$vendor_mobile = $_POST["vendor_mobile"];
$vendor_price = $_POST["vendor_price"];

$v_id=$_GET["v_id"];

$sql = " UPDATE my_veh_ven SET v_type='$v_type', v_name='$v_name' ,v_man='$v_man' ,v_color='$v_color', v_trans='$v_trans',  v_1_15_rent='$v_1_15_rent' , v_16_25_rent='$v_16_25_rent' ,v_25_plus_rent='$v_25_plus_rent' , v_reg='$v_reg' ,vendor_name='$vendor_name', vendor_mobile='$vendor_mobile' ,vendor_price='$vendor_price'  WHERE v_id='$v_id' ";

if (mysqli_query($conn, $sql))
{

if(move_uploaded_file($_FILES['image']['tmp_name'], $target))
{
$image = $_FILES["image"]["name"];
$success = "✓ Successfully Updated";
$sql = "UPDATE my_veh_ven SET image='$image' WHERE v_id='$v_id' ";
mysqli_query($conn, $sql)
}

}
else
{
$fail = "X  Not Updated";
}
}

mysqli_close($conn);
?>
0

Другие решения

Простое решение при добавлении названия вашего изображения в 1 скрытую переменную, как показано ниже

$hiddenImage = $row["image"]

добавить эту скрытую переменную в вашей форме

<input type='hidden' name='hiddenImage' value='<?php echo $hiddenImage ?>'

и во время отправки проверьте, будет ли ваш тип ввода файла содержать какие-либо данные или нет. Если данные / изображение существуют, загрузите это изображение в папку с тем же именем в БД. если изображение не существует, получить эту входную переменную сохранить в базе данных.

например:

if (isset($_FILES["image"]["tmp_name"]) && $_FILES["image"]["tmp_name"] != "") {
// upload file and save image name in variable like $imagename
}else{
// if image not upload this code will execute
$imagename = $_POST['hiddenImage'];
}

Сохранить это $imagename переменные данные в базе данных

1

Есть простое решение для вашей проблемы. Когда отправляется форма, проверьте, установлен ли $ _FILES / предоставлен ли какой-либо файл или нет. Если какой-либо файл / изображение предоставлено, то обновите свою базу данных в соответствии с ней. Если массив $ _FILES пуст, это означает, что ваше изображение / файл не загружено, и, следовательно, вы можете обновить его соответствующим образом.

Что-то вроде ниже:

<?php

if(isset($_POST['submit'])){
//check for files or updated variables
if(isset($_FILES)){
//image is provided, now update values accrodingly in your database
echo "image/file provided";
}else{
//image is not uploaded, update other values in database expect image/file
echo "image/file not provided";
}

}else{
?>
<html>
<head><title>My demo form</title></head>
<body>
<form action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]); ?>" method="post" enctype="multipart/form-data">
<input type="text" name="data_one">
<input type="file" name="my_file" accept="image/*">
<input type="submit" value="submit">
</body>
</html>
<?php
}
?>
0
По вопросам рекламы ammmcru@yandex.ru
Adblock
detector