在MySQL数据库中,可以将图库中的图像分配到产品系列,以便可以过滤图库以仅显示特定范围内的图像。
目前主图库包含: -
$query_Cur_range_img = "SELECT * FROM `images` WHERE active = 'y' AND gallery = '1' LIMIT ".$showfrom.", ".$max;
如果图库为'1',则图像将显示在主图库(ALL)中。
某些图片也会添加到单独的数据库列'product_range_id'中的产品系列中,产品范围ID为1,2或3。
在过滤图库的包含文件中,我们有: -
$query_Cur_range_img = "SELECT * FROM `images` WHERE active = 'y' AND gallery = '1' AND product_range_id = '1' LIMIT ".$showfrom.", ".$max;
这仅显示仅分配给product_range_id 1的图像。一些图像将显示在产品范围2和3中,例如或者可能是1和2.我想我们需要包含一个OR语句?我们非常感谢您为此编写查询的任何帮助,如上所述,我认为我们需要AND product_range_id ='1'(或2或3)?
提前致谢。
更新
我已经尝试了以下但是当通过rage id 1过滤图像时所做的一切都是仅显示给范围id 1的显示图像(例如,不包括分配给范围id 1和2的图像)。 / p>
$query_Cur_range_img = "SELECT * FROM `images` WHERE active = 'y' AND gallery = '1' AND (product_range_id = '1' OR product_range_id = '1' AND product_range_id = '2' OR product_range_id = '1' AND product_range_id = '3') LIMIT ".$showfrom.", ".$max;
更新 - 2012年1月13日
现已解决 - 修复如下(感谢Elen)
$query_Cur_range_img = "SELECT * FROM images WHERE active = 'y' AND gallery = 1 AND (FIND_IN_SET('1', product_range_id) OR product_range_id = '1') LIMIT ".$showfrom.", ".$max;
和
$query_Cur_range_img = "SELECT * FROM images WHERE active = 'y' AND gallery = 1 AND (FIND_IN_SET('2', product_range_id) OR product_range_id = '2') LIMIT ".$showfrom.", ".$max;
和
$query_Cur_range_img = "SELECT * FROM images WHERE active = 'y' AND gallery = 1 AND (FIND_IN_SET('3', product_range_id) OR product_range_id = '3') LIMIT ".$showfrom.", ".$max;
根据要求...
答案 0 :(得分:2)
这还不错吗?
SELECT * FROM `images` WHERE active = 'y' AND gallery = '1' AND (product_range_id = '1' OR product_range_id = '2' OR product_range_id = '3') LIMIT ".$showfrom.", ".$max.";
修改
$query_Cur_range_img = "SELECT * FROM images WHERE active = 'y' AND gallery = 1 AND
(FIND_IN_SET('1', product_range_id) OR product_range_id = '1') LIMIT ".$showfrom.", ".$max;
答案 1 :(得分:2)
试试这个:
$query_Cur_range_img = "SELECT * FROM `images`
WHERE active = 'y'
AND gallery = '1'
AND product_range_id IN ('1', '2', '3')
LIMIT ".$showfrom.", ".$max;
希望它会有所帮助,
PS 如果您使用php获取product_range_id
,那么PLZ永远不会忘记使用mysql_real_escape_string()