2012-05-07 22 views
1

我想分頁兩個數據庫表(表1和表2)的記錄,這兩個數據表彼此不相關,並且兩個數據庫表具有不同數量的字段。每個查詢都應該有一些條件,並且還可以與其他一些表一起使用。在symfony中的表中具有不同字段的非相關表的分頁

我想同時分頁兩個表中的記錄,這樣我可以顯示數據如下 -

Row1 = Table1's - name, address,... 
Row2 = Table2's - tool_name, quantity,... 
Row3 = Table1's - name, address,... 
Row4 = Table2's - tool_name, quantity,... 
. 
. 
. 

如果將沒有記錄表1,然後將分頁表2,反之亦然。 我希望這可以在symfony PHP框架上完成。有人可以幫助組織這種類型的分頁查詢。

+0

嗨@Sitansu,你是怎麼結束它的?謝謝! – Luccas

+1

對不起,延誤了。由於解決方案有點長,我將解決方案放在答案部分。 – Sitansu

回答

0

我結束了這樣的事情。

獲取不同查詢的所有數據並存儲到數組中,然後緩存它。

foreach($queries as $key => $query) { 
foreach ($query->fetchArray() as $result) { 
    $data[] = $result; 
} 
} 

$c = new sfFileCache(
    array(
    'cache_dir' => sfConfig::get('sf_cache_dir').'/function', 
    'lifetime' => 3600, 
    ) 
); 
$c->set('myarray',serialize($data)); 

我擴展了sfDoctrinePager,以便它可以查找所有這些查詢的總頁數等。

比我用PHP usort()來按照特定的順序對數據進行排序。

usort($data, array($this,'activity_sort')); 

然後,我用PHP array_chunk()來獲取有限的記錄。

$chunkedData = array_chunk($data, $limit); 
$finalData = $chunkedData[$page - 1]; 

是的,它打破了分頁規則,但那時我沒有得到任何更好的解決方案。

相關問題