为了账号安全,请及时绑定邮箱和手机立即绑定

MySQL PHP,SELECT WHERE条件是一个数组

MySQL PHP,SELECT WHERE条件是一个数组

PHP
MMTTMM 2023-04-28 15:19:27
我正在尝试从 db WHERE 条件是一个数组中选择产品。我的方法在声明数组时有效,但在提交表单后生成数组元素时无效。    $selected_categories = array();        //create empty array    if(isset($_POST['submit'])){          //if form is submitted        $name = $_POST['category'];        foreach ($name as $category){            $selected_categories[] = $category;          //add all checked checkboxes values into the array, every single $category element is text i.e. programming science        }        $get_products = "SELECT P.*, C.category_name, GROUP_CONCAT(category_name SEPARATOR ', ') AS cat FROM products P NATURAL JOIN categories C NATURAL JOIN product_to_categories WHERE category_name IN ('$selected_categories') GROUP BY product_name ORDER BY 1 DESC LIMIT $start_from,$per_page";    }问题(我认为)在数组中,因为当我使用数组中的一个元素时:... WHERE category_name IN ('$selected_categories[1]')...工作正常它也在使用时工作:... WHERE category_name IN ('programming', 'science')...
查看完整描述

1 回答

?
繁华开满天机

TA贡献1816条经验 获得超4个赞

WHERE category_name IN ('$selected_categories')是错误的——该参数将被视为一个字符串文字,而不是一列单独的文字。

使用WHERE FIND_IN_SET(category_name, '$selected_categories')

中的单独值$selected_categories必须严格用逗号分隔(如果使用其他分隔符则替换它)。


查看完整回答
反对 回复 2023-04-28
  • 1 回答
  • 0 关注
  • 147 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信