PHP 分页不适用于表格的第二页

标签 php mysql pagination

以下代码是我的表的 php 分页,它正确加载结果,但问题是当我单击下一页时,它将重复第一页中包含的相同值。结果没有改变。我找不到问题出在哪里?

分页.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 . "&amp;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 . "&amp;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 . "&amp;page=" . $tpages . "\">" . $tpages . " "."Pages"."</a></span>\n";
}
// next
if ($page < $tpages) {
    $out.= "<li><a  href=\"" . $reload . "&amp;page=" . ($page + 1) . "\">" . $nextlabel . "</a>\n</li>";
} else {
    $out.= "<span style='font-size:14px; float:left; padding:5px;'>" . $nextlabel . "</span>\n";
}
$out.= "";
return $out;

} 查看用户.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>

请帮忙!

最佳答案

我没有跟踪所有代码,但我注意到您的 if-else 无论如何都会设置 $page = 1

if ($page <= 0) {
  $page = 1;
} else {
  $page = 1;
  $tpages = $total_pages;
}

关于PHP 分页不适用于表格的第二页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37080918/

相关文章:

php - 网站权限系统最佳实践

javascript - 在 PHP 计算中使用 JavaScript 数值

php - 使用 NGINX 作为 apache 的反向代理时,Wordpress 永久链接返回 404

mysql - 自动更新数据库Mysql中的库存

php - MySQL选择百万条记录生成url

mysql - mysql INNER JOIN 上的值错误

mysql - 从子查询返回列数

codeigniter - 如何在没有配置的情况下设置分页链接的样式 - codeigniter

Mysql无偏移分页

php - 非顺序分页 PHP