【问题标题】:How to create a pagination by selecting categories?如何通过选择类别来创建分页?
【发布时间】:2016-08-22 06:17:04
【问题描述】:

我正在尝试学习如何进行简单的分页.. 对于第一次启动 (index.php) 它是成功的, 然后我单击按钮 CATEGORIES 以按类别显示产品,它仍然成功.. 但是当我点击下一页时,比如说第 5 页,它实际上是跳转到第 5 页 但不在类别中,它回到了主页。我知道是因为这个 echo a href='index.php', 但我是这里的初学者,大约一周前才开始使用 php 和 javascript, 所以我需要你“只是纠正我的代码”,请不要给我一堆我刚刚开始学习的代码,比如 javascript。

<!--index.php-->
<!doctype html>
<?php include ("functions/functions.php"); ?>
<html>
<head>
<link rel="stylesheet" href="styles/style.css" type="text/css" media="all" />
</head>
<body>

    <!--NAV BUTTON-BY CATEGORY-->   
    <ul id="cats">
      <?php getCats(); ?>
    </ul>

    <!--SHOWING PRODUCTS-->
    <div id="wrapper">
        <?php getPro(); ?>  <!--FIRST LAUNCH (index.php)-->
        <?php getCatPro(); ?>  <!--GETTING THE PRODUCTS BY CATEGORIES-->
    </div>

</body>
</html>



//functions.php
<?php
$con = mysqli_connect("localhost","root","","justLearning");
if (mysqli_connect_errno())
  {
   echo "The connection was not established: " . mysqli_connect_error();
  }

//GETTING THE CATEGORIES (
function getCats(){
    global $con;
    $get_cats = "select * from categories";
    $run_cats = mysqli_query($con, $get_cats);
    while ($row_cats=mysqli_fetch_array($run_cats)){
        $cat_id = $row_cats['cat_id'];
        $cat_title = $row_cats['cat_title'];
    echo "<li><button><a href='index.php?cat=$cat_id'>$cat_title</a></button></li>";
    }
}

//FIRST LAUNCH (index.php)
function getPro(){
    if(!isset($_GET['cat'])){
    if(!isset($_GET['brand'])){
        global $con;
        $per_page=9;
        if (isset($_GET["page"])) {
        $page = $_GET["page"];
        }
        else {
        $page=1;
        }
        $start_from = ($page-1) * $per_page;
        $query = "SELECT * FROM products ORDER BY product_id DESC LIMIT $start_from, $per_page";
        $result = mysqli_query ($con, $query);
        while ($row = mysqli_fetch_array($result)){
            $pro_title = $row['product_title'];
            $pro_image = $row['product_image'];

            echo "<div id='product'>
                    <h3>$pro_title</h3>
                    <img src='admin_area/product_images/$pro_image' width='135' height='145'/>
                  </div>";
        }
            $query = "select * from products";
            $result = mysqli_query($con, $query);
            $total_records = mysqli_num_rows($result);
            $total_pages = ceil($total_records / $per_page);
                echo "<a href='index.php?page=1'>".'First Page'."</a> ";
                for ($i=1; $i<=$total_pages; $i++) {
                echo "<a href='index.php?page=".$i."'>".$i."</a> ";
                };
                echo "<a href='index.php?page=$total_pages'>".'Last Page'."</a>";
    }
    }
}


//GETTING THE PRODUCTS BY CATEGORIES
function getCatPro(){
    if(isset($_GET['cat'])){
        $cat_id = $_GET['cat'];
        global $con;
        $per_page=9;
        if (isset($_GET["page"])) {
        $page = $_GET["page"];
        }
        else {
        $page=1;
        }
        $start_from = ($page-1) * $per_page;
        $query = "SELECT * FROM products where product_cat='$cat_id' order by product_id DESC LIMIT $start_from, $per_page";
        $result = mysqli_query ($con, $query);
        while ($row_cat_pro=mysqli_fetch_array($result)){
            $pro_title = $row_cat_pro['product_title'];
            $pro_image = $row_cat_pro['product_image'];

            echo "<div id='product'>
                    <h3>$pro_title</h3>
                    <img src='admin_area/product_images/$pro_image' width='135' height='145'/>
                  </div>";
        }
        $query = "select * from products where product_cat='$cat_id'";
        $result = mysqli_query($con, $query);
        $total_records = mysqli_num_rows($result);
        $total_pages = ceil($total_records / $per_page);
            echo "<a href='index.php?page=1'>".'First Page'."</a> ";
            for ($i=1; $i<=$total_pages; $i++) {
            echo "<a href='index.php?page=".$i."'>".$i."</a> ";
            };
            echo "<a href='index.php?page=$total_pages'>".'Last Page'."</a>";
    }
}
?>

【问题讨论】:

  • 咨询 php.net/manual/en/function.error-reporting.phpphp.net/manual/en/mysqli.error.php 将其应用于您的代码并告诉我们弹出的内容。这些是在开发过程中使用的基本工具。
  • 这不是错误先生,只是一个初学者玩 :-) 只是不知道如何改进它以使其工作:$猫头衔
  • 欢迎来到 Stack Overflow!据我所知,我编辑了你的问题。但是,添加代码和描述,以便更多具有该主题知识的人看到它。请在您遇到的特定错误消息中进行编辑,以防有必要识别特定问题。祝你好运!

标签: php mysql pagination


【解决方案1】:

您必须修改 getCatPro() 并将 cat 参数连接到链接。例如:

echo "<a href='index.php?page=".$i."&cat=".$cat_id."'>".$i."</a> ";

希望对你有帮助。

【讨论】:

  • _天哪,谢谢。其作品。这真的是我需要的答案 你太棒了,兄弟。谢谢,谢谢,谢谢。其实这是给我的店的,有些顾客建议我在网上做。就在这里,我只是在 2 周前试图了解 HTML、CSS、Javascript 和 PHP。在您的帮助下,我几乎完成了所有这些代码,这真的很有帮助,兄弟,非常感谢。我还有一个问题要画。你能帮我吗?我应该创建一个新主题,还是只写下一条评论?我会永远感谢你的回答:-)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-10-10
  • 1970-01-01
  • 2016-03-29
  • 2014-09-13
  • 2017-11-04
  • 2023-03-14
  • 2014-05-26
相关资源
最近更新 更多