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?,F在都是 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 關注
- 300 瀏覽
添加回答
舉報