我正在创建一个依赖于几个输入表单值的查询,并且在某些时候我正在处理三个值。查询的第一个值必须始终为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查询,我想知道这样做的干净方法是什么。
答案 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)