PHP SQL查询没有拉出预期的结果

时间:2018-06-18 12:47:25

标签: php sql

我有这样的查询:

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()有关,但就我而言。

提前感谢任何见解!

更新:作为对自己的加入,这样做怎么样?我该怎么办?这是我必须让它发挥作用的另一种想法。

1 个答案:

答案 0 :(得分:0)

好吧,这是一个答案。但不是应该的。 我决定将查询分为两部分:

  • 首先拉类别...

    name_id中的thisTable ='类别'和field ='$ catvalue'中选择value

  • 然后将其中的子类别拉出

    value中的thisTable中选择name_id ='$ name_id'AND field ='subcat'AND value!=

不是最简洁的解决方案,但它可以工作:)

相关问题