PHP和MySQL分页

我有一个MySQL查询

SELECT * FROM 'redirect' WHERE 'user_id'= \''.$_SESSION['user_id'].' \' ORDER BY 'timestamp'` 

我想每页分页10个结果。 我该怎么做?

这是一个很好的起点:

 <?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 

使用LIMIT 。

 SELECT * FROM redirect WHERE user_id = '35251' ORDER BY timestamp LIMIT 40, 10 

40是跳过多lesslogging,10是多less显示。

你的PHP也有一些问题。 您使用反引号(而不是单引号)来包围表名和列名。 你不应该使用string连接来build立你的查询。

使用查询的LIMIT clausule来限制从数据库中检索的结果数量。

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

我会从Googlesearch开始。 这方面的信息并不缺乏。
(这是一个很常见的问题。)