此代码检查$value
(数组)是否在数据库中设置为1
。 foreach循环将所有创建匹配保存到数组$products
中。现在我在数据库中的所有字段都具有值1
,但这不是我想要的,因为如果字段'dog'等于1
而字段'cat'等于{{1}我仍然在我的数组中有'dog'的值。当BOTH等于1时,它只能到达数组。
对于简单变量,您可以使用NULL
或&&
运算符检查所有键是否具有相同的值,但如何使用数组执行此操作?
AND
答案 0 :(得分:1)
更改SQL语句,使所有选中的值等于1.
您可以为每个值附加" = 1 AND "
,然后在查询中使用它们。
<?php
$arr = ['field1', 'field2', 'field3'];
$condition = join(' = 1 AND ', $arr) . ' = 1';
输出为"field1 = 1 AND field2 = 1 AND field3 = 1"
。然后,您可以在查询中使用$condition
。
$db->query("SELECT * FROM produkte WHERE $condition")
更新:
要处理包含空格的字段名,您需要用反引号包装每个字段名,所以更改此行
$condition = '`' . join('` = 1 AND `', $arr) . '` = 1';