Имеются две таблицы:
category (id, title);
posts (id, title, text, datetime, image, category_id);
Есть HTML-код, который выводит в форме редактирования записи виды категорий:
<?php foreach($categories as $category) { ?>
<option><?=$category["title"]?></option>
<?php } ?>
А также, код редактирования записи:
function edit_post($connect, $post_id){
$post_id = (int)$_GET['post_id'];
$types = array('image/gif', 'image/png', 'image/jpeg');
if(isset($_POST['submit'])){
$title = mysqli_real_escape_string($connect, $_POST['title']);
$text = mysqli_real_escape_string($connect, $_POST['text']);
$category = mysqli_real_escape_string($connect, $_POST['category']);
//Путь, куда должно сохраняться загруженное изображение
$path = '../../images/post/';
//Если изображение загружено
if(is_uploaded_file($_FILES["image"]["tmp_name"])){
//Проверка изображения на его тип
if(!in_array($_FILES['image']['type'], $types)){
die('Ошибка загрузки файла. Пожалуйста, загружайте изображения только в форматах JPG, PNG, GIF.');
}
//Перемещение изображения в специальную директорию на сервере
//Запись названия и формата изображения в БД
move_uploaded_file($_FILES["image"]["tmp_name"], $path . $_FILES["image"]["name"]);
$image = $_FILES['image']['name'];
$update = "UPDATE posts SET `title` = '$title', `text` = '$text', `image` = 'images/post/$image', `category_id` = '$category' WHERE id = ".$post_id;
$result = mysqli_query($connect, $update);
header("Location: ". $_SERVER["REQUEST_URI"]);
} else {
$update = "UPDATE posts SET `title` = '$title', `text` = '$text', `category_id` = '$category' WHERE id = ".$post_id;
$result = mysqli_query($connect, $update);
header("Location: ". $_SERVER["REQUEST_URI"]);
}
}
}
Если в селекте выводить по ID, то всё работает нормально, ID категории у записи меняется в таблице posts в поле category_id. Мне нужно чтобы в селекте небыло ID, а был только title, и чтобы при редактировании записи менялся ID в таблице category_id. Иными словами, чтобы titile прилетал вместе с ID, а обработчик принимал только ID. Что-то пока немогу понять как это реализовать.