我有这样的查询:
SELECT `value` FROM `thisTable` WHERE (`field` = 'category' AND `value` = '$catvalue') OR (`field` = 'subcat' AND `value` > '') GROUP BY `name_id` HAVING count(*) >= '2'
这是从thisTable中提取数据:
------------------------------
| name_id | field | value |
------------------------------
| 1 | category | cat1 |
| 1 | subcat | sub3 |
| 2 | category | cat1 |
| 2 | subcat | sub2 |
| 3 | category | cat1 |
| 3 | subcat | sub1 |
------------------------------
我的查询在PHPMyAdmin中完美运行,因为它列出了子类别的值。但是当我尝试在PHP查询中提取相同的内容时,我只获取类别的值。
所以PHPMyAdmin会显示sub3, sub2, sub1
这就是我想要的,但我的查询会显示cat1, cat1, cat1
!
我的代码与上述查询相同,但结果不同。
$result = $connect->query("SELECT `value` FROM `thisTable` WHERE (`field` = 'category' AND `value` = '$catvalue') OR (`field` = 'subcat' AND `value` > '') GROUP BY `name_id` HAVING count(*) >= '2'");
while($data = $result->fetch()) {
$array[] = $data['value'];
}
我无法看到下一步去获取PHPMyAdmin显示的结果!
我猜它与fetch()
有关,但就我而言。
提前感谢任何见解!
更新:作为对自己的加入,这样做怎么样?我该怎么办?这是我必须让它发挥作用的另一种想法。
答案 0 :(得分:0)
好吧,这是一个答案。但不是应该的。 我决定将查询分为两部分:
首先拉类别...
从name_id
中的thisTable
='类别'和field
='$ catvalue'中选择value
然后将其中的子类别拉出
从value
中的thisTable
中选择name_id
='$ name_id'AND field
='subcat'AND value
!=
不是最简洁的解决方案,但它可以工作:)