如何从数据库中删除条目,脚本删除错误的条目

时间:2013-10-29 16:15:20

标签: php sql database sql-delete

我需要脚本从数据库中删除注册用户。它工作但不应该如何。 我的脚本删除了最后一个条目而不是我点击的条目? 这是我列出条目的脚本。

    <form action="user_delete.php" method="post">
<?php 
error_reporting(0);
$sql="SELECT * FROM users WHERE status='member' ORDER BY id_user";
$result = mysql_query($sql) or die(mysql_error());
while ($record = mysql_fetch_array($result))
{

    $id_c=$record['id_user'];
    $mail=$record['mail'];
    $_SESSION["del_user"]=$id_c;


$user = mysql_result(mysql_query("SELECT username FROM users WHERE id_user='$id_c'"), 0);

echo "Name:&nbsp;&nbsp;<b>$user</b><br />";
echo "E-mail korisnika:&nbsp;&nbsp;<b>$mail</b><br />";
echo "ID:&nbsp;&nbsp;<b>$id_c</b><br /><br />";
echo "<input type=\"submit\" name=\"delete_row\" class=\"btn\" value=\"Delete\" />";
echo "<hr />";
}
?>
</form>

这是我的user_delete.php

<?php
session_start();
include 'function.php';
include 'db_config.php';
$del=$_SESSION["del_user"];

    $sql = "DELETE FROM users WHERE id_user = $del";
    mysql_query($sql) or die(mysql_error());

    if(mysql_affected_rows()>0)
    {
        header("Location:user_management.php");
    }
    else 
    {
        echo "No";
    }  

mysql_close();
?>

2 个答案:

答案 0 :(得分:2)

在while循环中,您将覆盖会话变量del_user

while ($record = mysql_fetch_array($result))
{

    $id_c=$record['id_user'];
    $mail=$record['mail'];
    $_SESSION["del_user"]=$id_c;

这意味着$_SESSION["del_user"]将始终是最后一条记录。

答案 1 :(得分:-1)

将POST变量传递给该表的电子邮件或主键。现在你正在使用会话ID。它每次只删除你的记录。

$del = $_POST['email'];
$sql = "DELETE FROM users WHERE id_user = $del";