在symfony的表中具有不同字段的非相关表的分页

时间:2012-05-07 10:28:39

标签: php mysql symfony-1.4

我想分页两个DB表的记录,Table1和Table2,它们彼此无关,并且两个DB表都有不同的字段数。每个查询都应该有一些条件,并且还与其他一些表连接

我想同时对两个表的记录进行分页,以便我可以按如下方式显示数据 -

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

如果table1没有记录,那么它将对table2进行分页,反之亦然。 我希望这可以在symfony PHP框架上完成。有人可以帮助形成这种分页的查询。

1 个答案:

答案 0 :(得分: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];

是的,它打破了分页规则,但当时我没有更好的解决方案。