MySql如何在if语句中联合2个查询

MySql如何在if语句中联合2个查询,mysql,select,if-statement,union,Mysql,Select,If Statement,Union,这里是我的表单和mysql/php代码 如果这两个复选框都选中,mysql不会执行查询有没有办法让此表单正常工作? MySQL if (isset($_POST['A']) && !empty($_POST['A'])) { $query= "SELECT * FROM (SELECT * FROM myTable WHERE...) as A WHERE Column1='y'"; } if (isset($_POST['B']) && !empty($

这里是我的表单和mysql/php代码

如果这两个复选框都选中,mysql不会执行查询有没有办法让此表单正常工作?

MySQL

 if (isset($_POST['A']) && !empty($_POST['A'])) {
 $query= "SELECT * FROM (SELECT * FROM myTable WHERE...) as A WHERE Column1='y'";
 }
 if (isset($_POST['B']) && !empty($_POST['B'])) {
 $query= "SELECT * FROM (SELECT * FROM myTable WHERE...) as B WHERE Column2='y'";
 }
表格

<form id="myform1" class="myform1" method="post" name="myform1">
<input type="checkbox" name="A[]" id="A" value="y" />
<input type="checkbox" name="B[]" id="B" value="y" />
<input id="submit" type="submit" name="submit" value="Submit" 
onclick="return submitForm1()" />
</form>


感谢您的帮助。谢谢你

这只是一个建议,很难看但很简单:

$teamsters = ''; 
$query = '';
if (isset($_POST['A'][0]) && !empty($_POST['A'][0])) {
   $query= "SELECT * FROM (SELECT * FROM myTable WHERE...) as A WHERE Column1='y'";
   $teamsters = ' UNION ';
}
if (isset($_POST['B'][0]) && !empty($_POST['B'][0])) {
   $query .= $teamsters . "SELECT * FROM (SELECT * FROM myTable WHERE...) as B WHERE Column2='y'";
}

您意识到您需要检查
$\u POST['A'][0]
的值,因为您在输入名称中使用了数组访问符号
A[]
?您可能应该删除它,只需调用输入字段
A
B
,因为我不知道如何将其设置为数组。碰巧在您的情况下这并不重要,因为您实际上并没有在任何地方使用输入的值。我想指出的是,这可能会在将来需要这样一个值的情况下引起混乱。你能展示完整的代码吗?您实际上是在条件中查询数据库,但只是没有显示它,还是在两个条件都执行后,使用
$query
实际执行MySQL查询(在这种情况下,只有来自上一个成功条件的查询才会运行)?Hi Mark感谢您的评论。我很感激你的建议,但是var_dump返回的值解析正确。我的问题是如何合并这两个查询,如果没有看到完整的查询,很难说。我甚至不确定是否真的需要工会,但我不知道,因为您还没有显示子选择。老实说,我甚至不知道您是否需要子选择。好的,我会尽快发布所有查询