Не обновляются данные php mysqli
написал код для обновления данных, но он не работает и не выдает ошибки. Не могу понять почему, потому что прописывал то же самое, но с другими таблицами и там все работает.
Форма обновления:
<?php
include 'partials/header.php';
//извлекать данные products из базы данных, если установлен идентификатор
if(isset($_GET['id'])){
$id = filter_var($_GET['id'], FILTER_SANITIZE_NUMBER_INT);
$query ="SELECT * FROM products WHERE id= $id";
$result = mysqli_query($connection,$query);
$product = mysqli_fetch_assoc($result);
} else{
header('location: ' . ROOT_URL . 'admin/');
die();
}
?>
<section class="form__section">
<div class="container form__section-container">
<h2>Изменение товара</h2>
<form action="<?= ROOT_URL ?>admin/edit-product-logic.php" enctype="multipart/form-data" method="POST">
<input type="hidden" name="id" value="<?= $product['id'] ?>">
<input type="hidden" name="previous_thumbnail_name" value="<?= $product['thumbnail'] ?>">
<input type="text" name="title" value="<?= $product['title'] ?>" placeholder="Title">
<input type="text" name="price" value="<?= $product['price'] ?>" placeholder="Title">
<div class="form__control">
<label for="thumbnail">Изменить фото</label>
<input type="file" name="thumbnail" id="thumbnail">
</div>
<button type="submit" name="submit" class="btn">Обновить пост</button>
</form>
</div>
</section>
<?php
include '../partials/footer.php';
?>
Логика обновления:
<?php
require 'config/database.php';
//проверка на нажатие кнопки редактировать публикацию
if(isset($_POST['submit'])){
$id = filter_var($_POST['id'], FILTER_SANITIZE_NUMBER_INT);
$previous_thumbnail_name = filter_var($_POST['previous_thumbnail_name'], FILTER_SANITIZE_FULL_SPECIAL_CHARS);
$title = filter_var($_POST['title'], FILTER_SANITIZE_FULL_SPECIAL_CHARS);
$price = filter_var($_POST['price'], FILTER_SANITIZE_FULL_SPECIAL_CHARS);
$thumbnail = $_FILES['thumbnail'];
//проверка и валидация входных значений
if(!$title){
$_SESSION['edit-product']= "Не удалось обновить пост. Неверные данные формы на странице редактирования записи";
}elseif(!$price){
$_SESSION['edit-product']= "Не удалось обновить пост. Неверные данные формы на странице редактирования записи";
}else{
//удалите существующую фото, если доступна новое фото
if($thumbnail['name']){
$previous_thumbnail_path = '../images/' . $previous_thumbnail_name;
if($previous_thumbnail_path){
unlink($previous_thumbnail_path);
}
}
//WORK ON THUMBNAIL
// переименуйте изображение
$time = time(); // сделать загружаемое название изображения уникальным, используя текущую временную метку
$thumbnail_name = $time . $thumbnail['name'];
$thumbnail_tmp_name = $thumbnail['tmp_name'];
$thumbnail_destination_path = '../images/' . $thumbnail_name;
//убедитесь, что файл является изображением
$allowed_files =['png','jpg','jpeg'];
$extension = explode('.', $thumbnail_name);
$extension = end($extension);
if(in_array($extension, $allowed_files)){
//убедитесь, что изображение не слишком большое. (3 мб+)
if($thumbnail['size'] < 10000000){
//загрузить фото
move_uploaded_file($thumbnail_tmp_name, $thumbnail_destination_path);
}else{
$_SESSION['edit-product'] = "Не удалось обновить пост. Слишком большой размер фото. Должно быть меньше 3 мб";
}
}else{
$_SESSION['edit-product'] = "Не удалось обновить пост. Фотография должна быть в формате png, jpg или jpeg ";
}
}
}
if(isset($_SESSION['edit-product'])){
//перенаправление на страницу управления формой, если форма была недействительной
header('location: ' . ROOT_URL . 'admin/');
die();
}else{
//установите название фото, если была загружена новая, сохраните старое название фото
$thumbnail_to_insert = $thumbnail_name ?? $previous_thumbnail_name;
$query = "UPDATE products SET title='$title',price='$price',thumbnail='$thumbnail_to_insert' WHERE id=$id LIMIT 1";
$result = mysqli_query($connection,$query);
if(!mysqli_errno($connection)){
$_SESSION['edit-product-success'] = "Сообщение успешно обновлено";
}
}
header('location: ' . ROOT_URL . 'admin/');
die();