繁体   English   中英

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

[英]How to delete random row using button in 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 = 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' "); 

对此:

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

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

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

在这里,DB连接是指您在connection.php文件中定义的内容:

$db_host="localhost";
$db_name="test";
$username="root";
$password="";
$dbCon=mysql_connect($db_host,$username,$password);

希望这能解决您的问题!

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

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

  • 如果用户单击“是”按钮,则表的所有行将被删除,因为您没有exit; header("location: view.php"); (请参阅这篇文章

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

所以你应该怎么做:

  • 在表单中有一个隐藏参数,其中包含要删除的字段的ID。
  • 测试用户何时提交存在并清除隐藏字段的表单。
  • 不要选择表的所有行
  • 通过其主键分别删除行。
  • 呼叫exit; header("location: view.php");
  • 在循环中执行if时,如果值不变,则尽可能将其移到循环外。
<?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> 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM