gpt4 book ai didi

php - 限制大型数据库的分页数

转载 作者:行者123 更新时间:2023-11-29 07:57:59 25 4
gpt4 key购买 nike

无论如何,我似乎找不到答案,所以我想我至少需要问一下,至少我确实尝试过谷歌,无论如何,我正在制作一个类似于 facebook 的群组功能,但没有那么好,因为我是唯一的一个正在开发这个,但随着时间的推移它会变得更好。

无论如何,我怎样才能让这段代码限制分页数?例如,如果数据库中有大量结果,我只想在使用点之后显示前 10 个结果,这样他们就可以单击并更深入地了解,如果他们愿意,那么当单击点时,他们会得到另外 10 个结果,因此 20 -30 将显示为分页。我不需要完全像这样,但需要某种方法来限制一次显示的数字数量。

这是代码

<html xmlns="http://www.w3.org/1999/xhtml">
<head>

<style type="text/css">
#content
{
width: 900px;
margin: 0 auto;
font-family:Arial, Helvetica, sans-serif;
}
.page
{
float: right;
margin: 0;
padding: 0;
}
.page li
{
list-style: none;
display:inline-block;
}
.page li a, .current
{
display: block;
padding: 5px;
text-decoration: none;
color: #8A8A8A;
}
.current
{
font-weight:bold;
color: #000;
}
.button
{
padding: 5px 15px;
text-decoration: none;
background: #333;
color: #F3F3F3;
font-size: 13PX;
border-radius: 2PX;
margin: 0 4PX;
display: block;
float: left;
}
</style>


</head>
<body>
<div id="content">
<?php
error_reporting(0);
$query1=mysql_connect("localhost","root","");
mysql_select_db("freeze_demo",$query1);
error_reporting(0);
$start=0;
$limit=1;

if(isset($_GET['id']))
{
$id=$_GET['id'];
$start=($id-1)*$limit;
}

$query=mysql_query("select * from pagination LIMIT $start, $limit");
echo "<ul>";
while($query2=mysql_fetch_array($query))
{
echo "<li>".$query2['text1']."</li>";
}
echo "</ul>";


$rows=mysql_num_rows(mysql_query("select * from pagination"));
$total=ceil($rows/$limit);

if($id>1)
{
echo "<a href='?id=".($id-1)."' class='button'>PREVIOUS</a>";
}
if($id!=$total)
{
echo "<a href='?id=".($id+1)."' class='button'>NEXT</a>";
}

echo "<ul class='page'>";
for($i=1;$i<=$total;$i++)
{

if($i==$id) { echo "<li class='current'>".$i."</li>"; }

else { echo "<li><a href='?id=".$i."'>".$i."</a></li>"; }
}
echo "</ul>";
?>
</div>
</body>
</html>

基本上只是需要在将来当我的数据库或某个组变得更大时更新它。

谢谢

最佳答案

<?php 
function custom_pagination($page, $totalpage, $link, $show) //$link = '&page=%s'
{
//show page
if($totalpage == 0)
{
return 'Page 0 of 0';
} else {
$nav_page = '<div class="navpage"><span class="current">Page '.$page.' of '.$totalpage.': </span>';
$limit_nav = 3;
$start = ($page - $limit_nav <= 0) ? 1 : $page - $limit_nav;
$end = $page + $limit_nav > $totalpage ? $totalpage : $page + $limit_nav;
if($page + $limit_nav >= $totalpage && $totalpage > $limit_nav * 2){
$start = $totalpage - $limit_nav * 2;
}
if($start != 1){ //show first page
$nav_page .= '<span class="item"><a href="'.sprintf($link, 1).'"> [1] </a></span>';
}
if($start > 2){ //add ...
$nav_page .= '<span class="current">...</span>';
}
if($page > 5){ //add prev
$nav_page .= '<span class="item"><a href="'.sprintf($link, $page-5).'">&laquo;</a></span>';
}
for($i = $start; $i <= $end; $i++){
if($page == $i)
$nav_page .= '<span class="current">'.$i.'</span>';
else
$nav_page .= '<span class="item"><a href="'.sprintf($link, $i).'"> ['.$i.'] </a></span>';
}
if($page + 3 < $totalpage){ //add next
$nav_page .= '<span class="item"><a href="'.sprintf($link, $page+4).'">&raquo;</a></span>';
}
if($end + 1 < $totalpage){ //add ...
$nav_page .= '<span class="current">...</span>';
}
if($end != $totalpage) //show last page
$nav_page .= '<span class="item"><a href="'.sprintf($link, $totalpage).'"> ['.$totalpage.'] </a></span>';
$nav_page .= '</div>';
return $nav_page;
}
}


//using
if(isset($_GET['page'])) {
$page = $_GET['page'];
} else {
$page = 1;
}
$sql = "SELECT count(*) AS total FROM post ORDER BY idpost DESC"; //please select COUNT is fast
$result = mysql_query($sql);
$rows = mysql_fetch_array($result);
$show = 5; //Show 5 result per page
$totalpage = ceil($rows['total'] / $show); //Total page
$start = ($page * $show) - $show; //Start result

$yourQuery = "SELECT * FROM post ORDER BY id LIMIT $start, $show";
//Query and show here

//Show pagination
echo custom_pagination($page, $totalpage, 'index.php?action=detail&page=%s', $show);

?>

关于php - 限制大型数据库的分页数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24601609/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com