将MySQL查询的复选框表单数据发送到PHP脚本
正如标题所述,我正在尝试将html表单复选框数据(应该用于查询MySQL数据库)发送到PHP脚本,其中输出应该是查询结果表。我有一个html文档和另一个php/sql文档该查询在MySQL中运行良好,但当我尝试通过html/php执行它时,我得到了结果表的列名,但没有查询结果。这就是问题所在 数据库将用户分组,并将用户分组到部门。该查询查找部门内的用户空缺(其中user_id=1)。我想是php把我搞砸了。这是我到目前为止所拥有的-- html表单:将MySQL查询的复选框表单数据发送到PHP脚本,php,mysql,Php,Mysql,正如标题所述,我正在尝试将html表单复选框数据(应该用于查询MySQL数据库)发送到PHP脚本,其中输出应该是查询结果表。我有一个html文档和另一个php/sql文档该查询在MySQL中运行良好,但当我尝试通过html/php执行它时,我得到了结果表的列名,但没有查询结果。这就是问题所在 数据库将用户分组,并将用户分组到部门。该查询查找部门内的用户空缺(其中user_id=1)。我想是php把我搞砸了。这是我到目前为止所拥有的-- html表单: <form name="dept_ch
<form name="dept_checkbox" method="post" action="dept.php">
<fieldset>
<legend>In which department would like to find open positions?</legend><br />
<input type="checkbox" name="dept_name" id="dept_name" value="First Department" />First Department<br />
<input type="checkbox" name="dept_name" id="dept_name" value="Second Department" />Second Department<br />
<input type="checkbox" name="dept_name" id="dept_name" value="Third Department" />Third Department<br />
<input type="checkbox" name="dept_name" id="dept_name" value="Fourth Department" />Fourth Department<br />
<input type="checkbox" name="dept_name" id="dept_name" value="Fifth Department" />Fifth Department<br />
<input type="checkbox" name="dept_name" id="dept_name" value="All Departments"/>All Departments<br /><br />
<input type="submit" value="Submit" />
</fieldset>
让我重申一下,上面的查询是在MySQL中工作的。以下是php脚本的其余部分,该脚本应以表格形式显示结果:
echo("<table border=\"10px\">");
echo("<tr><th>Role</th><th>Group</th></tr>");
while($myrow=mysql_fetch_array($result))
{
echo("<tr><td>".$myrow[user_role]."</td>");
echo("<td>".$myrow[group_name]."</td>");
}
echo("</table>");
?>
<h4><a href="dept.html">Back to form</a></h4>
echo(“”);
echo(“角色组合”);
while($myrow=mysql\u fetch\u数组($result))
{
echo(“$myrow[user_role]”);
echo(“$myrow[组名称]。”);
}
回声(“”);
?>
我希望它能显示部门“First department”中某个或某个组的所有空闲用户角色。相反,它会显示列名,但缺少查询结果。非常感谢您的帮助。在您的HTML中,复选框名称使用数组表示法:
name=“部门名称[]”
然后,在处理已发布的表单时,出现了一个错误,$POST
应该是$\u POST
最后,如果可能,切换到mysqli或pdo。mysqli函数可以以与mysql非常相似的方式使用,如果您不在大型遗留代码库中,则很容易切换。
$myrow[user\u role]
失败,因为您没有字符串封装,因此user\u role
被视为常量,而不是字符串(在user\u role周围添加引号)。此外,启用错误报告。最后,迁移到mysqli
或pdo
请在数组键为字符串时引用它们,即$POST['dept\u name']
和$myrow['group\u name']
。这些通常会生成E_通知,而不是错误,但这是正确的方法。您是否尝试过回显$POST['dept_name']
的内容?我在您的查询代码中看到您没有使用它,但这可能是出于测试目的。在查询检查mysql错误之后:if(!$result)echo mysql_error()代码>(请以后切换到mysqli或pdo。)此$POST[dept_name]
不正确,原因如下。其中一个已经说过了,但没有提到它是一个超全局的事实-您还需要将复选框设置为数组。另外,可能缺少结束表单标记。您的查询也需要修改以接受array.Cool。现在完全可以用了。我会考虑换成mysqli。再次感谢您的快速回复。我想投票,但我没有代表:(另一方面,如果您希望用户一次只选择一个部门,那么您应该切换到使用单选按钮而不是复选框。如果您允许多个部门选择,那么您的查询将需要修改。因为如果有人选择多个复选框,它可能无法按您预期的方式工作。嗯。是的,我选择mul有很多选择。我会用它来做工具,看看会发生什么
echo("<table border=\"10px\">");
echo("<tr><th>Role</th><th>Group</th></tr>");
while($myrow=mysql_fetch_array($result))
{
echo("<tr><td>".$myrow[user_role]."</td>");
echo("<td>".$myrow[group_name]."</td>");
}
echo("</table>");
?>
<h4><a href="dept.html">Back to form</a></h4>