2012-02-24 129 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