Php 分页功能

Php 分页功能,php,Php,我正在尝试将Jonathan Sampson制作的分页脚本制作成一个函数,这要归功于他出色的视频教程,这样我就不必在我想要分页的每个页面上都编写它,这样我就可以在我的整个网站上使用它,而不必在每个页面上都有分页代码: 我想我应该用函数传递查询,结果很好: function pagination_query($query, $table = false, $column = false) { // Create some variables $pageNumber = (isset($_GET[

我正在尝试将Jonathan Sampson制作的分页脚本制作成一个函数,这要归功于他出色的视频教程,这样我就不必在我想要分页的每个页面上都编写它,这样我就可以在我的整个网站上使用它,而不必在每个页面上都有分页代码:

我想我应该用函数传递查询,结果很好:

function pagination_query($query, $table = false, $column = false)
{

// Create some variables
$pageNumber = (isset($_GET['page']) && is_numeric($_GET['page'])) ? $_GET['page'] : 1;

// Establish number of results per page
$perPage = 5;

// Establish a padding value
$padding = 3;

// Get Start index of results
$startIndex = ($pageNumber * $perPage) - $perPage;

// Get total number of database entries
$totalCount = "SELECT COUNT(*) as 'Total' FROM $table $column";
$rsCount = mysql_query($totalCount) or die (mysql_error());
$rowCount = mysql_fetch_object($rsCount);

----- non essential stuff removed -----

// Get page results
$sql = "$query 
        LIMIT $startIndex, $perPage";
// Get result set
$query = mysql_query($sql) or die(mysql_error());

return $query;
}
使用中:

$query = pagination_query("SELECT id, message 
FROM posts WHERE topicid = 1 
ORDER BY id", 'posts', 'WHERE topicid = 1');


if (mysql_num_rows($query)> 0) {
// Show the results
while($row = mysql_fetch_object($query)) {
print "<div>";
print $row->id;
print ": ";
print substr($row->message, 0, strrpos(substr($row->message, 0, 50), ' ')) . '...';
print "</div>";
} 
}
我刚刚发现,用这个,我只能在页面上的一个地方打印链接。 有什么想法吗


你们觉得我的解决方案怎么样?有更聪明更好的方法吗?

你真的应该使用专门的库,而不是编写自己的代码。一个例子是PHP/MySQL中的。

分页是通过使用LIMIT子句实现的

最初,您必须计算总记录数,并将其除以每页的记录数

将页码与请求一起传递

从请求数组中读取页码,并找出页面的起始记录

您可以在下一页进一步阅读并查看完整的实现


对不起,我不太明白你说的我只能在页面上的一个地方打印链接是什么意思。你应该能够重用你在那里拥有的一切。。。你能澄清一下吗?