Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/271.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将MySQL查询的复选框表单数据发送到PHP脚本_Php_Mysql - Fatal编程技术网

将MySQL查询的复选框表单数据发送到PHP脚本

将MySQL查询的复选框表单数据发送到PHP脚本,php,mysql,Php,Mysql,正如标题所述,我正在尝试将html表单复选框数据(应该用于查询MySQL数据库)发送到PHP脚本,其中输出应该是查询结果表。我有一个html文档和另一个php/sql文档该查询在MySQL中运行良好,但当我尝试通过html/php执行它时,我得到了结果表的列名,但没有查询结果。这就是问题所在 数据库将用户分组,并将用户分组到部门。该查询查找部门内的用户空缺(其中user_id=1)。我想是php把我搞砸了。这是我到目前为止所拥有的-- html表单: <form name="dept_ch

正如标题所述,我正在尝试将html表单复选框数据(应该用于查询MySQL数据库)发送到PHP脚本,其中输出应该是查询结果表。我有一个html文档和另一个php/sql文档该查询在MySQL中运行良好,但当我尝试通过html/php执行它时,我得到了结果表的列名,但没有查询结果。这就是问题所在

数据库将用户分组,并将用户分组到部门。该查询查找部门内的用户空缺(其中user_id=1)。我想是php把我搞砸了。这是我到目前为止所拥有的--

html表单:

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