条件查询取决于2复选框

时间:2012-10-22 07:59:28

标签: php sql

我正在创建一个依赖于几个输入表单值的查询,并且在某些时候我正在处理三个值。查询的第一个值必须始终为0,所以我有:

.. AND value_1 = 0

我希望能干净利落的是:

如果选中checkbox_2:

... AND (value_1 = 0 OR value_2 = 0)

如果选中checkbox_3

... AND (value_1 = 0 OR value_3 = 0)

如果选中checkbox_2和checkbox_3

... AND (value_1 = 0 OR value_2 = 0 OR value_3 = 0)

我在字符串中创建SQL查询,我想知道这样做的干净方法是什么。

2 个答案:

答案 0 :(得分:1)

最干净的方法是创建一个数组,其中填充SQL查询中使用的选项,并将implode字符串放在一起。

<?php

$options = array();
$options[] = 'value_1';
$options[] = 'value_2';

// add our condition to each column
array_walk($options, function(&$v) {
    $v = sprintf('%s = 0', $v);
});

// implode into SQL
$sql = sprintf('... AND (%s)', implode(' OR ', $options));

请确保将您的复选框连接到$options数组。

答案 1 :(得分:0)

您是否希望复选框_1始终被选中加上checkbox_2或checkbox_3?这看起来像这样

... AND value_1 = 0 AND (value_2 = 0 OR value_3 = 0)
相关问题