2016-04-28 73 views
0

我有一个向数据库添加记录的表单。每一行都有一个“编辑”按钮。当用户点击“编辑”按钮时,用户会将该用户转到另一个具有特定于该编号的表单的页面,该页面被选为编辑,其中的原始信息为更新。问题:单击更新按钮时,页面会向第一个页面添加一条新记录,而不是更新并替换相同标识的信息。 感谢您的帮助! :dPHP:数据库中的更新和替换行

具有与 '编辑' 选项记录列表第一页的代码段相邻的:

<?php 
$servername = "localhost"; 
$username = "root"; 
$password = "root"; 
$dbname = "database"; 

// Create connection 
$conn = new mysqli($servername, $username, $password, $dbname); 

// Check connection 
if ($conn->connect_error) { 
    die("Connection failed: " . $conn->connect_error); 
} 

$sql = "SELECT * FROM users ORDER BY lastname ASC"; 
$result = $conn->query($sql); 

if ($result->num_rows > 0) { 
    // output data of each row 
    while($row = $result->fetch_assoc()) { 
     echo "<div class='container'>"; 
      echo "<table class='table'>"; 
       echo "<tr id='hover'>"; 
        echo "<td id='lastname'>".$row["lastname"]."</td>"; 
        echo "<td id='firstname'>".$row["firstname"]."</td>"; 
        echo "<td id='username'>".$row["username"]."</td>"; 
        echo "<td id='email'>".$row["email"]."</td>"; 
        echo "<td id='editdelete'> 
        <form action='Edit.php?id=" . $row['id'] . "' method='post'> 
         <input type='submit' name='edit' value='Edit' id='Edit'><input type='hidden' name='id' value='" . $row['id'] . "'> 
         &nbsp;<input type='submit' name='delete' value='Delete' id='delete'><input type='hidden' name='id' value='" . $row['id'] . "'> 
        </form></td>"; 
       echo "</tr>"; 
      echo "</table>"; 
     echo "</div>"; 
    echo '<br>'; 
    } 
} 
else { 
    echo "0 results"; 
} 
$conn->close(); 
?> 

代码的 '编辑' 页(第二页):

<?php 
// DB Connection Info 
$servername = "localhost"; 
$username = "root"; 
$password = "root"; 
$dbname = "database"; 
// Create connection 
$conn = new mysqli($servername, $username, $password, $dbname); 
// Check connection 
if ($conn->connect_error) { 
die("Connection failed: " . $conn->connect_error); 
} 
// Code for EDIT button 
if (isset($_POST['edit'])) { 
$userid = $_POST['id']; 
} 
// Code for UPDATE button 
if (isset($_POST['update'])) { 
$userid = $_POST['id']; 
$firstname = $_POST['firstname']; 
$lastname = $_POST['lastname']; 
$username = $_POST['username']; 
$password = $_POST['password']; 
$email = $_POST['email']; 
$sql = "UPDATE users SET firstname = '$firstname', lastname = '$lastname', username = '$username', password = '$password', email = '$email' WHERE id = '$userid';"; 
$conn->query($sql); 
} 
// SQL Query 
$sql = "SELECT * FROM users WHERE id = '$userid';"; 
$result = $conn->query($sql); 
//Loop through and echo all the records 
while ($row = $result->fetch_assoc()){ 
echo "<form method='post' action='Index.php'>"; 
echo "<input type='hidden' name='id' value='" . $row['id'] . "'>"; 
echo "First Name: <input type='text' name='firstname' value='" .  $row['firstname'] . "'> <br>"; 
echo "Last Name: <input type='text' name='lastname' value='" . $row['lastname'] . "'> <br>"; 
echo "Username: <input type='text' name='username' value='" . $row['username'] . "'> <br>"; 
echo "Password: <input type='password' name='password' value='" . $row['password'] . "'> <br>"; 
echo "Email: <input type='text' name='email' value='" . $row['email'] . "'> <br> "; 
echo "<input type='submit' name='update' value='Update'>"; 
echo "</form>"; 
} 
$conn->close(); 
?> 

回答

2

edit.php,您的表单操作链接到index.php而不是edit.php

+0

它工作。谢谢。我不得不把链接放回第一页上的记录列表,但它完美地工作。谢谢。 – DDG