繁体   English   中英

使用 PHP & HTML 问题实现的 Mysql 分页

[英]Mysql pagination implemented using PHP & HTML Issue

我遇到了分页问题,​​在尝试了几个小时后,最后的手段是 stackoverflow! 查询结果显示产品列表,但结果全部显示在 1 页上,并没有正确反映分页。 我不确定我哪里出错了。

<?php
if (isset($_GET['pageno'])) {
    $pageno = $_GET['pageno'];
} else {
    $pageno = 1;
}
$no_of_records_per_page = 2;
$offset = ($pageno-1) * $no_of_records_per_page;

$conn=mysqli_connect("localhost",".....","....",".....");
// Check connection
if (mysqli_connect_errno()){
    echo "Failed to connect to MySQL: " . mysqli_connect_error();
    die();
}
$total_pages_sql = "SELECT COUNT(*) FROM tbl_product";
$result = mysqli_query($conn,$total_pages_sql);
$total_rows = mysqli_fetch_array($result)[0];

$total_pages = ceil($total_rows / $no_of_records_per_page);

$sql = "SELECT * FROM tbl_product LIMIT $offset, $no_of_records_per_page";
$res_data = mysqli_query($conn,$sql);
while($row = mysqli_fetch_array($res_data)){
    $product_array = $shoppingCart->getAllProduct($query);
    if (! empty($product_array)) {
        foreach ($product_array as $key => $value) {
            ?>
            <div class="product-item">
            <form method="post"
                action="index.php?action=add&code=<?php echo $product_array[$key]["code"]; ?>">
                <div class="product-image">
                    <img src="<?php echo $product_array[$key]["image"]; ?>">
                    <div class="product-title">
                        <?php echo $product_array[$key]["name"]; ?>
                    </div>
                </div>
                <div class="product-footer">
                    <div class="float-right">
                        <input type="text" name="quantity" value="1"
                            size="2" class="input-cart-quantity" />
                        <input type="image"
                            src="image/add-to-cart.png" class="btnAddAction" />
                    </div>
                    <div class="product-price float-left">
                        <?php echo "&pound;".$product_array[$key]["price"]; ?>
                    </div>
                </div>
            </form>
        </div>
        <?php
        }
    }
    ?>
<?php
}
mysqli_close($conn);
?>

<ul class="pagination">
    <li><a href="?pageno=1">First</a></li>
    <li class="<?php if($pageno <= 1){ echo 'disabled'; } ?>">
        <a href="<?php if($pageno <= 1){ echo '#'; } else { echo "?pageno=".($pageno - 1); } ?>">Prev</a>
    </li>
    <li class="<?php if($pageno >= $total_pages){ echo 'disabled'; } ?>">
        <a href="<?php if($pageno >= $total_pages){ echo '#'; } else { echo "?pageno=".($pageno + 1); } ?>">Next</a>
    </li>
    <li><a href="?pageno=<?php echo $total_pages; ?>">Last</a></li>
</ul>

可能对你有帮助

<?php  
    $limit = 3;  //set  Number of entries to show in a page.
    // Look for a GET variable page if not found default is 1.        
    if (isset($_GET["page"])) {    
    $page  = $_GET["page"];    
    }    
    else { $page=1;    
    } 
    //determine the sql LIMIT starting number for the results on the displaying page  
    $page_index = ($page-1) * $limit;      // 0

    $All_Users=mysqli_query($con,"select * from users limit $page_index, $limit");
    while($row=mysqli_fetch_array($All_Users))
    {
        //show  data in table or where you want..
    }
    $all_data=mysqli_query($con,"select count(*) from users");
    $user_count = mysqli_fetch_row($all_data);   // say total count 9  
    $total_records = $user_count[0];   //9
    $total_pages = ceil($total_records / $limit);    // 9/3=  3
    if($page >= 2){
        echo "<a href='blog.php?page=".($page-1)."' class='btn customBtn2'>Previous</a>";
      }
    
    if($page<$total_pages) {
        echo "<a href='blog.php?page=".($page+1)."' class='btn customBtn2'>NEXT</a>";   
    }       
?>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM