我需要脚本从数据库中删除注册用户。它工作但不应该如何。 我的脚本删除了最后一个条目而不是我点击的条目? 这是我列出条目的脚本。
<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: <b>$user</b><br />";
echo "E-mail korisnika: <b>$mail</b><br />";
echo "ID: <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();
?>
答案 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";