paginate中按问题分组的CAKEPHP
在paginate中按问题分组 这是我的桌子结构paginate中按问题分组的CAKEPHP,cakephp,cakephp-1.3,Cakephp,Cakephp 1.3,在paginate中按问题分组 这是我的桌子结构 Friends Table `id` int(11) NOT NULL AUTO_INCREMENT, `user1_id` int(11) NOT NULL DEFAULT '0',--> UserFrom `user2_id` int(11) NOT NULL DEFAULT '0',---> UserTo 我需要获得一个用户和他的user1_id=100的所有唯一记录 user2_id中有很多重复的值。我需要获取
Friends Table
`id` int(11) NOT NULL AUTO_INCREMENT,
`user1_id` int(11) NOT NULL DEFAULT '0',--> UserFrom
`user2_id` int(11) NOT NULL DEFAULT '0',---> UserTo
我需要获得一个用户和他的user1_id=100的所有唯一记录
user2_id中有很多重复的值。我需要获取唯一的值
当我尝试这段代码时,它只返回前12个值(根据限制)。
如果我逐行注释组,则显示所有记录(包括重复值)
这是我在该页面上的sql查询
选择COUNT(*)ASCOUNT
FROMfriends
ASfriends
LEFT JOINusers
ASUserTo
ON(friends
user2\u idid
)LEFT JOINusers
ASUserFrom
ON(Friend
user1\u id
UserFrom
id
)其中UserFrom
nick\u name
=“shyam”和Friend
状态=“Friend”组由UserTo
id
选择不同的Friend
,user2\u id
,Friend
*,UserTo
,UserTo
,first\u name
,UserTo
姓氏
,UserTo
尼克\code>姓名,UserTo
用户名,图标
,使用rTo
图标
,用户来源
id
,用户来源
名字,用户来源
姓氏,用户来源
尼克,用户来源
朋友姓名作为朋友
作为合作用户加入用户de>ON(Friend
user2\u id
=UserTo
id
)左加入用户
作为UserFrom
ON(Friend
用户1\u id
UserFrom
id
)其中UserFrom
nick\u name
='shyam'和Friend
状态
='Friend'组由UserTo
id
ORDER BYFriend
描述限制12
1.第一次计数查询正确返回计数
2.如果我设置了限制,则第二次查询它是否工作不正常。例如,我的表中有144条记录,我需要每页显示12条。如果我使用group by和limit,则只显示第一页。您应该使用DISTINCT
或group by by
,而不是两者都使用-它们相互重复,可能会导致您的问题您的查询。请删除其中一个,然后重试
注意:如果要手动请求使用$this->paginate()
的第1页以外的页面,请将带有页码的'page'
参数添加到$this->paginate
数组中,如下所示:
$this->paginate = array_merge($this->paginate, array('page' => $pageNumber);
但是,通常您不想这样做,因为只要您在视图中使用分页控件(请参阅),paginator就会自动执行此操作(通过URL参数将page
变量传递给您的操作)。您应该将SQL查询的转储添加到问题中(echo$this->element('SQL_dump')
)是,添加了sql转储。请帮助我找到解决方案“我需要每页显示12个。如果我使用group by和limit,则只显示第一页”:我不明白您有什么问题(?)当我使用group by并将其限制为仅显示前12条记录时..因此不会进行分页。我需要一个解决方案来使用分页选项获取唯一记录
$this->paginate = array_merge($this->paginate, array('page' => $pageNumber);