Mysql 按类别获取结果数

Mysql 按类别获取结果数,mysql,Mysql,我的代码如下。基本上,这是一个“交易”网站(类似于groupon)。此页面显示城市中所有活动的交易,并按类别对其进行排序。例如,它将显示:“用餐”(然后是“用餐”下的所有交易),然后是“冒险”(以及“冒险”下的所有交易)。等等。我想做的是把它缩短一段。我只想显示一个最多3个交易,每个,但然后一个链接说:“查看(x)更多在这个类别”。例如: Dining <max of 3 deals> (if deals > 3) "View 9 more deals in Dini

我的代码如下。基本上,这是一个“交易”网站(类似于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"
餐饮
(如果交易>3)“在餐饮中查看9个以上交易”
冒险
3) “在冒险中查看更多交易”
等等。我知道我可以把它分开,并有一堆SQL语句(在dining中获取所有交易,在show 3中获取所有交易,在adventure中获取所有交易,在show 3中获取所有交易,等等。我只是想知道是否有可能用另一种方法来实现)

$deals=mysql\u query(“选择$db[ddd\u公司]。名称为公司名称,$db[ddd\u公司]。名称为公司名称,$db[ddd\u交易]。名称为公司名称,$db[ddd\u交易]。id,$db[ddd\u交易]。公司id,$db[ddd\u交易]。结束时间,$db[ddd\u交易]。名称,$db[ddd\u交易]。照片所有交易,$db[ddd\u交易]。名称为类别
从$db[ddd_交易]
将$db[ddd_cities_deals]作为cd加入$db[ddd_deals].id=cd.deal_id
在$db[ddd\U categories]上加入$db[ddd\U categories]。id=$db[ddd\U deals]。category\U id
在$db[ddd_companys]上加入$db[ddd_companys]。id=$db[ddd_deals]。公司id
其中cd.city\u id='$\u SESSION[city\u id]和$db[ddd\u deals]。开始时间'$now'和$db[ddd\u deals]。交易状态\u id='2'按$db[ddd\u categories]排序。名称,$db[ddd\u deals]。结束时间”);
$section='';
而($d=mysql\u fetch\u数组($deals)){
如果($section!=$d['category'])){
//当有新的节标题时显示节标题
?>

尝试在查询中指定限制

在where子句之后,尝试 限制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;">&nbsp;</div>
        <h2><?php echo $d['category'];?></h2>
        <?php
    }
    // Show deal information
   $section = $d['category'];
}