在php结果表中添加“删除”按钮

时间:2017-01-14 18:14:49

标签: php mysql forms

我将MySQL表的结果输出到HTML表,我正在尝试添加删除按钮以删除用户,但它不起作用。

HTML表单代码:

<?php 
        $response = $bdd->query('SELECT * FROM users');
        $i = 1;
        while ($datas = $response->fetch()) {
?>
<tr>
    <td><?php echo $datas['first_name']; ?></td>
    <td><?php echo $datas['last_name']; ?></td>
    <td>
        <form action="_delete.php?id=<?php echo $datas['id']; ?>" method="post">
            <input type="hidden" name="name" value="<?php echo $datas['id'];?>">
            <input class="btn btn-danger" type="submit" name="submit" value="X">
        </form>
    </td>
</tr>

这是我的_delete.php:

<?php
try
{
    $bdd = new PDO('mysql:host=localhost;dbname=dbname;charset=utf8', 'root', 'root');
}
catch (Exception $e)
{
        die('Erreur : ' . $e->getMessage());
}
?>

<?php
$id = (int)$_GET['id'];
$query = "DELETE FROM users WHERE id={$id} LIMIT 1";

//sends the query
mysql_query ($query);

if (mysql_affected_rows() == 1) { 
?>

   <strong>User Has Been Deleted</strong>

<?php
 } else { 
?>

   <strong>Deletion Failed</strong>

<?php
} 
?>

我的结果网址很好/_delete.php?id=13但删除脚本不是。

我有这个错误:Deprecated: mysql_query(): The mysql extension is deprecated and will be removed in the future

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

你搞砸了GET和POST参数。您定义了一个名为id的get参数,其中包含您的ID和一个名为name的帖子参数,其中包含您的ID。

但是目前您正在尝试使用$_POST(仅包含post params)访问get参数。

要解决您的问题,您应该使用$_GET['id']$_POST['name']

在每种方式中,请记住保护您输入sql注入。目前,用户也可以传递任何其他内容。对int进行简单的转换就足够了。

$id = (int)$_GET['id'];
$query = "DELETE FROM users WHERE id={$id} LIMIT 1";

答案 1 :(得分:0)

我在答案中提出了一些建议,试着看看它是否有效。 创建一个连接,然后使用$ _GET而不是$ _POST获取ID。

<?php

$con=mysqli_connect("localhost","dbuser","dbpassword","dbname");

if($con==false){
    die("ERROR:Could not connect.". mysqli_connect_error());

}
 else{
$id=$_GET['id']
 $query = "DELETE FROM users WHERE id='$id' LIMIT 1";

 //sends the query
 mysql_query ($con,$query);

 if (mysql_affected_rows() == 1) { 
 ?>

  <strong>User Has Been Deleted</strong>

<?php
} else { 
?>

  <strong>Deletion Failed</strong>

<?php
} 
}
?>