Php can';t从mySQL生成表中删除特定行

Php can';t从mySQL生成表中删除特定行,php,mysql,Php,Mysql,惠,我在做一个关于库存系统的小项目。在这最后一部分之前一切都很好。我在每行的末尾都包含了一个删除按钮,用户可以删除任何选择项,但当用户按下删除按钮时,它删除了表的最后一行,而不是选择项的行/项,我的编码错误在哪里 谢谢大家! 由于生成的所有行的隐藏字段的名称都相同,因此post请求提取最后一行的值(也称为“staffId1”) 我建议对每一行使用一个单独的表单,在这种情况下,您的代码不会有太大的变化,或者使用js来使用选择器获取所需的staffID,如果您为每个记录包含相同的隐藏字段(Sta

惠,我在做一个关于库存系统的小项目。在这最后一部分之前一切都很好。我在每行的末尾都包含了一个删除按钮,用户可以删除任何选择项,但当用户按下删除按钮时,它删除了表的最后一行,而不是选择项的行/项,我的编码错误在哪里

谢谢大家!



由于生成的所有行的隐藏字段的名称都相同,因此post请求提取最后一行的值(也称为“staffId1”)


我建议对每一行使用一个单独的表单,在这种情况下,您的代码不会有太大的变化,或者使用js来使用选择器获取所需的staffID,如果您为每个记录包含相同的隐藏字段(StaffId1),那么它将包含多个值

您现在正在收听按下的SUBMIT,因此不需要隐藏字段。如果按下SUBMIT键,您就可以得到该值

按钮

type="submit" name="staffId" value="<?php echo $id ?>"

我以前也遇到过这个错误。我认为错误发生了,因为您为每个数组结果调用相同的“onclick”函数

相反,创建一个指向页面的链接,您可以在其中运行php删除脚本,并将标记传递到URI中,然后在您创建的php删除脚本中获取该标记

范例

<form action="deletion_script.php?staffid=<?php echo $staffid; ?>">

不要使用
mysql.*
函数。自v5.5版(2013年6月)起,它们就被弃用,自v7.0版(2015年12月)起被删除。与和一起使用or函数。您的代码容易受到攻击。您应该使用或准备带有绑定参数的语句,如中所述。否,此项目不会发布给任何人,它只是一个测试项目。所有数据都只是测试数据
<form action="deletion_script.php?staffid=<?php echo $staffid; ?>">
<?php
//get staffid from URI
$staffid = $_GET['staffid']; 

$sql="DELETE FROM $table_name WHERE staffid = '$staffid'"
$result = mysqli_query($connect, $sql);
if($result) {
//send back to the page you want
header("Location: ../inventory.php");
}
?>