My code delete the last row instead of deleting its own row, what to do? i tried everything i can but it doesn't work please send help.
$sql = "SELECT id, name, ArticleTitle, Article FROM article";
if ($result = $conn->query($sql))
{
// output data of each row
while($row = $result->fetch_assoc()) {
echo "<tr><td>" .
$row["id"]. "</td><td>" ."<input type=hidden name=id value=".
$row["id"].">".
$row["name"] . "</td><td>" .
$row["ArticleTitle"]. "</td><td>" .
$row["Article"] ."</td><td>" .
"<a href=connection.php id=".$row["id"]."><button>View</button></a>". "</td><td>".
"<button type=submit name=login_user>Delete</button>" .
"</td></tr> " ;
// href="copytrade.php?id=$_GET['id']
}
echo "</form></table>";
and here is my connection.php script
if (isset($_POST['login_user'])) {
$id = mysqli_real_escape_string($conn, $_POST['id']);
if (empty($id)) {
array_push($errors, "ID is required");
}
// sql to delete a record
if (count($errors) == 0) {
$query = "DELETE FROM article WHERE id='$id'";
$results = mysqli_query($conn, $query);
}
if ($conn->query($query) === TRUE) {
echo "Record deleted successfully";
}
}
You're only going to want one ID hidden field (currently you have one for every row). You'll set its value to the id of the delete clicked before submitting the form. The way you're doing it right now sends every id as the same value to the page via $_POST and the last one overrides all of the others.
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.