为了账号安全,请及时绑定邮箱和手机立即绑定

使用MySQL LIMIT,OFFSET的分页

使用MySQL LIMIT,OFFSET的分页

HUWWW 2019-11-30 14:53:21
我有一些限制数据以每页仅显示4个项目的代码。我使用的列大约有20到30个项目,因此我需要将这些项目分散在各个页面上。在第一页上,我有:    $result = mysqli_query($con,"SELECT * FROM menuitem LIMIT 4");{  echo "<tr>";  echo "<td align='center'><img src=\"" . $row['picturepath'] . "\" /></td>";  echo "<td align='center'>" . $row['name'] . "</td> <td align='center'> <input type='button' value='More Info'; onclick=\"window.location='more_info.php?';\"> </td>";  echo "<td align='center'>" . $row['price'] . "</td> <td align='center'> <input type='button' value='Add to Order' onclick=''> </td>";  echo "</tr>"; }echo "</table>";mysqli_close($con);    ?>     <table width="1024" align="center" >        <tr height="50"></tr>            <tr>                <td width="80%" align="right">                    <a href="itempage2.php">NEXT</a>                </td>                <td width="20%" align="right">                    <a href="">MAIN MENU</a>                </td>            </tr>    </table>您会在页面底部注意到我的定位标记,其中列出了第二个页面“ itempage2.php”。在项目页面2中,我具有相同的代码,除了我的select语句列出了偏移量4。$result = mysqli_query($con,"SELECT * FROM menuitem LIMIT 4 offset 4");当我的数据库中有预定数量的项目时,这种方式可以运行。但这不是很好。仅当有更多项目时才需要创建一个新页面,而不是像现在这样将其硬编码到其中。如何创建多个页面而不必对每个新页面和偏移量进行硬编码?
查看完整描述

3 回答

?
慕码人8056858

TA贡献1803条经验 获得超6个赞

如果您想保持简单,请尝试一下。


$page_number = mysqli_escape_string($con, $_GET['page']);

$count_per_page = 20;

$next_offset = $page_number * $count_per_page;

$cat =mysqli_query($con, "SELECT * FROM categories LIMIT $count_per_page OFFSET $next_offset");

while ($row = mysqli_fetch_array($cat))

        $count = $row[0];

其余的取决于您。如果您从两个表中得出结果,建议您尝试其他方法。


查看完整回答
反对 回复 2019-11-30
?
繁星点点滴滴

TA贡献1803条经验 获得超3个赞

使用 .. LIMIT :pageSize OFFSET :pageStart


其中:pageStart绑定到the_page_index(即第一页为0)* number_of_items_per_pages(例如4),:pageSize并绑定到number_of_items_per_pages。


若要检测“具有更多页面”,请使用SQL_CALC_FOUND_ROWS或使用.. LIMIT :pageSize OFFSET :pageStart + 1并检测缺少的最后一个(pageSize + 1)记录。不用说,对于索引> 0的页面,存在前一页。


如果页面索引值嵌入在URL中(例如,在“上一页”和“下一页”链接中),则可以通过适当的$_GET项获得它。


查看完整回答
反对 回复 2019-11-30
  • 3 回答
  • 0 关注
  • 1292 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信