3

我最近开始使用它,并且不喜欢我这样做的方式。想要的建议...

我正在使用类似的示例:

$all = R::findAll('needle', ' ORDER BY title LIMIT 2 ');

4

3 回答 3

13

我认为建议的解决方案是可以的,除非您应该使用参数绑定,否则这可能会导致 SQL 注入:

$page=1;
$limit=10;
$all=R::findAll('needle',
'ORDER BY title LIMIT ?,? ',array((($page-1)*$limit),$limit));
于 2013-06-30T11:29:07.177 回答
7

首先,这对分页没有任何作用。您需要传递一个页面,并且可能相当于服务器进行分页。除此之外,你做得对。

$page=1;
$limit=10;
$all=R::findAll('needle','ORDER BY title LIMIT '.(($page-1)*$limit).', '.$limit);

您的另一个选择是全部选择它们,然后只返回用户要查看的部分,但如果您有数千条记录,这是一个坏主意:

$needles=R::findAll('needle', 'ORDER BY title');
$page=1;
$limit=10;
$all=array_slice($needles,(($page-1)*$limit),$limit,true);

要查找总页数:

$needles=R::count('needle');
$totalPages=ceil($needles/$limit);
于 2013-06-05T17:06:54.077 回答
0

最好使用像https://github.com/yidas/php-pagination这样的 PHP 包

因为它还会为您提供 HTML 小部件以在底部制作分页链接;除了构建 SQL 的助手。

于 2020-10-06T03:19:40.877 回答