通过php表中的删除按钮从数据库中删除行

时间:2014-07-27 12:03:01

标签: javascript php jquery mysql ajax

我正在尝试制作一个小控制面板,以便在数据库中添加和删除行。 我已经使添加部分工作但我在删除时遇到了一些麻烦。

页面显示表格中的每一行,并在其后面添加了删除按钮。

这是我的代码

这是制作表格的代码:     

<table class='col-sm-6 fixed_headers'>
<thead>
<tr>
<th>Username</th>
<th>Password</th>
<th>Email</th>
</tr>
</thead>
<tbody style='height:250px; overflow:auto;'>";

while($row = mysqli_fetch_array($result))
{
 "<tr class=". $row['ID'] . ">";
 echo "<td>" . $row['uname'] . "</td>";
 echo "<td>" . $row['pass'] . "</td>";
 echo "<td>" . $row['email'] . "</td>";
 echo "<td><input type='submit' class='button' id=".$row['ID'] . " value='del'></td>";
 echo "</tr>";
 }
echo "</tbody>
 </table>";
?>  

这是ajax代码:

<script type="text/javascript">
$(document).ready(function(){
$('.button').click(function(){
    var btnID = $(this).id;


  jQuery.ajax({
        type: "POST",
        url: "php/delete.php",
        data:  {id :btnID}
    }).done(function(result){
    if(result== "succes"){
        $('#error').remove();
        $('#succes').html("Het account is verwijderd. ");

    }else {
        $('#error').empty();
        $('#error').html("Er is een fout opgetreden.<br/> Probeer opnieuw! ");
    }
    });
  });

});
</script>

这是delete.php:

$id =  mysql_real_escape_string($_POST['id']);

$delete = "DELETE FROM `xxx`.`xxx` WHERE `xxx`.`ID` = '$id'"; 
$del = mysql_query($delete);

if ($del)
{
    echo "succes";

}
else
{
    echo "error";
    // close connection 
    mysql_close();
}
?>

当我按下删除按钮时,我确实收到了成功消息,但该行尚未删除我的数据库。

我一直试图解决这个问题,但我似乎无法使其发挥作用

(遗漏了我的数据库连接代码)

2 个答案:

答案 0 :(得分:2)

我对你的建议是,永远不要从你的数据库中删除。

相反,在表中添加一个布尔变量,默认设置为“1”,每当你想“删除”一行时,将你的bool设置为'0'。

当您查询要在页面上显示的表格时,请查询WHERE boolVariable ='1'。

出于安全原因,这是最好的方法,并确保从您用于连接数据库的Db用户中删除“删除”权限


还有一件事,停止使用mysql_query,并使用mysqli_query,因为不推荐使用mysql_

来源:The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead

答案 1 :(得分:1)

将$(this).id更改为$(this).attr(&#39; id&#39;)修复它