我從數據庫中提取記錄,並創建一個PHP文件,然後按下「刪除」按鈕時執行。代碼的工作原理是它從數據庫中刪除記錄,但它總是刪除數據庫中的第一條記錄,而不是與表中與請求ID相關的記錄。任何幫助將是巨大的PHP - MySQL刪除記錄
表:
<?php
//3. Perform database query
$result = mysql_query("SELECT * FROM Request
WHERE DepID = 'CO'
AND Status = 'P'", $connection);
if(!$result){
die("Database query failed: " . mysql_error());
}
//4. Use Returned Data
while ($row = mysql_fetch_array($result)) {
$row['ReqID'];
echo "<tr>";
echo "<td class='req' align='center'>".$row['ReqID']."</td>";
echo "<td class='req' align='center'>".$row['ModTitle']."</td>";
echo "<td class='req' align='center'>".$row['BuildingID']."</td>";
echo "<td class='req' align='center'>".$row['RoomID']."</td>";
echo "<td class='req' align='center'>".$row['Priority']."</td>";
echo "<td class='req' align='center'>".$row['W1']."</td>";
echo "<td class='req' align='center'>".$row['P1']."</td>";
echo "<td class='req' align='center'><a href=''><img height='18px' src='images/edit.png'></a></td>";
echo "<td class='req' align='center'><a href='deletereq.php'><img src='images/exit.png'></a></td>";
echo "</tr>";
}
?>
然後這是deletereq.php文件:
<?php require_once("includes/connection.php"); ?>
<?php
//3. Perform database query
$result = mysql_query("SELECT * FROM Request
WHERE DepID = 'CO'
AND Status = 'P'", $connection);
if(!$result){
die("Database query failed: " . mysql_error());
}
//4. Use Returned Data
while ($row = mysql_fetch_array($result)) {
$row['ReqID'];
$result2 = mysql_query("DELETE FROM Request
WHERE ReqID = {$row['ReqID']} LIMIT 1", $connection);
if (mysql_affected_rows() == 1) {
redirect_to("content.php");
} else {
//deletion failed
echo "<h1>Request Deletion Failed.</h1>";
echo "<p>" . mysql_error() . "</p>";
echo "<a href=\"request.php\"> Return to request</a>";
}
}
?>
<?php mysql_close($connection); ?>
您認爲$ row ['ReqID']的值是您的刪除查詢的位置? – 2012-02-24 02:47:36
記錄唯一ID的值來自sql數據庫 – ScottD 2012-02-24 02:49:16
嗯沒關係。那麼我不明白爲什麼你會驚訝它刪除了第一行。你的第一個代碼需要傳遞你想刪除的id的請求到第二個頁面。這不是那樣做的。 – 2012-02-24 02:53:03