我正在尝试创建一个简单的图像库,每页显示16张图像。我使用LIMIT 16在页面上显示正确的数量,但是如果行数超过16,我想在底部显示链接,以允许用户导航到下一页。
我知道我可以通过删除限制并简单地使用循环来显示前16个项目来达到期望的结果,但是这样效率很低。显然,COUNTING行数总是= 16。
$sql .= "posts p, images im, postimages pi WHERE i.active = 1 AND pi.post_id = p.id AND pi.image_id = im.image_id ORDER BY created_at LIMIT 16";
有人可以建议一种更有效的方法吗?
谢谢
除了要获取其他人都提到的计数的单独查询之外,您还需要抵消给定页面上的结果。
$sql .= "posts p, images im, postimages pi WHERE i.active = 1 AND pi.post_id = p.id AND pi.image_id = im.image_id ORDER BY created_at LIMIT ". ($page - 1) * $pagesize .", ". $pagesize;
有关SQL注入的常规警告将在此处适用。