У меня есть несколько форм с контентом, который пользователи могут редактировать, простой пример - профиль. php с пятью полями, из которых пользователь может изменить три (на данный момент); имя, фамилия и адрес. Форма html извлекает их существующие данные из sql и представляет их в редактируемых текстовых полях.
Ниже показано, как получить различные переменные:
<?php
//PHP to submit content of profile fields.
if($_SERVER["REQUEST_METHOD"] == "POST"){
//Set ID for insert statement
$id=$rows['id'];
//Get name from form
if(empty($_POST['name'])){
$name = $rows['name'];
}
elseif($_POST['name'] == $rows['name']){
$name = $rows['name'];
}
else{
$name = $_POST['name'];
print $name;
}
//Get Surname from form
if(empty($_POST['surname'])){
$name = $rows['surname'];
}
elseif($_POST['surname'] == $rows['surname']){
$surname = $rows['surname'];
}
else{
$surname = $_POST['surname'];
}
//Get Address from form
if(empty($_POST['address'])){
$name = $rows['address'];
}
elseif($_POST['address'] == $rows['address']){
$address = $rows['address'];
}
else{
$address = $_POST['address'];
}
$sql = "UPDATE usr SET name = ?, surname = ?, address = ?
where id = ?"
(а затем остальные кода для отправки запроса, я не собираюсь включать его здесь, если вы, ребята, не нуждаетесь в нем. Это основы c mysqli.)
Выше просто кажется очень вялым и затяжным, есть лучший способ сделать это, особенно если формы становятся длиннее? В сущности, я сделал свое «if (empty)» как можно более простым, чтобы избежать необходимости создавать эхо-ошибку для каждого из них, поскольку функция в основном сохраняет все, что находится в форме, при загрузке, если пользователь пытается ввести пустое поле.
Я чувствую, что, как только я начну добавлять дату рождения, номер телефона и другие вещи, запросы будут очень длинными, оператор обновления sql сойдет с ума от "ssssss" et c.
Есть мысли?