Я начинаю php и не хочу делать свой проект. Вот моя проблема: я делаю скрипт, который обновляет информацию на моем сервере sqli, но возникает странная проблема. Не хочет обновляться без причины.
Мой код:
<?php
$itemchoice = array(
'value' => array( '', "1" => $item1, "2" => $item2, "3" => $item3, "4" => $item4, "5" => $item5),
'name' => array('', "1" => "item1name", "2" => "item2name", "3" => "item3name", "4" => "item4name", "5" => "item5name"),
);
$nombre_actuel = 1;
echo '<form method = "post">';
while ($nombre_actuel <= $nombredeligne)
{
echo '<input type = "text" name = "'.$itemchoice['name'][$nombre_actuel].'" value = "'.$itemchoice['value'][$nombre_actuel].'">';
$nombre_actuel++;
}
echo '<input type = "submit" name = "envoyer" value = "Envoyer">';
echo '</form>';
if (isset($_POST['item1name'])) {
$newitem1 = $_POST['item1name'];
$newitem1sql = 'UPDATE navbar SET valeur='.$newitem1.' WHERE item = "item1" ';
$newitem1result = mysqli_query($db1, $newitem1sql);
}
Линия
$newitem1sql = 'UPDATE navbar SET valeur='.$newitem1.' WHERE item = "item1" ';
Не работает по какой-либо причине
if (isset($_POST['item1name'])) { ..... } никогда не будет выполняться, потому что 'item1name' нигде не определен/не используется. Может быть, я не мог видеть это. Еще один момент: вы пытаетесь обновить запись, поэтому она должна существовать в вашей базе данных.
Измените эту строку:
$newitem1sql = 'UPDATE navbar SET valeur='.$newitem1.' WHERE item = "item1" ';
к этому:
$newitem1sql = 'UPDATE navbar SET valeur = "'.$newitem1.'" WHERE item = "item1" ';
Примечание. Вы подвержены атаке SQL Injection. Вы не должны просто взять ввод $_Post[] и засунуть его в свой SQL без очистки. Очистите и параметризируйте свой запрос.
Что вы подразумеваете под "не работает"? Где вы проверяете ошибки? Почему вы используете полностью некотируемые входные данные?