【问题标题】:MySql how to union 2 queries within if statementsMySql如何在if语句中合并2个查询
【发布时间】:2013-07-31 03:31:37
【问题描述】:

这是我的表单和 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>

任何帮助表示赞赏。谢谢

【问题讨论】:

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

标签: mysql select if-statement union


【解决方案1】:

只是一个建议,它丑陋但简单:

$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'";
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多