Я знаю, что было много вопросов по $ _POST ARRAY и MySQL, и я уже много из них прошел. Однако ни один из тех, на которые я смотрел, не помог мне.
Я пытаюсь передать идентификатор строки из JQuery DataTable (используя плагин Gyrocode ckeckboes), отправить форму.
Если я использую: -
$i = 0;
foreach($_POST['id'] as $value){
echo "value : ".$value. '<br/>';
$i++;
}
Я получаю результат
значение: 1 значение: 25 значение: 32 значение: 5 значение: 17
Этого я и ожидал (количество строк и числовые значения зависят от того, сколько флажков я проверяю).
Но когда я введу запрос, он не сохранится в базе данных: -
$i = 0;
foreach($_POST['id'] as $value){
$sql = "INSERT INTO attendance (rider_id, at_date) VALUES ('$value', NOW())";
$i++;
}
Я пробовал всевозможные варианты этого, но ничего из того, что я делаю, похоже, не работает, и это похоже на глупую ошибку, которую я делаю :)
Спасибо
Я не понимаю, где вы выполняете запрос. HTML / JS, вероятно, также следует опубликовать. В любом случае проверьте наличие ошибок.
Если не уверены - прочтите stackoverflow.com/questions/18655706/…
Обратите внимание, что выполнение этого оператора sql сделает вас уязвимым для внедрения SQL.
Спасибо за комментарии. Js и HTML - это образцы, взятые из Гирокод. Я знаю, что он открыт для атак с использованием SQL-инъекций, но это не для открытой сети, это просто то, с чем я играю.
Мне удалось заставить его работать со следующим PHP
session_start();
include_once('connection.php');
$rider_id = isset($_POST['id']) ? $_POST['id'] : [];
foreach($rider_id as $k=>$id) {
$query = "INSERT INTO attendance (rider_id, at_date) VALUES ('{$id}', NOW())";
$conn->query($query);
}
header('location: index.php');
Просто нужно добавить обработку ошибок.
Вы не выполняете свой SQL, не имея представления о том, как происходит ваше соединение с базой данных, и трудно понять, как предложить вам исправить это.