通过表从数据库中删除项目

时间:2013-03-19 15:35:32

标签: php html phpmyadmin

enter image description here

我在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>

2 个答案:

答案 0 :(得分: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'];
   }
}
?>

答案 1 :(得分:1)

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

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

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