2011-08-15 8 views
0

私のコードは以下の通りです。基本的には、 "deal"サイト用です(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.冒険のすべての取引を取得し表示し、私はちょうどよなど、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']; 
} 

編集を追加するには、次の制限は、私が3に結果の#を制限することができるようになるが、私はまた、そのカテゴリにあるどのように多くのプルアップする必要があると思います。

+1

はhttp://stackoverflow.com/questions/3526219/mysql-limit-in-a-correllated-subqueryをお試しください –

答えて

関連する問題