0

大家好,我有关于 cakephp 分页和排序的问题

我已将分页视图设置为流

SR.NO | 姓名 | 地址| 电话|...

SR.NO 是 foreach 循环中的一个简单计数器,用于显示数据而不是数据库 ID

下面的链接显示了我的 SR.NO 是如何创建的

CakePHP:编号的分页结果

到目前为止一切都很好...

现在我需要根据 SR.NO 对结果进行排序,但不知道如何实现这一点......

给我的头注入一些光谢谢...

4

1 回答 1

0

如果我理解正确,S.NO 只是结果中的行号,并与 PHP 一起添加。

如果查询没有对结果进行排序,并且 S.NO 与数据库中的数据没有关系,则无法在此列上进行排序,这样做没有任何意义。

解释

没有“ORDER BY xxx”的 SQL 查询将以随机顺序返回结果;SQL Server UNION - 默认的 ORDER BY 行为是什么

基本上,这意味着每次运行查询时,结果可能会以不同的顺序返回。

您添加的 S.NO 基于查询返回结果的顺序,但由于此顺序是随机的,因此每次查看同一页面时,同一记录可能会获得另一个位置,从而另一个 S。不

选项

指定一个列来对结果进行排序,以便每次结果的顺序都是一致的。如果需要,您也可以反转排序顺序。S.NO 仍然可以使用,但纯粹用于演示

或者,使用 SQL 计算行位置(在 MYSQL 查询中获取行位置)。但是,即使在这种情况下,行号也是基于结果中每一行的位置。如果 ORDER BY存在,则行号仍然是“随机的”,并且每次执行查询时,同一行可能会获得不同的 S.NO / 行号。

The final option is to sort using JavaScript (as others suggested). however, also because of the 'random' order, this can only be done for the records that are visible on the page. If you're using pagination (page x of y), sorting the entire database table will require a new query on the database (which cannot be ordered because of the whole 'random' issue)

于 2013-03-14T22:43:44.670 回答