2012-02-24 156 views
0

我從數據庫中提取記錄,並創建一個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); ?> 
+0

您認爲$ row ['ReqID']的值是您的刪除查詢的位置? – 2012-02-24 02:47:36

+0

記錄唯一ID的值來自sql數據庫 – ScottD 2012-02-24 02:49:16

+0

嗯沒關係。那麼我不明白爲什麼你會驚訝它刪除了第一行。你的第一個代碼需要傳遞你想刪除的id的請求到第二個頁面。這不是那樣做的。 – 2012-02-24 02:53:03

回答

2

在顯示頁面

echo "<td class='req' align='center'><a href='deletereq.php?id=".$row['ReqID']."'><img src='images/exit.png'></a></td>"; 

而且你刪除網頁更改查詢以使用$ _GET ['id']的值

但請注意,根據您的使用情況,您可能真的想從安全等角度弄清楚您的需求。另外一般來說,使用GET進行更改不是一個好主意,最好使用POST然後重定向。上面的要點是有效的,但那(和你已經擁有的)就足夠了,如果不小心的話,你可以對自己造成嚴重的傷害。

+0

啊,好吧,非常感謝您的幫助 – ScottD 2012-02-24 03:04:49