标签:php mysql if-statement pagination
现在我的分页会出现这样的东西
[1] [2] [3] [4] [5] [6] [7] [8] [9]
我怎么会让它像这样出现
[1] [2] [3] [4] [5] … [9]
<?php
$per_page = 10;
$pages_query = mysql_query ("SELECT COUNT(`message_id`) FROM `messages`") or die(mysql_error());
$pages = ceil(mysql_result ($pages_query, 0) / $per_page);
$page = (isset ($_GET['page'])) ? (int) $_GET['page'] : 1;
$start = ($page - 1) * $per_page;
?>
回应分页的相关if语句
<?php
if ($pages >=1 && $page <= $pages) {
for ($x=1; $x<=$pages;$x++) {
echo "<a href=\"?page=" .$x."\">".$x."</a>";
}
}
?>
解决方法:
尝试这个 :
<?php
$link = "";
// $page = $_GET['page'];
// $pages=20; // Hardcoded for testing purpose
$limit=5 ;
if ($pages >=1 && $page <= $pages)
{
$counter = 1;
$link = "";
if ($page > ($limit/2))
{ $link .= "<a href=\"?page=1\">1 </a> ... ";}
for ($x=$page; $x<=$pages;$x++)
{
if($counter < $limit)
$link .= "<a href=\"?page=" .$x."\">".$x." </a>";
$counter++;
}
if ($page < $pages - ($limit/2))
{ $link .= "... " . "<a href=\"?page=" .$pages."\">".$pages." </a>"; }
}
echo $link;
?>
输出:
//At page=1
1 2 3 4 ... 20
//At page=12
1 ... 12 13 14 15 ... 20
//At page=18
1 ... 18 19 20
标签:php,mysql,if-statement,pagination 来源: https://codeday.me/bug/20191007/1865330.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。