我正在使用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
如何做到这一点?
请注意,特色产品的数量可能会有所不同。
答案 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;