Php 在页码旁边添加上一页(上一页)和下一页按钮
我有两个小问题 一,。我想在此代码中添加上一个/下一个按钮 2.我想它只显示像10个链接之间的前一个和下一个。因此,如果我有50个数字/链接,它将只显示其中的10个,而不是页面上的50个链接 我已经在clo上搜索过了 代码可以工作,只需要其中的两个选项。 有人能帮我吗?谢谢大家!Php 在页码旁边添加上一页(上一页)和下一页按钮,php,button,pagination,back,next,Php,Button,Pagination,Back,Next,我有两个小问题 一,。我想在此代码中添加上一个/下一个按钮 2.我想它只显示像10个链接之间的前一个和下一个。因此,如果我有50个数字/链接,它将只显示其中的10个,而不是页面上的50个链接 我已经在clo上搜索过了 代码可以工作,只需要其中的两个选项。 有人能帮我吗?谢谢大家! <?php include 'includes/connection.php'; $per_page = 8; $pages_query = mysql
<?php
include 'includes/connection.php';
$per_page = 8;
$pages_query = mysql_query("SELECT COUNT(`id`) FROM `products`");
$pages = ceil(mysql_result($pages_query, 0) / $per_page);
$page = (isset($_GET['page'])) ? (int)$_GET['page'] : 1;
$start = ($page - 1) * $per_page;
$query = mysql_query("SELECT `name` FROM `products` LIMIT $start, $per_page");
while ($query_row = mysql_fetch_assoc($query)) {
echo '<p>', $query_row['name'] ,'</p>';
}
if ($pages >= 1 && $page <= $pages) {
for ($x=1; $x<=$pages; $x++) {
//echo $x, ' ';
echo ($x == $page) ? '<strong><a href="?page='.$x.'">'.$x.'</a></strong> ' : '<a href="?page='.$x.'">'.$x.'</a> ';
}
}else{
header("location:index.php?page=1");
}
?>
请参考此URL
或
肯定会帮助你的
谢谢首先,为了进行良好的练习,您应该在末尾的header()调用之后添加一个“exit;”。这在这个特定的脚本中并没有什么区别,但请记住,头(“Location:…”)调用后面的任何代码都将在重定向之前执行 现在来回答你的问题,试试这个(更新:这段代码已经过测试,可以正常工作了。)
谢谢您抽出时间。页面上显示:1 2 1“>下一页和-1“>上一页1 2你知道怎么了吗?还有。。“上一个”和“下一个”都没有链接,我正在重写。我将在一个fep中发布我所拥有的,这是我想到的,从phpBB的分页系统中借用/改编一些代码。最难的不是下一个/上一个链接,而是让它一次最多显示10个链接顺便说一句,我还更新了答案中的代码。更新后的代码:EDIT:我所做的只是在内联if语句中添加了上一页和下一页按钮的链接,添加了纯文本“上一页”和“下一页”(第31行和第71行),以便在没有上一页或下一页可显示时,它将分别显示而不是链接。
<?php
include 'includes/connection.php';
$per_page = 8;
$pages_query = mysql_query("SELECT COUNT(`id`) FROM `products`");
$pages = ceil(mysql_result($pages_query, 0) / $per_page);
$page = (isset($_GET['page'])) ? (int)$_GET['page'] : 1;
$start = ($page - 1) * $per_page;
$query = mysql_query("SELECT `name` FROM `products` LIMIT $start, $per_page");
while ($query_row = mysql_fetch_assoc($query))
{
echo '<p>' . $query_row['name'] . '</p>';
}
// If the requested page is less than 1 or more than the total number of pages
// redirect to the first page
if($pages < 1 || $page > $pages)
{
header('Location: ?page=1');
// end execution of the rest of this script
// it will restart execution after redirection
exit;
}
// If more than one page, show pagination links
if($pages > 1)
{
$html = array();
$html[] = '<strong>';
// if you're on a page greater than 1, show a previous link
$html[] = (($page > 1) ? '<a href="?page=' . ($page - 1) . '">Previous</a> ' : '');
// First page link
$pageFirst = '<a href="?page=1">1</a>';
$html[] = (($page == 1) ? "</strong>{$pageFirst}<strong>" : $pageFirst);
if ($pages > 6)
{
$start_cnt = min(max(1, $page - (6 - 1)), $pages - 6);
$end_cnt = max(min($pages, $page + 4), 8);
$html[] = ($start_cnt > 1) ? '...' : ' ';
for ($i = $start_cnt + 1; $i < $end_cnt; $i++)
{
$html[] = ($i == $page) ? '</strong><a href="?page=' . $i . '">' . $i . '</a><strong>' : '<a href="?page=' . $i . '">' . $i . '</a>';
if ($i < $end_cnt - 1)
{
$html[] = ' ';
}
}
$html []= ($end_cnt < $pages) ? '...' : ' ';
}
else
{
$html[] = ' ';
for ($i = 2; $i < $pages; $i++)
{
$html[] = ($i == $page) ? '</strong><a href="?page=' . $i . '">' . $i . '</a><strong>' : '<a href="?page=' . $i . '">' . $i . '</a>';
if ($i < $pages)
{
$html[] = ' ';
}
}
}
// last page link
$pageLast = '<a href="?page=' . $pages . '">' . $pages . '</a>';
$html[] = (($page == $pages) ? "</strong>{$pageLast}<strong>" : $pageLast);
// Show next page link if you're on a page less than the total number of pages
$html[] = ($page < $pages) ? ' <a href="?page=' . ($page + 1) . '">Next</a>' : '';
// If you're not on the last page, show a next link
$html[] = '</strong>';
}
else
{
// show page number 1, no link.
$html[] = '<strong>1</strong>';
}
echo implode('', $html);