在显示屏上显示特色产品

时间:2015-01-23 21:54:40

标签: php mysql sql database rdbms

我正在使用opencart并使用下面提到的查询获取产品列表,这些产品会显示最新产品。

   $result = mysqli_query($con,"select p.image,p.price,p.store_name,p.deal_title_url,p.shop_now_url,p.coupon_code,p.special_deal_txt,p.special_comment_txt,s.price,d.name,p.date_added from oc_product p, oc_product_special s,oc_product_description d where p.product_id=s.product_id and p.product_id=d.product_id order by p.date_added DESC $limit;");

注意 - 1.限制用于分页 2.从多个表中提取数据

现在我想在显示屏顶部显示所有特色产品。所以基本上,特色阵列中的产品必须始终显示在顶部,然后根据创建日期显示剩余的产品。

特色产品ID保存在一个数组中 - $ featured_array

如何做到这一点?

请注意,特色产品的数量可能会有所不同。

1 个答案:

答案 0 :(得分:0)

尝试使用UNION。在第一个查询中获取特色产品,在第二个查询当前查询。限制是结合结果

(
select p.image,p.price,p.store_name,p.deal_title_url,p.shop_now_url,p.coupon_code,p.special_deal_txt,p.special_comment_txt,s.price,d.name,p.date_added from oc_product p, oc_product_special s,oc_product_description d where p.product_id=s.product_id and p.product_id=d.product_id AND p.product_id IN($featuredProductsIds) order by p.date_added DESC 
)
UNION
(
select p.image,p.price,p.store_name,p.deal_title_url,p.shop_now_url,p.coupon_code,p.special_deal_txt,p.special_comment_txt,s.price,d.name,p.date_added from oc_product p, oc_product_special s,oc_product_description d where p.product_id=s.product_id and p.product_id=d.product_id order by p.date_added DESC 
)
$limit;