0

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

样品形式:

$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>
}

删除.php:

$StaffNo= $_POST["StaffNo"];
$DB = new PDO('sqlite:database/Sample.db');

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

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

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

4

2 回答 2

1

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

如果是空字符串,您的查询也会中断$StaffNo,因此请仔细检查。

您还可以尝试header()使用 删除呼叫并打印出错误$DB->errorInfo()

于 2012-07-18T11:29:40.090 回答
0

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

于 2012-07-18T10:51:19.900 回答