我想每页显示10条记录
当我设置 $ per_page = 1 行时,此代码正常工作,显示每页显示1条记录,并且还会显示移动到下一页的选项
当我将此行更新为 $ per_page = 10; 时会显示所有记录,但移至下一页选项会消失
有两个文件view_data.php,其中写入了完整的逻辑 和pagination.php,其中编写了分页布局代码
**// view_data.php**
<?php
include_once('pagination.php');
session_start();
$db_username = 'aa';
$db_password = 'aa';
$db_name = 'edu';
$db_host = 'localhost';
$conDB = mysqli_connect
($db_host, $db_username, $db_password,$db_name)or die('Error: Could not connect to database.');
$page = (int)(!isset
($_GET["page"]) ? 1 : $_GET["page"]);
if ($page <= 0) $page = 1;
$per_page = 1; /////////////// if i set per_page=1 than this code works fine and display 1 record per page and the option to move on the next page also appears but when i change it to $per_page = 10 than records are displayed but move to next page option disappears
$startpoint = ($page * $per_page) - $per_page;
$statement = "`qualification` ORDER BY `q_title` ASC";
// Change table name according to your database table.
$results = mysqli_query($conDB,"SELECT * FROM {$statement} LIMIT
{$startpoint} , {$per_page}");
if (mysqli_num_rows($results) == 0) {
echo "No records are found.";
} else {
echo "<font color=orange size=5px > <br><br><br>View Data:<br><br>";
echo "<font color=black size=5px > ";
$count=0;
while ($r = mysqli_fetch_array($results))
{
echo "<font color=black size=5px>";
$q_id= $r["q_id"];
$q_title=$r["q_title"];
echo "<li><a
href='data_db.php?id=$q_id'> <font color=black size=5px >$q_title</a></li> <br>";
}
}
$id=$q_id;
// displaying paginaiton.
echo "<font color=orange size=5px /><b>";
echo pagination($statement,$per_page,$page,$id);
echo "</b>";
?>
**/// Pagination.php**
<style>
ul.pagination {
margin-top:50px;
text-align:center;
padding:0 100px;
}
ul.pagination li {
display:inline;
padding:0 10px;
}
ul.pagination a {
color:#194C85;
display:inline-block;
padding:5px 10px;
border:1px solid #00C;
text-decoration:none;
}
ul.pagination a:hover,
ul.pagination a.current {
background:#194C85;
color:#fff;
}
</style>
<?php
#$id = $_GET['id'];
function pagination($query,$per_page=1,$page,$id,$url='?'){
global $conDB;
$query = "SELECT COUNT(*) as `num` FROM {$query}";
$row = mysqli_fetch_array(mysqli_query($conDB,$query));
$total = $row['num'];
$adjacents = "2";
$prevlabel = "‹ Prev";
$nextlabel = "Next ›";
$page = ($page == 0 ? 1 : $page);
$start = ($page - 1) * $per_page;
$prev = $page - 1;
$next = $page + 1;
$lastpage = ceil($total/$per_page);
$lpm1 = $lastpage - 1; // //last page minus 1
$pagination = "";
if($lastpage > 1){
$pagination .= "<ul class='pagination'>";
$pagination .= "<li class='page_info'>Page {$page} of {$lastpage}</li>";
if ($page > 1) $pagination.= "<li><a href='{$url}id={$id}&page={$prev}'>{$prevlabel}</a></li>";
if ($lastpage < 7 + ($adjacents * 2)){
for ($counter = 1; $counter <= $lastpage; $counter++){
if ($counter == $page)
$pagination.= "<li><a class='current'>{$counter}</a></li>";
else
$pagination.= "<li><a href='{$url}id={$id}&page={$counter}'>{$counter}</a></li>";
}
} elseif($lastpage > 5 + ($adjacents * 2)){
if($page < 1 + ($adjacents * 2)) {
for ($counter = 1; $counter < 4 + ($adjacents * 2); $counter++){
if ($counter == $page)
$pagination.= "<li><a class='current'>{$counter}</a></li>";
else
$pagination.= "<li><a href='{$url}id={$id}&page={$counter}'>{$counter}</a></li>";
}
$pagination.= "<li class='dot'>...</li>";
$pagination.= "<li><a href='{$url}id={$id}&page={$lpm1}'>{$lpm1}</a></li>";
$pagination.= "<li><a href='{$url}id={$id}&page={$lastpage}'>{$lastpage}</a></li>";
} elseif($lastpage - ($adjacents * 2) > $page && $page > ($adjacents * 2)) {
$pagination.= "<li><a href='{$url}id={$id}&page=1'>1</a></li>";
$pagination.= "<li><a href='{$url}id={$id}&page=2'>2</a></li>";
$pagination.= "<li class='dot'>...</li>";
for ($counter = $page - $adjacents; $counter <= $page + $adjacents; $counter++) {
if ($counter == $page)
$pagination.= "<li><a class='current'>{$counter}</a></li>";
else
$pagination.= "<li><a href='{$url}id={$id}&page={$counter}'>{$counter}</a></li>";
}
$pagination.= "<li class='dot'>..</li>";
$pagination.= "<li><a href='{$url}id={$id}&page={$lpm1}'>{$lpm1}</a></li>";
$pagination.= "<li><a href='{$url}id={$id}&page={$lastpage}'>{$lastpage}</a></li>";
} else {
$pagination.= "<li><a href='{$url}id={$id}&page=1'>1</a></li>";
$pagination.= "<li><a href='{$url}id={$id}&page=2'>2</a></li>";
$pagination.= "<li class='dot'>..</li>";
for ($counter = $lastpage - (2 + ($adjacents * 2)); $counter <= $lastpage; $counter++) {
if ($counter == $page)
$pagination.= "<li><a class='current'>{$counter}</a></li>";
else
$pagination.= "<li><a href='{$url}id={$id}&page={$counter}'>{$counter}</a></li>";
}
}
}
if ($page < $counter - 1) $pagination.= "<li><a href='{$url}id={$id}&page={$next}'>{$nextlabel}</a></li>";
$pagination.= "</ul>";
}
return $pagination;
}
?>
答案 0 :(得分:0)
我建议您将session_start();
移到包含分页文件之上。将session_start();
放在第一行文件中是个好习惯。