1

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

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

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 框架上完成此操作。有人可以帮助形成这种分页类型的查询。

4

1 回答 1

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];

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

于 2013-01-29T04:25:16.780 回答