我的代码如下。基本上,它是一个“交易”网站(类似于groupon)。此页面显示城市中所有活动的交易,并按类别对其进行排序。例如,它将显示:“餐饮”(然后是“餐饮”下的所有交易),然后是“冒险”(以及冒险下的所有交易)。等。我想做的是把它缩短一大堆。我想只显示每个交易的最大3,但然后一个链接说:“查看(x)在这个类别的更多”。例如:
Dining
<max of 3 deals>
(if deals > 3) "View 9 more deals in Dining"
Adventure
<max of 3 dals
(if deals > 3) "View 4 more deals in Adventure"我知道我可以分离它并拥有一堆SQL语句(在餐饮中获得所有交易,在冒险中获得所有交易。显示3等。我只是想知道是否有可能用另一种方式来做)。
$deals = mysql_query("SELECT $db[ddd_companies].name as company_name, $db[ddd_companies].slug as company_slug, $db[ddd_deals].slug as slug, $db[ddd_deals].id, $db[ddd_deals].company_id, $db[ddd_deals].end_time, $db[ddd_deals].name, $db[ddd_deals].photo_alldeals, $db[ddd_categories].name as category
FROM $db[ddd_deals]
JOIN $db[ddd_cities_deals] as cd ON $db[ddd_deals].id=cd.deal_id
join $db[ddd_categories] on $db[ddd_categories].id=$db[ddd_deals].category_id
join $db[ddd_companies] on $db[ddd_companies].id=$db[ddd_deals].company_id
WHERE cd.city_id='$_SESSION[city_id]' AND $db[ddd_deals].start_time<='$now' AND $db[ddd_deals].end_time>'$now' AND $db[ddd_deals].deal_status_id='2' ORDER BY $db[ddd_categories].name, $db[ddd_deals].end_time");
$section = '';
while($d = mysql_fetch_array($deals)) {
if($section != $d['category']) {
// Display Section title when there is a new one
?>
<div style="clear: both;"> </div>
<h2><?php echo $d['category'];?></h2>
<?php
}
// Show deal information
$section = $d['category'];
}编辑为Add: Limit允许我将结果的数量限制为3,但我还需要拉出该类别中的数量。
发布于 2011-08-16 01:34:23
请尝试在查询中指定限制。
在where子句之后,尝试LIMIT 3;
点击这里获取更多信息:http://www.1keydata.com/sql/sql-limit.html
https://stackoverflow.com/questions/7068347
复制相似问题