У меня есть форма, которая добавляет записи в базу данных. Каждая строка имеет кнопку «Изменить». Когда пользователь нажимает кнопку «Редактировать», пользователь переходит на другую страницу, которая имеет форму специально для этого идентификатора, который был выбран для «Редактировать», с исходной информацией в нем «Обновить». Проблема: при нажатии кнопки «Обновить» страница добавляет новую запись на первую страницу вместо обновления и замены информации для одного и того же идентификатора. Спасибо за помощь! : DPHP: обновить строку REPLACE в базе данных
фрагмент кода первой страницы со списком записей с опцией 'Изменить' рядом с каждым:
<?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'] . "'>
<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();
?>
код страницы 'Edit' (вторая страница):
<?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();
?>
Это сработало. Спасибо. Мне пришлось поместить ссылку, чтобы вернуться к списку записей на первой странице, но она отлично работает. Спасибо. – DDG