不从数据库中删除

时间:2017-02-21 14:35:27

标签: php mysql sql sql-delete

我试图在点击图标后删除用户,但没有任何反应,只需刷新页面。

<?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
    }
}       
?>

2 个答案:

答案 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']."'");
}