从PHP更新的问题

时间:2017-10-26 09:58:21

标签: php html

我有一个表单,我希望记录更改更新我的SQL数据库表。

在我的index.php文件中,我有f.ex这个:

<?php
$servername = "localhost";
$username = "root";
$password = "password";
$dbname = "myDB";
$tbname = "myVis";
// Create connection
$conn = mysqli_connect($servername, $username, $password, $dbname);
// Check connection
if (!$conn) {
  die("Connection failed: " . mysqli_connect_error());
}

$sql = "SELECT * FROM " . $tbname . " WHERE id = '$_POST[id]'";
$result = mysqli_query($conn, $sql);

if (mysqli_num_rows($result) > 0) {

    while($row = mysqli_fetch_assoc($result)) {
      $id = $row['id'];
      $firstname = $row['firstname'];
      $lastname = $row['lastname'];
      $image = $row['image'];
      $course = $row['course'];
      $frdate = $row['frdate'];
      $todate = $row['todate'];
      $email = $row['email'];
      $checkout = $row['checkout'];
    }
  }
  mysqli_close($conn);
?>
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8">
...
  </head>
  <body>

    <form action='' method='post'>
    <table>
...
        <tr>
          <td>Efternamn:</td>
           <td>
            <input id="lastname2" type="text" value='<?php echo  $lastname; ?>' /></td>
        </tr>
...
      </table>

      <?php
           if ($_SERVER["REQUEST_METHOD"] == "POST") {
          if (isset($_POST['submit2'])) {
...
            if (isset($_POST['lastname2'])) {
              $lastname  = $_POST['lastname2'];
            }
...
            $servername = "localhost";
            $username = "root";
            $password = "password";
            $dbname = "myDB";
            $tbname = "myVis";
            // Create connection
            $conn = mysqli_connect($servername, $username, $password, $dbname);
            // Check connection
            if (!$conn) {
              die("Connection failed: " . mysqli_connect_error());
            }
            $sql2 = "UPDATE " . $tbname . " SET firstname='$firstname', lastname='$lastname', image='$image', course='$course', frdate='$frdate', todate='$todate', email='$email', checkout='$checkout' WHERE id ='".$_POST['id']."'";
            $result = mysqli_query($conn, $sql2);
            if ($result) {
               echo "Record updated successfully";
            } else {
               echo "Error updating record: " . mysqli_error($conn);
            }

            mysqli_close($conn);
          }
        }
      ?>

      <input type="submit" name="submit2" id="submit2" value="Spara" />
      <input type="button" name="back" id="back" value="Tillbaka" onclick="history.back()" />

    </form>
  </body>
</html>

当我尝试更改值(比如lastname)时,没有任何更改,所有值都返回到db-table中的选定记录。 如何让PHP理解并更改值更新表? 不太了解我的索引文件中的序列。

请帮忙。 问候, /弗雷德里克。

1 个答案:

答案 0 :(得分:0)

在数据库连接后将提交代码放在页面顶部。然后,当您提交表单时,首先匹配表格列和提交的帖子值。如果任何列具有不同的帖子值,则更新该列。