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

PHP和MySQL分页

/ 猿问

PHP和MySQL分页

qq_遁去的一_1 2019-12-04 14:29:14

我有一个MySQL查询


SELECT * FROM 'redirect'

WHERE 'user_id'= \''.$_SESSION['user_id'].' \' 

ORDER BY 'timestamp'`

我想分页显示每页10条结果。我该怎么做?


查看完整描述

3 回答

?
一只名叫tom的猫

这是一个不错的起点:


<?php


// insert your mysql connection code here


$perPage = 10;

$page = (isset($_GET['page'])) ? (int)$_GET['page'] : 1;

$startAt = $perPage * ($page - 1);


$query = "SELECT COUNT(*) as total FROM redirect

WHERE user_id = '".$_SESSION['user_id']."'";

$r = mysql_fetch_assoc(mysql_query($query));


$totalPages = ceil($r['total'] / $perPage);


$links = "";

for ($i = 1; $i <= $totalPages; $i++) {

  $links .= ($i != $page ) 

            ? "<a href='index.php?page=$i'>Page $i</a> "

            : "$page ";

}



$r = mysql_query($query);


$query = "SELECT * FROM 'redirect'

WHERE 'user_id'= \''.$_SESSION['user_id'].' \' 

ORDER BY 'timestamp' LIMIT $startAt, $perPage";


$r = mysql_query($query);


// display results here the way you want


echo $links; // show links to other pages


查看完整回答
反对 2019-12-04
?
慕容708150

使用LIMIT。


SELECT *

FROM redirect

WHERE user_id = '35251' 

ORDER BY timestamp

LIMIT 40, 10

40是要跳过的记录数,10是要显示的记录数。


您的PHP也有一些问题。您可以使用反引号(而不是单引号)将表名和列名括起来。而且,您不应该使用字符串串联来构建查询。


查看完整回答
反对 2019-12-04
?
慕桂英3389331

使用查询的LIMIT子句可限制您从数据库检索的结果数量。


参见:http : //dev.mysql.com/doc/refman/5.1/en/select.html


查看完整回答
反对 2019-12-04

添加回答

回复

举报

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