<?php
require_once __DIR__.'/boot.php';
$category_name = null;
$category_img = null;
$category_url = null;
// убеждаемся, что пост-параметр category_id существует, он массив, и в нем есть элементы
if(isset($_POST['category_id']) && is_array($_POST['category_id']) && count($_POST['category_id']) > 0 || isset($_POST['symbol']) && is_array($_POST['symbol']) && count($_POST['symbol']) > 0 || isset($_POST['buyin_symbol']) && is_array($_POST['buyin_symbol']) && count($_POST['buyin_symbol']) > 0)
{
foreach($_POST['category_id'] as $category_id)
{
// вставляем категории в промежуточную таблицу для хранения выбранных категорий
$stmt = pdo()->prepare("INSERT INTO `freeroll` (`name_turnament`, `prize`, `password`, `data`, `time`, `category_id`, `prize_symbol`, `buyin` , `buyin_symbol`, `category_name`, `category_img`, `category_url`)
SELECT `name`, `img`, `url` FROM `category` WHERE `id` = " . $category_id . "");
$stmt->execute([
'name_turnament' => $_POST['name_turnament'],
'prize' => $_POST['prize'],
'password' => $_POST['password'],
'data' => $_POST['data'],
'time' => $_POST['time'],
'category_id' => $category_id,
'prize_symbol' => $_POST['symbol'],
'buyin' => $_POST['buyin'],
'buyin_symbol' => $_POST['buyin_symbol'],
'category_name' => 'name',
'category_img' => 'img',
'category_url' => 'url',
]);
}
pdo('commit'); // все категории вставили, консистентность данных достигнута, можно фиксировать транзакцию
}
else
{
pdo('rollback'); //нет выделенных категорий, если они обязательны, то нужно откатить вставку записи в таблицу faucets. Если нет, то else нужно не использовать
// генерируем сообщение об ошибке, если нужно
}
header('Location: addfreerolls');
[14-Mar-2023 22:20:54 UTC] PHP Fatal error: Uncaught PDOException: SQLSTATE[21S01]: Insert value list does not match column list: 1136 Column count doesn't match value count at row 1 in /home/bubbmxyq/public_html/poker/freerolls/admins/do_addfreerolls.php:30
Stack trace:
#0 /home/bubbmxyq/public_html/poker/freerolls/admins/do_addfreerolls.php(30): PDOStatement->execute(Array)
#1 {main}
thrown in /home/bubbmxyq/public_html/poker/freerolls/admins/do_addfreerolls.php on line 30
'category_url' => 'url',
thrown in /home/bubbmxyq/public_html/poker/freerolls/admins/do_addfreerolls.php on line 33
[14-Mar-2023 22:08:48 UTC] PHP Notice: Undefined variable: category_name in /home/bubbmxyq/public_html/poker/freerolls/admins/do_addfreerolls.php on line 14
[14-Mar-2023 22:08:48 UTC] PHP Notice: Undefined variable: category_img in /home/bubbmxyq/public_html/poker/freerolls/admins/do_addfreerolls.php on line 15
[14-Mar-2023 22:08:48 UTC] PHP Notice: Undefined variable: category_url in /home/bubbmxyq/public_html/poker/freerolls/admins/do_addfreerolls.php on line 16
[14-Mar-2023 22:08:48 UTC] PHP Notice: Undefined variable: category_name in /home/bubbmxyq/public_html/poker/freerolls/admins/do_addfreerolls.php on line 31
[14-Mar-2023 22:08:48 UTC] PHP Notice: Undefined variable: category_img in /home/bubbmxyq/public_html/poker/freerolls/admins/do_addfreerolls.php on line 32
[14-Mar-2023 22:08:48 UTC] PHP Notice: Undefined variable: category_url in /home/bubbmxyq/public_html/poker/freerolls/admins/do_addfreerolls.php on line 33
[14-Mar-2023 22:08:48 UTC] PHP Fatal error: Uncaught PDOException: SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'category_name' cannot be null in /home/bubbmxyq/public_html/poker/freerolls/admins/do_addfreerolls.php:33
Stack trace:
#0 /home/bubbmxyq/public_html/poker/freerolls/admins/do_addfreerolls.php(33): PDOStatement->execute(Array)
webView.clearCache(true);
не был добавлен, но даже после добавления не работает. Добавил код в вопрос