发送MySQL查询复选框表格数据到PHP脚本

时间:2015-04-28 01:57:22

标签: php mysql

正如标题所述,我试图将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>   

以上显示在浏览器中正常。以下是我通过php运行sql查询失败的尝试。在这一点上,我只是试图让它为一个部门工作(&#34;第一部门&#34;),一旦我开始工作,我想我可以从那里去。这里是sql / php减去脚本开头的数据库登录信息:

if(isset($POST[dept_name])){
  $sql="select user_role,group_name
  from groups,users,groups_users_link,departments
  where groups.group_id=groups_users_link.groups_id
  and users.user_id=groups_users_link.user_id
  and groups.department_id=departments.department_id
  and league_name like \"First Department\"
  and groups_users_link.user_id=1";
  $result=mysql_query($sql);
}

让我重申上述查询在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>

我希望这能显示部门内第一部门中此类团体的所有空缺用户角色。&#34;相反,它会显示列名称,但缺少查询结果。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

在复选框的HTML中,使用数组表示法作为复选框名称:

name="dept_name[]"

然后,当您处理发布的表单时,如果$POST应为$_POST,则会出现错误。

最后,如果可能的话,切换到mysqli或pdo。 mysqli函数可以以与mysql非常相似的方式使用,如果你不在大型遗留代码库中,它很容易切换。