Php вносит данные в sql на разные строки вместо одной
Всем привет, помогите с вопросом, тут на сайте не нашел похожих топиков, есть сайт-опросник на несколько страниц, на каждой странице есть кнопка, отправляющая информацию в бд и перенаправляющая на след страницу, так вот, необходимо, чтобы в базу данных информация от одного пользователя вносилась в одну строку, а выходит так, что он заполняет поля на первой странице на одной строке, проставляя нули в остальных поля, а потом смещается на одну вниз и заполняет дальше уже ее, и так с каждой страницей, в чем может быть проблема?
P.S.
try {
$conn = new PDO("mysql:host=$servername;dbname=$dbname", "$username", "$password");
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$sql = "Insert into anketa (q1fin, q1mat, q1duh, q1cult, q1obr, q1dru, q2gen, q2sem, q2semdr, q2rozhd, q3yaz, q4otn, q4stat, q4prof, q4samo) values ('$q1fin', '$q1mat', '$q1duh', '$q1cult', '$q1obr', '$q1dru', '$q2gen', '$q2sem', '$q2semdr', '$q2rozhd', '$q3yaz', '$q4otn', '$q4stat', '$q4prof', '$q4samo')";
$conn->exec($sql);
echo "New record created successfully";
}
catch(PDOException $e)
{
echo $sql . "<br>" . $e->getMessage();
}
Ответы (1 шт):
Смотрим на 4-ю строчку приведенного Вами кода
Там написано Insert... И так далее.
Insert приводит к вставке новой строки. Так как Ваш код работает на каждой странице опроса - то на каждой странице происходит вставка новой строки в таблицу
Если Вы хотите, чтобы у Вас на первой странице происходила вставка новой строки, а на следующих страницах к этой строке добавлялись данные - нужно Insert использовать на первой странице, а на остальных использовать Update. Причем, одним из параметров апдейта должен быть Id, который на первой странице вернёт Insert
