1

私はこれに一日中取り組んできました、そしてこれは今日ここで私の2番目の投稿です。ページネーションを作成し、特定のページにページ番号を表示することができました。製品ページに紹介したとき、変数IDを追加するのに苦労しましたcat_id。カテゴリIDを手動で追加すると、最初のページが表示されますが、2番目のページを選択すると、クエリに変数が含まれていないため、リストが失われます。

試し"SELECT COUNT(*) As Total FROM products WHERE prod_id = {$cat_id}"ましたが、showproduct.phpで参照する必要がありますか?ページ付けされたデータは表示されますが、ページリストは表示されず、エラーが発生しますUndefined variable: 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>


......

Product.phpを入手する

 .....

<?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
4

0 に答える 0