Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/266.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 带有或和的SELECT语句,当数据库未完全填充时成功,当数据库未完全填充时失败。_Php_Mysql - Fatal编程技术网

Php 带有或和的SELECT语句,当数据库未完全填充时成功,当数据库未完全填充时失败。

Php 带有或和的SELECT语句,当数据库未完全填充时成功,当数据库未完全填充时失败。,php,mysql,Php,Mysql,我对select语句有问题 我的表中填充了数据,我使用此查询从表中获取特定数据: SELECT * FROM company WHERE ( paid = 'yes' AND country = '$country'

我对select语句有问题

我的表中填充了数据,我使用此查询从表中获取特定数据:

SELECT * FROM company WHERE
                                    (
                                    paid = 'yes' AND
                                    country = '$country'
                                    )
                                    AND
                                    (
                                    categoryid1 = '$subCategory' OR
                                    categoryid2 = '$subCategory' OR
                                    categoryid3 = '$subCategory' OR
                                    categoryid4 = '$subCategory' OR
                                    categoryid5 = '$subCategory' OR
                                    categoryid6 = '$subCategory'
                                    )
                                    ORDER BY title
我的问题是: 当我用数据填充所有6个类别列时,它不会从表中选择任何内容。但如果我从一个类别中删除数据,它将选择正确的数据

有人能帮忙吗


非常感谢

为一系列OR子句添加额外的匹配机会永远不会使您的条件从True变为False,除非它试图匹配NULL或空字符串。在这种情况下,有一个空白列将导致它始终匹配,而在所有列中有数据将导致它始终失败


我敢打赌,如果你检查你的代码,$子类别没有正确设置,你的ORs都在寻找类别

哪个类别是空的重要吗?另外,在最后一个和之前不需要括号。查询看起来还可以,您是否有任何可能出错的周围代码?能否显示一些数据点以及哪些数据点导致了问题。kasavbere:是的,哪一个为空并不重要。我只需要匹配其中一个。Joachim:我从mysql中获得$country\u escape\u string$\u get['country'],但我确信有正确的输入,并对其进行了测试。所有其他代码都只是输出我从查询中得到的结果:当您从控制台用一个示例案例替换变量时,是否得到相同的结果?谢谢。这就是问题所在。我有错误的初始化子类别:嗯,你做了一个很好的工作,注意和描述不寻常的行为与空白栏。我玩得很开心啊哈!现在我明白了,所以至少有一些好处。对于捕捉这样的问题,我经常发现回显我正在发送的查询确实很有帮助。转到准备好的查询的一个缺点是,您不能这样做,但您仍然可以打印查询的文本以及正在发送的参数数组。