Делаю тестер, есть таблица с вопросами questions:
CREATE TABLE `questions` (
`id` int(11) NOT NULL,
`question` varchar(255) NOT NULL,
`ans1` varchar(255) NOT NULL,
`ans2` varchar(255) NOT NULL,
`ans3` varchar(255) NOT NULL,
`ans4` varchar(255) NOT NULL,
`ans5` varchar(255) NOT NULL,
`ans` int(11) NOT NULL,
`cat_id` int(11) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Вывожу их на отдельной странице для редактирования, в input и textarea
Как по нажатию на submit сохранить изменения?
пытался делать по статье
собрал вот такой код
<?php
header('Content-Type: text/html; charset=utf-8');
if(isset($_POST['item_id'], $_POST['item_question'])){
require("../includes/connection.php"); // Подключение к БД
$item_id = $_POST['item_id'];
$item_question = $_POST['item_question'];
$item_ans1 = $_POST['item_ans1'];
$item_ans2 = $_POST['item_ans2'];
$item_ans3 = $_POST['item_ans3'];
$item_ans4 = $_POST['item_ans4'];
$item_ans5 = $_POST['item_ans5'];
$item_ans = $_POST['item_ans'];
// Объединяем массивы
$allData = array_map(null,$item_id, $item_question, $item_ans1, $item_ans2, $item_ans3, $item_ans4, $item_ans5, $item_ans);
// Генерируем запрос
$query = "INSERT INTO `questions` (`id`,`question`,`ans1`,`ans2`,`ans3`,`ans4`,`ans5`,`ans`) VALUES ";
$params = array();
foreach($allData as $val){
$params[] = '('.(int)$val[0] .','.(string)$val[1].','.(string)$val[2].','.(string)$val[3].','.(string)$val[4].','.(string)$val[5].','.(string)$val[6].','.(string)$val[7].')';
}
$query .= implode(',', $params) . " ON DUPLICATE KEY UPDATE `question`,`ans1`,`ans2`,`ans3`,`ans4`,`ans5`,`ans` = VALUES(`question`,`ans1`,`ans2`,`ans3`,`ans4`,`ans5`,`ans`)";
echo $query; // можно вывести его на экран для проверки
// Выполняем запрос
$res = mysql_query($query, $con);
echo (mysql_affected_rows($con) > 0 ? 'Данные успешно обновлены!' : 'Не произведено ни одной замены'),
'<br><a href="./">Вернутся</a> на страницу редактирования.';
}
?>
ничего не вышло , выдает
Не произведено ни одной замены
может кто знает решение или другой способ