У меня есть таблица в моей базе данных называется "books_term",
когда я отправляю книгу, книга и ее категории хранятся в этой таблице.
некоторые из моих книг имеют несколько категорий, поэтому я решил сохранить каждую категорию в виде новой строки + book_id
например:
id category_id book_id
1 23 14
2 45 14
3 30 14
это структура таблицы "books_term", как видите, книга № 14 имеет три категории (23,45,30)
все работает нормально, пока я не решил обновить книгу в админ-панели моего cms.
вопрос: как я могу обновить эту категорию книг?
и как я могу обновить категории книг, если книга существует в "books_term", иначе вставить?
я должен использовать foreach
цикл для этой цели?
это мой php-код, и он работает неправильно,
$values = $_POST['category'];
$myid = $_POST['bookid'];
foreach($values as $value) {
$check = "SELECT * FROM books_term WHERE book_id = '$myid'";
$checkresult = mysqli_query($connection,$check);
if(mysqli_num_rows($checkresult) > 0){
$update_query = "UPDATE books_term SET category_id = '$value' WHERE book_id = '$myid'";
mysqli_query($connection,$update_query);
echo 'updated';
}else{
$insert_query = "INSERT INTO books_term (category_id,book_id) VALUES ('$value','$myid')";
mysqli_query($connection,$insert_query);
echo 'inserted';
}
}
на странице редактирования, когда я выбираю несколько категорий и нажимаю кнопку обновления, он просто устанавливает для последней выбранной категории значение book_id 14, как на рисунке ниже: