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