Php 要添加到计数查询以显示分页的变量ID
我已经为此工作了一整天,这是我今天在这里的第二篇文章。我已成功创建分页并在某些页面上显示页码。当我把它引入我的产品页面时,我一直在努力添加变量IDPhp 要添加到计数查询以显示分页的变量ID,php,mysql,pagination,Php,Mysql,Pagination,我已经为此工作了一整天,这是我今天在这里的第二篇文章。我已成功创建分页并在某些页面上显示页码。当我把它引入我的产品页面时,我一直在努力添加变量IDcat\u ID。如果我手动添加一个类别ID,它将显示第一个页面,但当我选择第二个页面时,它将丢失列表,因为查询不包含该变量 我尝试了“从prod_id={$cat_id}的产品中选择COUNT(*)作为总计”,但是我需要在showproduct.php中引用它吗?它显示分页数据,但不显示页面列表,并且存在错误未定义变量:cat_id。在这里定义变量的
cat\u ID
。如果我手动添加一个类别ID,它将显示第一个页面,但当我选择第二个页面时,它将丢失列表,因为查询不包含该变量
我尝试了“从prod_id={$cat_id}的产品中选择COUNT(*)作为总计”
,但是我需要在showproduct.php中引用它吗?它显示分页数据,但不显示页面列表,并且存在错误未定义变量:cat_id
。在这里定义变量的最佳方法是什么
这开始让我感到沮丧,因为它不应该花这么长时间,而且我仍然需要添加jquery。另外,我知道mysql已经过时了,但我想先让它工作起来
因此,我的问题是如何将{$cat_id}
添加到COUNT查询中
showproduct.php
.......
<p class="pagination">
<?php
if(isset($page_num))
{
$result = mysql_query("SELECT COUNT(*) As Total FROM products WHERE prod_id = {$cat_id}");
$rows = mysql_num_rows($result);
if($rows)
{
$rs = mysql_fetch_array($result);
$total = $rs["Total"];
}
$totalPages = ceil($total / $perpage);
if($page_num <=1 )
{
echo '<span id="page_links" style="font-weight:bold;"> < </span>';
}
else
{
$j = $page_num - 1;
echo '<span><a id="page_a_link" href="../anonymous/anonymous.master.php?page=showproduct.php&page_num=' . $j . '"> < </a></span>';
}
for($i=1; $i <= $totalPages; $i++)
{
if($i<>$page_num)
{
echo '<span><a href="../anonymous/anonymous.master.php?page=showproduct.php&page_num=' .$i. '" id="page_a_link">' . $i . '</a></span>';
}
else
{
echo '<span id="page_links" style="font-weight:bold;">' . $i . '</span>';
}
}
if($page_num == $totalPages )
{
echo '<span id="page_links" style="font-weight:bold;">Next ></span>';
}
else
{
$j = $page_num + 1;
echo '<span><a href="../anonymous/anonymous.master.php?page=showproduct.php&page_num=' .$j. '" id="page_a_link"> > </a></span>';
}
}
?>
</p>
......
小心!PHP的下一个主要版本是弃用
mysql\uz
函数系列。现在是进行or的好时机。在主题上--您可以编辑来自SHOW CREATE TABLE products
的输出以及一些示例行吗?您好,我知道mysql正在弃用,但我想在转换之前让它工作。为您添加到页面底部的编辑。Cat_id来自另一个表,因此我们正在考虑使用连接
,但需要知道如何将变量保留在那里。
.....
<?php
function get_posts($id = null, $cat_id = null) {
$posts = array();
$perpage = 8;
if(isset($_GET["page_num"]))
{
$page_num = intval($_GET["page_num"]);
}
else
{
$page_num = 1;
}
if ($page_num < 1)
{
$page_num = 1;
}
$calc = $perpage * $page_num;
$start = $calc - $perpage;
$query ="SELECT `products`.`id` AS `name` , `products_cat`.`id` AS `category_id` , `products`.`name` AS `title` , `description` , `price` , `sale` , `picture`
FROM `products`
INNER JOIN `products_cat` ON `products`.`prod_id` = `products_cat`.`id` ";
if ( isset($id) ) {
$id = (int) $id;
$query .= " WHERE `products`.`id` = {$id}";
}
if ( isset($cat_id) ) {
$cat_id = (int) $cat_id;
$query .= " WHERE `products_cat`.`id` = {$cat_id}";
}
$query .= " ORDER BY `products`.`price` DESC Limit $start, $perpage";
$query = mysql_query($query);
echo mysql_error();
while ( $row = mysql_fetch_assoc($query) ) {
$posts[] = $row;
}
return $posts;
}
CREATE TABLE `products` (
`id` int(100) NOT NULL AUTO_INCREMENT,
`prod_id` int(15) NOT NULL,
`prod_sub_id` int(15) DEFAULT NULL,
`description` varchar(3000) NOT NULL,
`sale` varchar(100) DEFAULT NULL,
`name` varchar(100) NOT NULL,
`price` varchar(100) NOT NULL,
`picture` varchar(100) NOT NULL,
`timestamp` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=60 DEFAULT CHARSET=latin1