3 回答
TA贡献1752条经验 获得超4个赞
在您的表单中,您需要使用要删除的行的id传递action属性
所以它会是这样的
<form method="post" action="<?= $_SERVER['PHP_SELF']?>?id={$id}">
然后在你的 SQL 查询中,你将传递这个 id,我在这里使用准备好的语句来保护你免受 SQL 注入
<?php
if (isset($_POST['delete'])) {
$stmt = $connection->prepare("DELETE FROM user WHERE id=?");
$stmt->bind_param($_GET['id']);
$stmt->execute();
if (!$result1) {
die("FAILED" . mysqli_error($connection));
}
}
?>
TA贡献1830条经验 获得超3个赞
您正在使用$id用于$result在 while 循环中从对象获取数据的。循环在数据库中最后一个当前 id 处结束,因此它只会删除最后一个$id并且只删除一次。您可以$id在表格中写下每条记录。例如:
<form method="post"><button class="mb-1 mr-1 btn btn-primary" name="edit"><i class="fa fa-edit"></i></button>' .
'<input display="hidden" name="id" value="'.$id.'">'.
'<button class="mb-1 mr-1 btn btn-danger" name="delete"><i class="fa fa-times"></i></button>
</form>
然后在你的 PHP 中
if (isset($_POST['delete'])) {
$d_id = $_POST['id'];
$query1 = "DELETE FROM user ";
$query1 .= "WHERE id = $d_id LIMIT 1";
$result1 = mysqli_query($connection,$query1);
}
TA贡献1804条经验 获得超7个赞
我对您的代码进行了一些更改。这会起作用..!!
1.更改方法属性(给定表单方法 POST ,但在 php 查询中它是 GET。现在都是 POST 类型)
2.删除时将id作为隐藏字段传递。所以它会删除,正确的记录。此外删除查询是更改(使用此 ID 删除记录)
<?php
$connection = mysqli_connect('localhost','root','','rohit');
{
$query = "SELECT * FROM user";
$result = mysqli_query($connection,$query);
while($row = mysqli_fetch_assoc($result)) {
$id = $row['id'];
$name = $row['name'];
$lname = $row['lname'];
$dept = $row['department'];
$dob = $row['DOB'];
$doj = $row['DOJ'];
$mobile = $row['mobile'];
$email = $row['email'];
$salary = $row['salary'];
$gender = $row['gender'];
echo "<tr>";
echo "<td>{$id}</td>";
echo "<td>{$name}</td>";
echo "<td>{$lname}</td>";
echo "<td>{$dept}</td>";
echo "<td>{$dob}</td>";
echo "<td>{$doj}</td>";
echo "<td>{$mobile}</td>";
echo "<td>{$email}</td>";
echo "<td>{$salary}</td>";
echo "<td>{$gender}</td>";
echo '<td>' . '<form method="post"><button class="mb-1 mr-1 btn btn-primary" name="edit"><i class="fa fa-edit"></i></button>' .
'<input type="hidden" name="del_id" value="'.$id.'">'.
'<button class="mb-1 mr-1 btn btn-danger" name="delete"><i class="fa fa-times"></i></button></form>'
. '</td>';
echo "</tr>";
}
}
?>
<?php
if (isset($_POST['delete'])) {
$del_id = $_POST['del_id'];
$query1 = "DELETE FROM user ";
$query1 .= "WHERE id = $del_id LIMIT 1";
$result1 = mysqli_query($connection,$query1);
if (!$result1) {
die("FAILED" . mysqli_error($connection));
}
}
?>
- 3 回答
- 0 关注
- 273 浏览
添加回答
举报