我试图在点击图标后删除用户,但没有任何反应,只需刷新页面。
<?php
$mysqli = new mysqli("localhost", "root", "root");
$mysqli->select_db("maturita");
if($_POST && $_POST["del_us"])
{
$ask = $mysqli->query("DELETE FROM users WHERE id='".$_GET['id']."'");
}
header("Location: manage_users.php");
?>
编辑:所以,发布完整的代码。也许你会解开我的想法然后帮助我。
<?php
$conn = mysqli_connect("localhost", "root", "root", "maturita");
?>
<table>
<tr>
<th>ID</th>
<th>Username</th>
<th>First Name</th>
<th>Last Name</th>
<th>Email</th>
<th>Rights</th>
<th></th>
</tr>
<?php
$sql="SELECT * FROM users";
$query=mysqli_query($conn, $sql);
if(mysqli_num_rows($query)>0)
{
while ($row=mysqli_fetch_object($query))
{
?>
<tr>
<td><?php echo $row->id; ?></td>
<td><?php echo $row->username; ?></td>
<td><?php echo $row->first_name; ?></td>
<td><?php echo $row->last_name; ?></td>
<td><?php echo $row->email; ?></td>
<td><?php echo $row->rights; ?></td>
<td><a name="del_us" href="delete_user.php"><i name="del_us" class="fa fa-trash" aria-hidden="true"></i></a></td>
</tr>
<?php
}
}
?>
答案 0 :(得分:1)
您似乎正在混合$_POST
和$_GET
。假设您的条件是正确的,并且您想要作为id的变量是$_POST["del_us"]
那么
<?php
$mysqli = new mysqli("localhost", "root", "root");
$mysqli->select_db("maturita");
if($_POST && $_POST["del_us"])
{
$id = $mysqli->real_escape_string($_POST["del_us"]);
$ask = $mysqli->query("DELETE FROM users WHERE id='".$id."'");
}
header("Location: manage_users.php");
?>
我已经转发了已发布的变量以避免SQL注入。
答案 1 :(得分:0)
你的代码
if($_POST && $_POST["del_us"])
{
$ask = $mysqli->query("DELETE FROM users WHERE id='".$_GET['id']."'");
}
对我来说有点奇怪
或者您正在使用GET方法,因此您的if是错误的,然后您必须更改您的代码:
if($_GET && $_GET["del_us"])
{
$ask = $mysqli->query("DELETE FROM users WHERE id='".$_GET['id']."'");
}
假设“del_us”和“id”是两个不同的变量 或者您可能需要更改查询:
if($_POST && $_POST["del_us"])
{
$ask = $mysqli->query("DELETE FROM users WHERE id='".$_POST['id']."'");
}