预排序LIMIT分页无法正常显示,基本代码已经写好

PioneerProgram 2016-07-18 04:21:29
上次解决的问题:http://bbs.csdn.net/topics/391985582
mysql_connect();
mysql_select_db('test');
$sql =<<< SQL
CREATE TABLE category (
id INT AUTO_INCREMENT PRIMARY KEY,
lft INT NOT NULL,
rgt INT NOT NULL
);
SQL;
//mysql_query($sql);
$sql =<<< SQL
INSERT INTO category
VALUES(1,1,12),
(6,2,5),
(17,3,4),
(5,6,11),
(16,7,8),
(15,9,10),
(8,25,26),
(7,27,28),
(4,29,30),
(3,31,32);
SQL;
//mysql_query($sql);$rs = mysql_query("SELECT * FROM category ORDER BY lft");
$st = array();while($row = mysql_fetch_assoc($rs)) {
while ( $st && $row ['lft'] > $st [0] [1] ) {
array_shift ( $st );
echo "</ol></li>\n";
}
$n = ($row ['rgt'] - $row ['lft'] - 1) / 2;
echo "<li>$row[id] [$row[lft],$row[rgt]]";
if ($n) {
array_unshift ( $st, array (
$row ['lft'],
$row ['rgt']
) );

echo "<ol>\n";
} else
echo "</li>\n";
}

作为评论页,分页是必须的,如果在sql查询时用 LIMIT 0,3 如果正好第3条数据有子分类,那么会在li下多出一个ol 无法正常结束。但是在查询之前又不知道,某个评论下有几个子分类,就像陷入死循环一样。如何解决预排序分页问题?
另外就是预排序必须是 order by lft asc ,那又如何实现倒序呢,直接用desc就无法获取子分类了
...全文
99 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
PioneerProgram 2016-07-18
  • 打赏
  • 举报
回复
没有分页的话,如果有大量的评论,不是每次读取页面都要把所有评论都读取出来了。 还有,评论的倒序问题又如何解决
xuzuning 2016-07-18
  • 打赏
  • 举报
回复
树形展示的数据是不好分页的,所以都采用堆楼的方式,比如这个论坛 树形分层在层次较多时,左边会出现大量的空白,在布局上也不好看

21,886

社区成员

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

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