0

最近、たくさんの質問をしたようです。これが比較的単純な場合は申し訳ありませんが、これを正しく機能させるのに苦労しています。

製品ビューにページネーションを追加したいのですが、ページの下部に表示されているページネーション番号コードを追加すると表示されません。

また、mysqliを使用する必要があることも認識していますが、次に進む前に、これを最初に機能させたいと思います。

ありがとう。

製品を表示

   <div class="link" style="width:100%; height:100%; background-color: white">
<?php
include("../script/dbconnect.php");
include("../script/get_product.php");

$posts = get_posts(null, $_GET['id']); 

foreach ( $posts as $post ) {
    if ( ! category_exists('name', $post['name']) ) {
        $post['name'] = 'Uncategorised';
    }
    ?>  
    <ul class='featured'>

            <li class='headhighlight'><?php echo $post['title']; ?></li>  
            <li class='pricehigh'><?php echo $post['price']; ?></li>
            <li class='imagefeat'><img class='imagelink' src='<?php echo $post['picture']; ?>' alt='$name'></li>                
            </ul>   

<?php
    }
?>


    </div>

get_product.php

    <?php
    function get_posts($id = null, $cat_id = null) {
    $posts = array();

//Pagination Code
    $perpage = 10;
     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;

//End pagination code

        $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;
    }

ページ番号を追加するためのページネーションコードは、showproduct.phpに配置されます

<p class="pagination">
<?php
    if(isset($page_num))
    {
        $result = mysql_query("SELECT COUNT(*) As Total FROM products");
        $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="../admin/admin.master.php?page=list_products.php&page_num=' . $j . '"> < </a></span>';
        }
        for($i=1; $i <= $totalPages; $i++)
        {
            if($i<>$page_num)
            {
                echo '<span><a href="../admin/admin.master.php?page=list_products.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="../admin/admin.master.php?page=list_products.php&page_num=' .$j. '" id="page_a_link"> > </a></span>';
        }
    }
?>
</p>
4

2 に答える 2

0
$posts = get_posts(null, $_GET['id']);
$result = mysql_query($posts);

関数では、この変数を配列として宣言し、クエリ結果から入力してから返します...そのため、get_posts機能しません。ここで何をしようとしていましたか?正しいMySQLクエリ構造を使用して文字列をmysql_query関数に渡す必要があります。

編集:問題を引き起こしているコードの部分と可能な修正を追加します。

$posts = get_posts(null, $_GET['id']);

  $i = 0;
foreach ($posts as $post){
   ....

このように機能しますか?get_posts関数内でLIMITを使用してクエリを実行し、データを返しました。

于 2013-01-02T12:15:47.900 に答える
0
$posts = get_posts(null, $_GET['id']); 

何かの配列を返します。その後、mysql_query(array);を作成しようとします。作ってみてください

var_dump($posts); and copy print here. Or try next: 
$posts = get_posts(null, $_GET['id']);
foreach($posts as $post){
$result[] = mysql_query($posts);
}
于 2013-01-02T12:17:04.217 に答える