Обновление файла на странице редактирования
Всем доброго времени суток. Есть небольшое задание : на странице редактирования нужно обновить файл с последующим его обновлением в бд, удалением старого если такой есть и отправление нового на сервер.Помимо файла есть еще поля ввода. Если не выбираем новый файл, оставляем прежний(исходный).
// так и не могу понять почему в sql запрос к file выбирается прошлый файл, если я выбрал новый
update.php
<?php
require_once 'connect.php';
session_start();
$id = mysqli_real_escape_string($connect, $_POST['id']);
$title = mysqli_real_escape_string($connect, $_POST['title']);
$author = mysqli_real_escape_string($connect, $_POST['author']);
$place = mysqli_real_escape_string($connect, $_POST['place']);
$year = mysqli_real_escape_string($connect, $_POST['year']);
$publisher = mysqli_real_escape_string($connect, $_POST['publisher']);
$compedit = mysqli_real_escape_string($connect, $_POST['compedit']);
$countpages = mysqli_real_escape_string($connect, $_POST['countpages']);
$archive = mysqli_real_escape_string($connect, $_POST['archive']);
$BBK = mysqli_real_escape_string($connect, $_POST['BBK']);
$inventnumber = mysqli_real_escape_string($connect, $_POST['inventnumber']);
$numbinstances = mysqli_real_escape_string($connect, $_POST['numbinstances']);
$lasttaker = mysqli_real_escape_string($connect, $_POST['lasttaker']);
// Получаем имя старого файла
$sql = "SELECT file FROM infprintedit WHERE id='$id'";
$result = mysqli_query($connect, $sql);
$row = mysqli_fetch_assoc($result);
$old_file = $row['file'];
// Проверяем, был ли выбран новый файл
$old_file = $row['file'];
if (isset($_FILES['image']) && $_FILES['image']['error'] == UPLOAD_ERR_OK && is_uploaded_file($_FILES['image']['tmp_name'])) {
if (!empty($old_file) && file_exists('../uploads/' . $old_file)) {
unlink('../uploads/' . $old_file);
}
$new_file = $_FILES['image']['name'];
$new_file_tmp = $_FILES['image']['tmp_name'];
$new_file_ext = strtolower(pathinfo($new_file, PATHINFO_EXTENSION));
$extensions = ['jpg', 'jpeg', 'png'];
if (in_array($new_file_ext, $extensions)) {
$file_name = uniqid('', true) . '.' . $new_file_ext;
move_uploaded_file($new_file_tmp, '../uploads/' . $file_name);
$file = $file_name;
} else {
echo "Invalid file extension.";
exit;
}
} else {
$file = $old_file;
}
// Обновляем запись в БД
$sql = "UPDATE infprintedit SET title='$title',
file='$file',
author='$author',
year='$year',
place='$place',
publisher='$publisher',
compedit='$compedit',
countpages='$countpages',
archive='$archive',
BBK='$BBK',
inventnumber='$inventnumber',
numbinstances='$numbinstances',
lasttaker='$lasttaker'
WHERE id='$id'";
if (mysqli_query($connect, $sql)) {
echo "Record updated successfully!";
echo '<pre>';
var_dump($sql);
echo '</pre>';
} else {
echo "Error updating record: " . mysqli_error($connect);
}
?>
edit.php
<div id="imageContainer">
<a href="#" onclick="openModal(this)">
<img id="imagePreview" src="uploads/<?= empty($file) ? $row['file'] : $file ?>" width="200" height="300" margin="auto">
</a>
</div>
<div class="inputWrapper">
<input type="file" id="fileInput" name="image" onchange="showImage(this)">
</div>