2016-02-07 55 views
2

比方說,有多個選項卡:多個SQL查詢與PHP過濾結果集

  • 所有行
  • 在垃圾
  • 正在等待行被批准

我行嘗試找出創建多個數據集的最佳方法

a - 一個數據集,然後將它們過濾爲新的o網元與PHP

b - 多個查詢

行的數量從只是一對夫婦的100至3000 變化有沒有在中間做這個最好的方法?

+0

取決於我們正在談論多少個查詢。您可能希望向我們展示一些與此相關的代碼。 – Matt

+1

我想,你可以做所有三個請求,但限制他們到10/25/50/..等,並使分頁**或**使用Ajax和請求只有一個,取決於你選擇的選項卡(限制和分頁是優選的) – Wizard

回答

1

我想你可以使用簡單的解決方案:

  1. SQL
SELECT ..., 
IF([{in-trash} condition], 1, 0) as in_trash, 
IF([{to-approve} condition], 1, 0) as to_approve 
FROM ... 
  • PHP
  • <?php 
    $tabs = cache->get('tabs'); 
    if(! $tabs) 
    { 
        $tabs = [ 'all' => [], 'in_trash' => [], 'to_approve' => [],]; 
        $rows = mysql->query(); 
        foreach($rows as $row) 
        { 
         $tabs ['all'] [] = $row; 
         if($row ['in_trash']) 
         { 
         $tabs ['in_trash'] [] = $row; 
         } 
         if($row ['to_approve']) 
         { 
         $tabs ['to_approve'] [] = $row; 
         } 
        } 
        cache->set('tabs', $tabs); 
    } 
    ?>