我有三张table
产品
产品特性
特征
在第一个我有我的产品,第二个我有产品的id和功能的id,第三个我有可以是不同颜色,大小,材料的功能。。。
我用蓝色,红色,白色,黑色建立了一个过滤菜单。。。尺码xl l m s。。。当用户选择它时,脚本发送一个ajax请求来显示产品。。。表单输入为复选框类型。。。
问题是每次用户选择某个对象时,我都会发送一个对象
例子
object = {
"color": [13215, 23154, 21658,...],
"size": [5123, 6574, 9875,...]
}
当我在file.php上打印数据时,数组中充满了id\u特性,它清楚地显示了我想要的东西。
所以我的问题是sql查询,我有类似的东西
$features = implode("','", $ajaxArray['feature']); //ajaxArray is the object sent by JS
$query = "SELECT id_product FROM product_feature WHERE id_feature IN ('$features')";
因此,如果我在我的过滤器中选择“红色”和“xl”,它会向我显示每个具有“红色”功能或“xl”功能的产品,而我想要的只是具有“红色”和“xl”功能的产品。。。如果一个产品有红色,但没有xl码,我不想让他们显示!!!
1条答案
按热度按时间eh57zj3b1#
你要mysql做的是
所以,它做的正是你要求它做的事情,“in”子句是一个隐含的“or”
您需要一个更复杂的查询,有几种方法可以做到这一点,但这里有一个q&d方法