0

在此处输入图像描述

我在 html 中创建了一个接收数据库条目的表。现在我希望能够编辑和删除条目。因此,如果我单击 X 按钮,则必须删除所选行。我知道我需要通过 sql 查询来执行此操作,以便表根据数据库条目进行更改。但是我怎么能这样做,因为它需要知道哪一行属于那个特定的删除按钮?

<div id="customers">
<table id="customerTable">
<tr>
<td>First Name</td>
<td>Last Name</td>
<td>Company</td>
<td>Adress</td>
<td>Wijzig</td>
<td>Verwijder</td>
</tr>
<?php
    //connect to database
    include_once('mysql_connect.php');

    // Select database
    mysql_select_db("etn207") or die(mysql_error());

    // SQL query
    $strSQL = "SELECT * FROM customer";

    // Execute the query (the recordset $rs contains the result)
    $rs = mysql_query($strSQL);
    // Loop the recordset $rs
    // Each row will be made into an array ($row) using mysql_fetch_array

        while($row = mysql_fetch_array($rs)) {

       // Write the value of the column FirstName (which is now in the array $row
       echo '<tr>'; 
       echo '<td>'."<center>".$row['firstname']."<br>"."</center>".'</td>'; 
       echo '<td>'."<center>".$row['lastname']."<br>"."</center>".'</td>'; 
        echo '<td>'."<center>".$row['company']."<br>"."</center>".'</td>';
        echo '<td>'."<center>".$row['adress']."<br>"."</center>".'</td>';  
        echo '<td>'."<center>".'<img src="images/edit.png" width="20px" height="20px" border=0>'."<br>"."</center>".'</td>';   
        echo '<td>'."<center>".'<img src="images/delete.png" onClick="" width="20px" height="20px" border=0>'."<br>"."</center>".'</td>';    
        echo '</tr>'; 
      }



    // Close the database connection
    mysql_close();

?>
</table>
</div>
4

2 回答 2

2

将 id 作为隐藏值传递并使用它来删除该特定行

<input type="hidden" name="id_to_be_deleted" value="<?php echo $id; ?>" />

现在只需在提交时检索此 id 并从数据库中删除该行

<form method="post">
   <input type="hidden" name="id_to_be_deleted" value="<?php echo $id; ?>" />
   <input type="submit" name="delete_row" />
</form>

<?php
if(isset($_POST['delete_row'])) {
   $id = $_POST['id_to_be_deleted'];
   if(!mysqli_query($connection, "DELETE FROM table_name WHERE id = $id")) {
     echo mysqli_error($connection);
   } else {
      //redirect $_SERVER['REQUEST_URI'];
   }
}
?>
于 2013-03-19T15:37:09.783 回答
1

您的数据库记录很可能具有唯一标识符(主键左右);在删除按钮上创建链接时使用此唯一标识符:

  echo '<a href="deleterecord.php?id=' . $yourUniqueidentifier . '"><img src="images/delete.png"></a>'

您也应该对您的代码使用其他建议,例如使用 CSS 而不是“中心”标签,可能使用 AJAX 删除记录而无需完整回发,在查询字符串中使用哈希以避免未经授权删除记录等等,但是这不是重点:-)

于 2013-03-19T15:48:19.590 回答