以下代码是我的表的php分页,它正在正确加载结果,但问题是,当我点击下一页时,它将重复包含在第一页中的相同值。结果不会改变。我无法找到它的错误?
paginate.php
function paginate($reload, $page, $tpages) {
$adjacents = 10;
$prevlabel = "‹ Prev";
$nextlabel = "Next ›";
$out = "";
// previous
if ($page <= 1) {
$out.= "<span style='font-size:14px; float:left; padding:5px;'>" . $prevlabel . "</span>\n";
} else {
$out.= "<li><a href=\"" . $reload . "&page=" . ($page - 1) . "\">" . $prevlabel . "</a>\n</li>";
}
$pmin = ($page > $adjacents) ? ($page - $adjacents) : 1;
$pmax = ($page < ($tpages - $adjacents)) ? ($page + $adjacents) : $tpages;
for ($i = $pmin; $i <= $pmax; $i++) {
if ($i == $page) {
$out.= "<li class=\"active\"><a href=''>" . $i . "</a></li>\n";
} elseif ($i == 1) {
$out.= "<li><a href=\"" . $reload . "\">" . $i . "</a>\n</li>";
} else {
$out.= "<li><a href=\"" . $reload . "&page=" . $i . "\">" . $i . "</a>\n</li>";
}
}
if ($page < ($tpages - $adjacents)) {
$out.= "<span style='font-size:14px; padding:10px;'>
<a style='font-size:14px' href=\"" . $reload . "&page=" . $tpages . "\">" . $tpages . " "."Pages"."</a></span>\n";
}
// next
if ($page < $tpages) {
$out.= "<li><a href=\"" . $reload . "&page=" . ($page + 1) . "\">" . $nextlabel . "</a>\n</li>";
} else {
$out.= "<span style='font-size:14px; float:left; padding:5px;'>" . $nextlabel . "</span>\n";
}
$out.= "";
return $out;
} viewuser.php`
<?php
$per_page = 15;
$sql = "SELECT * FROM employee";
$query = mysql_query($sql,$con);
$num_rows = mysql_num_rows($query);
$total_pages = ceil($num_rows / $per_page);
if (!isset($_GET['page'])) {
$show_page = 1;
}
if (isset($_GET['page'])) {
$show_page = $_GET['page'];
if ($show_page > 0 && $show_page <= $total_pages) {
$start = ($show_page - 1) * $per_page;
$end = $start + $per_page;
} else {
$start = 0;
$end = $per_page;
}
} else {
$start = 0;
$end = $per_page;
}
if(isset($_GET['page'])){
$page = intval($_GET['page']);
$tpages=$total_pages;
if ($page <= 0)
$page = 1;}
else{
$page = 1;
$tpages=$total_pages;
}
?>
<?php
if($num_rows==0){
echo "<b>No Results found.</b>";}
else {
echo "<h5><small>".$num_rows." "."employees has registered"."</small></h5>";}
echo '<table class="table table-striped table-hov>
<tr id="tb_header">
<th>name</th>
<th>Image</th>
<th>designation </th>
<th>division</th>
<th>email</th>
<th>contact number</th>
<th></th>
</tr>';
?>
<?php
$reload = $_SERVER['PHP_SELF'] . "?tpages=" . $tpages;
echo '<div class="pagination">
<ul class="pagination"><ul>';
if ($total_pages > 1) {
echo paginate($reload, $show_page, $total_pages);
}
echo "</ul></div>";?>
<?php $url = basename($_SERVER['REQUEST_URI']);?>
<?php
for ($i = $start; $i < $end; $i++) {
if ($i == $num_rows) {
break;}?>
<?php
$row = mysql_fetch_array($query);
?>
<tr><td><?php echo $row["name"]?></td>
<td><img src="<?php echo $row["photo"]?>" style=" width: 75px;"></td>
<td><?php echo $row["designation"]?></td>
<td><?php echo $row["division"]?></td>
<td><?php echo $row["email"]?></td>
<td><?php echo $row["contact_number"]?></td> }
}
?>
</table>
请帮忙!
答案 0 :(得分:0)
我没有跟踪所有代码,但我注意到你的if-else无论如何设置$page = 1
。
if ($page <= 0) {
$page = 1;
} else {
$page = 1;
$tpages = $total_pages;
}