Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 从填充的表中删除行_Php_Html - Fatal编程技术网

Php 从填充的表中删除行

Php 从填充的表中删除行,php,html,Php,Html,我目前面临一个奇怪的问题,我没有从调试页面得到任何错误。“我的表”由几行组成,只有表的第一行不能删除 样本表格: $DB = new PDO('sqlite:database/Sample.db'); $result = $DB->query("select * from staff"); foreach ($result as $row) { $StaffNo= $row['StaffNo']; $Name= $row['Name']; $TelN

我目前面临一个奇怪的问题,我没有从调试页面得到任何错误。“我的表”由几行组成,只有表的第一行不能删除

样本表格:

$DB = new PDO('sqlite:database/Sample.db');
$result = $DB->query("select * from staff");        
foreach ($result as $row)
{
    $StaffNo= $row['StaffNo'];
    $Name= $row['Name'];
    $TelNo= $row ['TelNo']; 

 echo "<tr>";
//Go to remove.php to remove
echo "<form action=\"Remove.php\" method=\"post\">";
echo "<input type=\"hidden\" name=\"StaffNo\" value=\"$StaffNo\">";
echo "<input type=\"submit\" onclick=\"return confirm('Yes/No')\"/>";
echo "</form>";
 echo "</td>";
echo '<td data-column-name="Name" char="data">'.$Name.'</td>';
echo '<td data-column-name="TelNo" char="data">'.$TelNo.'</td>';
</tr>
}

从上面的代码中,我可以删除除第一行之外的所有示例记录。它不会被删除。。。如果我在某个地方做错了,请告知。…

要将变量输入到您应该键入的隐藏字段中 “$StaffNo。” 而不是 “$StaffNo”。
可能它不会删除表的第一行,因为它是唯一一个定义了StaffNo的行。

我已经尝试了您的代码,除了损坏的表代码之外,一切似乎都很好。确保您的表格正确(
Content
)。在您的问题中,第一个文件的第9行缺少一个开头
,也缺少
标记。有些浏览器不能很好地处理损坏的表,这可能会弄乱表单

如果
$StaffNo
为空字符串,则查询也将中断,因此请仔细检查该字符串


您还可以尝试删除
header()
调用,并使用
$DB->errorInfo()

打印错误,可能您只是没有发送“StaffNo”。尝试输出发送到Remove的每个“StaffNo”。phpI已尝试。它可以删除除第一行以外的所有行。是由于复制粘贴错误而导致错位的
}
(现在,
$staffNo
在每次循环迭代中都会被覆盖)和
周围缺少的
echo
语句,还是您的真实代码中也有?错误可能在您忽略的部分。@RikkusRukkus我已编辑了我的错误。是我打字的错误。请告知我是否犯了更多错误从php脚本中输出查询并尝试在mysql客户端中运行。他使用双引号,因此变量将被解释。如果他使用单引号,他确实需要像
value=“.$StaffNo.”这样的东西。使用双引号,
value=\“$StaffNo\”
就足够了。
$StaffNo= $_POST["StaffNo"];
$DB = new PDO('sqlite:database/Sample.db');

$DB->query("DELETE FROM Staff WHERE StaffNo=".$StaffNo);

@header("location:view.php");