想在表PHP中删除数据库中的用户

时间:2012-09-06 08:35:26

标签: php javascript mysql html

我有一个表填充了数据库中的数据,我希望每个特定用户旁边都有一个按钮来删除该用户。但我该怎么做?

以下是代码:

<?php               
    include '../includes/db_connect.php';

    $sql = "SELECT * FROM `users`";
    $result = mysql_query($sql, $connection) or die ("Failed to excecute the query $sql on $connection");
?>
<table border=1>
    <tr>
        <th>
        Access lvl
        </th>
        <th>
        Username
        </th>
        <th>
        Email
        </th>
    </tr>
<?php
    while($row = mysql_fetch_array($result))
    {
        echo "</td><td>";
        echo $row['access'];
        echo "</td><td>";
        echo $row['username'];
        echo "</td><td>";
        echo $row['email'];
        echo "</td></tr>";
    }
    echo "</table>";
?>

3 个答案:

答案 0 :(得分:2)

我经常这样做,并使用jQuery。我使用以下内容:

HTML:

<table>
....
<tr>
    <td><span class="delete">Delete me!</span></td>
</tr>
</table>

jQuery的:

$(document).on("click", ".delete", function(event)
{
    var sData = "?id=" + $(this).data("id");
    $.ajax({
        url: "pages/delete_script.php",
        type: "POST",
        data: sData,
        success: function(sResult)
        {
            // Process the data you got back from the delete script
            // For example removing the row if successfully deleted:
            if(sResult == "OK")
            {
                $(this).closest("tr").remove();
            }
        },
        statusCode: 
        {
            404: function() 
            {
                alert("page not found");
            }
        }
    });
});

on()用于动态元素(我在该页面上使用AJAX做所有事情)。然后我将需要发送的数据以正确的格式发送并执行AJAX请求。在PHP文件中可以是:

if($_SERVER['REQUEST_METHOD'] == "POST")
{
    if(isset($_POST['id'])
    {
        mysql_query(
            sprintf('DELETE FROM `table` WHERE `id` = %d', $_POST['id'])
        );
    }
}

当然,建议您使用更多检查以确保删除正确的检查。

答案 1 :(得分:0)

让按钮重定向到以下网址:example.com/user.php?delete = [id]

用你的$ row ['id']填充[id]。现在,当您捕获参数$ _GET ['delete']时,您将获得一个id。现在你可以把它放在MYSQL中的DELETE函数中。

注意:

  • 确保为此操作设置了安全级别
  • 确保您不允许此GET中的字符串
  • 确保你使用mysql_real_escape_string()!! &lt; - 最重要的

答案 2 :(得分:0)

我会把它移到一个AJAX函数,通过onClick或data-id =“”并使用jquery $('element')将变量传递给JavaScript函数.data('id');收集id并将其发送到另一个静态php文件。

如前所述,在将任何用户数据提交到SQL之前,您需要检查并清理已传递给文件的数据,如前所述:

  • 使用post作为AJAX方法
  • filter_var($ var,FILTER_VALIDATE_INT)
  • mysql_real_escape_string

这对用户体验感觉更好,并且还消除了蜘蛛触发操作的一些风险。如果您的安全性不高,人们仍然可以破解它,但它会使其变得更难,如果您向SQL添加状态列而不是删除行,只需更改其状态,您就可以轻松地将数据带入如果你被黑了,那就回来了。