0

こんにちは皆さん、私はmysqlとphpが初めてです。私は製品ギャラリーを持っており、それをまとめて他の誰かのコードをコピーして、レコードをページ付けしています。ギャラリーには 2 つのテーブルがあります。1 つは、productID、title、online、および productType からのリレーショナル フィールドである productTypeID などのデータを保持します。ここで、画像をクリックして、productID と productTypeID の 2 つのパラメーターを渡し、すべてのレコードを productTypeID でグループ化するが、パラメーターで渡された productID に等しい特定のレコードに移動するページネーションを詳細ページに作成したいと考えています。

productTypeID でページネーション クエリを実行できましたが、配列の最初のレコードにしか移動しません。これが私のコードです。助けてください。

<?php

if (isset($_GET['id'])) {
  $id = $_GET['id'];

$query_productCount= "SELECT * FROM products WHERE productID ='$id'";
$productCount= mysql_query($query_recipeMenu, $connection) or die(mysql_error());
$row_productCount= mysql_fetch_assoc($productCount);
}

if (isset($_GET['cat'])) {
  $cat = $_GET['cat'];
}
//check for a page number. If not, set it to page 1


if (!(isset($_GET['pagenum']))){
    $pagenum = 1;
}else{
    $pagenum = $_GET['pagenum'];
}

//query for record count to setup pagination
$data = mysql_query("SELECT * FROM products WHERE productTypeID='$cat'");
$rows = mysql_num_rows($data);


//number of record per page
$page_rows = 1;

//get the last page number
$last = ceil($rows/$page_rows);

//make sure the page number isn't below one, or more than last page num
if ($pagenum < 1){
    $pagenum = 1;
}elseif ($pagenum > $last){
    $pagenum = $last;
}

//Set the range to display in query
$max = 'limit ' .($pagenum - 1) * $page_rows .',' .$page_rows;

//get all of the record
$dynamicList = "";
$sql = mysql_query("SELECT * FROM products WHERE productTypeID='$cat' $max");
//check for record
$productCount = mysql_num_rows($sql);

if ($productCount > 0){
    while($row = mysql_fetch_array($sql)){
            $productID = $id;
            $productName = $row["productName"];
            $largeImage = $row["largeImage"];
            $productDescription = $row["productDescription"];

            $dynamicList .= ' 
                            <div>
                                <h3>'.$productName.'</h3>
                                <div><a href="javascript:history.go(-1)"><img src="images/productImages/'.$largeImage.'" alt="'.$productName.'" width="" /></a></div>

                                <p">'.strip_tags(nl2br($productDescription), "<b><br><p><a>").'</p>




                            </div>

                            ';
    }
}else{
    $dynamicList = "<p>Sorry there are no products under this category</p>";
}
4

1 に答える 1

0

設定しています

  $page_rows = 1;

それから

//get the last page number
$last = ceil($rows/$page_rows);

各ページには1行しかありません。

$rows =30 の場合、$last は ceil(30/1) = 30 となり、各ページには 1 行しかありません

$page_rows をページごとに表示するレコード数に設定します。

アップデート

およびオフセット値の設定

$offset=($page_num-1) * $page_rows;
$max = 'limit ' . $offset .',' .$page_rows;
于 2012-07-11T05:28:28.380 に答える