帮助删除用户:
您好我正在为我的项目创建一个用户创建系统,我仍然是PHP的新手,我的问题是从MySQL数据库中获取用户然后删除它,我将在下面显示我的代码:
<?php
require_once("config/db.php");
if ($login->isUserLoggedIn() == true) {
if ($_SESSION['user_perm'] == 1) {
//Create Connection
$db_connection = new mysqli(DB_HOST, DB_USER, DB_PASS, DB_NAME);
// Check connection
if ($db_connection->connect_error) {
die("Connection failed: " . $db_connection->connect_error);
}
$sql = "SELECT user_name FROM users";
$result = $db_connection->query($sql);
if ($result->num_rows > 0) {
// output data of each row
while($row = $result->fetch_assoc()) {
echo $row["user_name"];
$user_name_delete = $row["user_name"];
$_SESSION['user_name_delete'] = $user_name_delete;
echo '<a href="deleteuser.php">Delete User</a><br>';
}
}
}
$db_connection->close(); ?>
在deleteuser.php页面上我的代码是,请注意这只是一个测试:
<?php
echo $_SESSION['user_name_delete'];
?>
我的问题是抓住你选择删除的用户,因为它只输出从数据库中抓取的最后一个用户。
非常感谢任何帮助。
答案 0 :(得分:1)
此值:
$_SESSION['user_name_delete']
将仅包含数据中的最后一个用户。因为你在循环中继续覆盖它:
$_SESSION['user_name_delete'] = $user_name_delete;
简短的回答是......不要为此使用会话状态。 (实际上,除非绝对必要,否则不应使用会话状态。)要删除的用户的身份应包含在删除用户的请求中。在这种情况下,您可以将其添加到链接。像这样:
echo '<a href="deleteuser.php?id=' . $row['user_id'] . '">Delete User</a><br>';
(或者用于识别数据行中用户的任何内容。)
然后在deleteuser.php
中,您可以从以下网址获取该值:
$_GET['id']
验证输入,验证用户是否有权执行删除,然后在WHERE
查询的DELETE
子句中使用该值。
答案 1 :(得分:-1)
获取用户ID并将其插入删除查询。
$id = $db->real_escape_string($_GET['id']);
$sql = "delete from users where id = " . $id;
然后运行查询以从数据库中删除用户。