Fra*_*esc 5 php mysql pagination
我有一个MySQL查询
SELECT * FROM 'redirect'
WHERE 'user_id'= \''.$_SESSION['user_id'].' \'
ORDER BY 'timestamp'`
Run Code Online (Sandbox Code Playgroud)
我想每页分页10个结果.我该怎么做?
cod*_*gar 20
这是一个很好的起点:
<?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
Run Code Online (Sandbox Code Playgroud)
使用LIMIT。
SELECT *
FROM redirect
WHERE user_id = '35251'
ORDER BY timestamp
LIMIT 40, 10
Run Code Online (Sandbox Code Playgroud)
40 是要跳过的记录数,10 是要显示的记录数。
您的 PHP 也存在一些问题。您使用反引号(而不是单引号)将表名和列名括起来。并且您不应该使用字符串连接来构建您的查询。
| 归档时间: |
|
| 查看次数: |
18077 次 |
| 最近记录: |