Если пункт не дает обновления, работает только вставка.Почему обновление не работает? - PullRequest
0 голосов
/ 24 мая 2018

Я хочу обновить и вставить условно, но запрос всегда идет "Вставить" данные.Нет "обновления" в любом случае.Мой код ниже:

<form method="post" action="">
    <label>ID: </label> <input type="text" name="id">
    <label>Subject: </label> <input type="text" name="subject">
    <input type="submit" name="submit">
</form>

<?php 
$conn = new mysqli("localhost", "root", "", "zidm"); 

$id=$_POST['id'];
$subject=$_POST['subject'];


if (isset($_POST['submit'])){
      $sql = "UPDATE exam  SET subject = '$subject'  WHERE id = '$id'";    
    mysqli_query($conn,$sql);
    echo "Data Updated";
  }
  else {
 $sql="INSERT INTO exam (subject) VALUES ( '$subject)";
    mysqli_query($conn,$sql);
    echo "Data Inserted";
  }

  ?>

1 Ответ

0 голосов
/ 24 мая 2018

Проблема в том, что вы проверяете отправку формы, но у вас также есть оператор else, который всегда срабатывает при загрузке страницы.Вам нужно обернуть всю логику в проверку отправки формы, а затем проверить параметр id.

// Form was submitted
if (isset($_POST['submit'])) {

    if (!empty($_POST['id'])) {
        // Update
    } else {
        // Insert
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...