从填充的表中删除行

时间:2012-07-18 10:03:29

标签: 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'];
    $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");

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

2 个答案:

答案 0 :(得分:1)

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

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

您还可以尝试删除header()来电并使用$DB->errorInfo()打印错误。

答案 1 :(得分:0)

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