TP5处理分组数据后分页报错

小白V587 2018-08-09 04:15:21
TP5处理mssql数据 分组后使用分页,报错

但是错误页面的 error sql 我直接在数据库里面执行是可以成功的,难道TP5不支持数据group by 后分页吗?
...全文
1190 22 打赏 收藏 转发到动态 举报
写回复
用AI写文章
22 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_42961672 2018-08-13
  • 打赏
  • 举报
回复
测试了下,在ODBC里面是错误的,但是这个thinkphp的第一列是TP给我加的,所以可以告诉我怎么修改吗
如果不可以,那么就只能有原生语句了,但是我这个SQL有跨库查询,使用数据库..数据表是不对的,我搜索了相关文档,也没看到什么有用的东西
xuzuning 2018-08-10
  • 打赏
  • 举报
回复
thinkphp 是基于 MySQL 的,操作其他数据库时会有不少问题,毕竟不同的数据库间是有差异的
thinkphp 为缓和这个问题,一直都提供有直接 SQL 指令操作,而不必通过链式的伪 ORM
伟洪winni 2018-08-10
  • 打赏
  • 举报
回复

$list = Bootstrap::make($list2['data'], $list2['per_page'], $page, count($total), false, ['path' => Bootstrap::getCurrentPath()]);
$list->render();

/**
* @param $items //当前页数据
* @param $listRows //每页条数
* @param null $currentPage //当前页
* @param bool $simple
* @param null $total //总数
* @param array $options
* @return PaginatorCollection
*/
public static function make($items, $listRows, $currentPage = null, $total = null, $simple = false, $options = [])
小白V587 2018-08-10
  • 打赏
  • 举报
回复
引用 13 楼 qq_20203755 的回复:
分组后分页好像是有问题的
把总数查出来, 调用分页对象make一个


我看到别人也有类似的错误,但是像TP框架使用人数应该也不算少啊!为什么会出现这种错误,大部分人都是怎么解决的呢
你说的是先把分组数据全查出来,在处理,是吧。这样的话,我不太了解应该怎么使用分页了,我测试看看
小白V587 2018-08-10
  • 打赏
  • 举报
回复
引用 12 楼 xuzuning 的回复:
在 sql server 中正确,并不表示在 ODBC 中也正确

测试了下,在ODBC里面是错误的,但是这个thinkphp的第一列是TP给我加的,所以可以告诉我怎么修改吗
如果不可以,那么就只能有原生语句了,但是我这个SQL有跨库查询,使用数据库..数据表是不对的,我搜索了相关文档,也没看到什么有用的东西
伟洪winni 2018-08-10
  • 打赏
  • 举报
回复
分组后分页好像是有问题的
把总数查出来, 调用分页对象make一个
小白V587 2018-08-10
  • 打赏
  • 举报
回复
这是我的代码

这是报错
小白V587 2018-08-10
  • 打赏
  • 举报
回复
引用 16 楼 qq_20203755 的回复:

$list = Bootstrap::make($list2['data'], $list2['per_page'], $page, count($total), false, ['path' => Bootstrap::getCurrentPath()]);
$list->render();

/**
* @param $items //当前页数据
* @param $listRows //每页条数
* @param null $currentPage //当前页
* @param bool $simple
* @param null $total //总数
* @param array $options
* @return PaginatorCollection
*/
public static function make($items, $listRows, $currentPage = null, $total = null, $simple = false, $options = [])


我的总数获取 需要分组,报的错误也是thinkphp的第一列未指定列名,
而且我发现 tp只要执行MSSQL分组 就会报错,这就有点奇怪了
小白V587 2018-08-10
  • 打赏
  • 举报
回复
引用 17 楼 xuzuning 的回复:
thinkphp 是基于 MySQL 的,操作其他数据库时会有不少问题,毕竟不同的数据库间是有差异的
thinkphp 为缓和这个问题,一直都提供有直接 SQL 指令操作,而不必通过链式的伪 ORM

我是想用原生SQL的,但是原生SQL跨库查询使用 数据库..数据表 不识别啊
xuzuning 2018-08-09
  • 打赏
  • 举报
回复
在 sql server 中正确,并不表示在 ODBC 中也正确
小白V587 2018-08-09
  • 打赏
  • 举报
回复
引用 10 楼 xuzuning 的回复:
第1列未指定列名

根据这个错误提示确实是这样子的,但是直接将这段代码在数据库里面执行是没有错误的况且这个第一列未指定别名是TP自带的啊!所以不知道怎么修改
xuzuning 2018-08-09
  • 打赏
  • 举报
回复
第1列未指定列名
小白V587 2018-08-09
  • 打赏
  • 举报
回复
引用 8 楼 xuzuning 的回复:
不给我看?!

[quote=引用 4 楼 github_39437588 的回复:]
[quote=引用 2 楼 xuzuning 的回复:]
看一下实际执行的 SQL 指令

实际执行的sql语句在报错页面的Error SQL 里可以看到,然后我执行过后,是成功的,[/quote][/quote]
。。。,我以为是让我看呢
xuzuning 2018-08-09
  • 打赏
  • 举报
回复
不给我看?!

引用 4 楼 github_39437588 的回复:
[quote=引用 2 楼 xuzuning 的回复:]
看一下实际执行的 SQL 指令

实际执行的sql语句在报错页面的Error SQL 里可以看到,然后我执行过后,是成功的,[/quote]
小白V587 2018-08-09
  • 打赏
  • 举报
回复
引用 5 楼 woshissss 的回复:
第4行,second..两个点是啥意思?

那是mssql跨库查询second就是另外一个数据库
  • 打赏
  • 举报
回复
我也是个菜鸟,学习学习
  • 打赏
  • 举报
回复
第4行,second..两个点是啥意思?
小白V587 2018-08-09
  • 打赏
  • 举报
回复
引用 2 楼 xuzuning 的回复:
看一下实际执行的 SQL 指令

实际执行的sql语句在报错页面的Error SQL 里可以看到,然后我执行过后,是成功的,
小白V587 2018-08-09
  • 打赏
  • 举报
回复
引用 1 楼 woshissss 的回复:
把分组后得到的字段as 一下试试,你得把你的查询语句贴出来看看


xuzuning 2018-08-09
  • 打赏
  • 举报
回复
看一下实际执行的 SQL 指令
加载更多回复(1)

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧