如何在PHP中使用按钮删除随机行?

如何在PHP中使用按钮删除随机行?,php,Php,更改此行: <?php include("connection.php"); echo "Do you really want to DELETE this field? " ; ?> <form method="post"> <input type="submit" name="yes" value="YES" /> <?php $res = mysql_query("SELECT * FROM members"); while($row = mys

更改此行:

<?php
include("connection.php");
echo "Do you really want to DELETE this field? " ;
?> 
<form method="post">
<input type="submit" name="yes" value="YES" />
<?php
$res = mysql_query("SELECT * FROM members");
while($row = mysql_fetch_array($res))
{
if(isset($_REQUEST['yes']))
{
    $id=$row['id'];
    echo $id;
    mysql_query("DELETE from members WHERE id= '$id' "); 
    header("location: view.php");
}
}
?>
<input type="submit" name="no" value="NO" />
<?php
if(isset($_REQUEST['no']))
{
    header("location: view.php");
}
?>
</form> 
</body>
为此:

mysql_query("DELETE from members WHERE id= '$id' "); 

将db connection作为第二个参数传递给mysql_query(),以从成员表中删除行:

mysql_query("DELETE FROM members WHERE id= '".$id."' ");
这里的DB connection是指您在connection.php文件中定义的内容:

mysql_query("DELETE from members WHERE id= '$id'" , $dbCon); 

我希望这能解决你的问题

您的查询
SELECT*FROM members
未排序将以不可预测的顺序选择所有行

while
循环中的
if
s将始终为true或false:

  • 如果用户单击“是”按钮,表格的所有行将被删除,因为您没有退出
    标题(“location:view.php”)后的code>(请参阅)

  • 如果用户单击“否”按钮,则while循环的每次迭代都不会执行任何操作

所以你应该做的是:

  • 表单中有一个隐藏参数,其中包含要删除的字段的id
  • 当用户提交表单时测试隐藏字段是否存在并已清理
  • 不要选择表中的所有行
  • 按主键安全删除行
  • 调用
    退出
    after
    header(“location:view.php”)
  • 在循环内执行if时,如果值不变,则尽可能将其移到循环外

为什么人们还在使用
mysql
函数?看在上帝的份上,请切换到
mysqli
pdo
$db_host="localhost";
$db_name="test";
$username="root";
$password="";
$dbCon=mysql_connect($db_host,$username,$password);
<?php
include("connection.php");

echo "Do you really want to DELETE this field? " ;
?> 
<form method="post">
<input type="submit" name="yes" value="YES" />
<?php
if(isset($_REQUEST['yes']))
{
    if(isset($_GET['delet']))
    {
        $id = $_GET['delet'];
        $res = mysql_query("SELECT * FROM members WHERE id = '$id' ");
        $row = mysql_fetch_array($res);
        $did = $row['id'];
        $dname = $row['name'];
        $dphn = $row['phn'];
        /*echo $did;
        echo $dname;
        echo $dphn;*/

        $ins = "INSERT INTO del (mid,name,phn) values ('$did','$dname','$dphn')";
        mysql_query($ins);

        mysql_query("DELETE FROM members WHERE id = '$id' ");
        header('location: view.php');

    }
}

?>  

<input type="submit" name="no" value="NO" />

<?php
if(isset($_REQUEST['no']))
{
    header("location: view.php");
    exit;
}
?>
</form>