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");