我目前面临一个奇怪的问题,即我的调试页面没有出现任何错误。我的表由几行组成,只有表的第一行无法删除。
样本表格:
$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>
}
Remove.php:
$StaffNo= $_POST["StaffNo"];
$DB = new PDO('sqlite:database/Sample.db');
$DB->query("DELETE FROM Staff WHERE StaffNo=".$StaffNo);
@header("location:view.php");
从上面的代码中,我可以删除除第一行以外的所有样本记录。它不会被删除...请告知我是否在某处做错了....
答案 0 :(得分:1)
我已经尝试过你的代码,除了破坏的表格代码外,一切似乎都很好。确保您的表格正确无误(<table><tr><td>Content</td></tr></table>
)。在您的问题中,您错过了第一个文件第9行的开头<td>
,以及缺少<table>
标记。有些浏览器不能很好地处理损坏的表,这可能会弄乱你的表单。
如果$StaffNo
为空字符串,您的查询也会中断,请仔细检查。
您还可以尝试删除header()
来电并使用$DB->errorInfo()
打印错误。
答案 1 :(得分:0)
要为您的变量注入您应键入的隐藏字段 “$ StaffNo。” 代替 “$ StaffNo”。 可能它不会删除表格的第一行,因为它是唯一一个定义了StaffNo的行。