0

OK私は基本的なphpページネーションスクリプトを持っています。これには基本的な次と前のボタンがあります。これで、別の句を追加するまでは正常に機能します。以下のコードを参照してください。

$query = "SELECT COUNT(*) as num FROM $tableName WHERE engine='$type' AND manufacturer='$man' AND '$year' BETWEEN start_year AND end_year";
$total_pages = mysql_fetch_array(mysql_query($query));
$total_pages = $total_pages['num'];
echo "$total_pages";
$stages = 3;
$page = mysql_escape_string($_GET['page']);
if($page){
    $start = ($page - 1) * $limit; 
}else{
    $start = 0; 
    }   

// Get page data

$query1 = "SELECT Distinct model_group from $tableName WHERE engine='$type' AND manufacturer='$man' AND '$year' BETWEEN start_year AND end_year LIMIT $start, $limit";
$result = mysql_query($query1);

// Initial page num setup
if ($page == 0){$page = 1;}
$prev = $page - 1;  
$next = $page + 1;                          
$lastpage = ceil($total_pages/$limit);      
$LastPagem1 = $lastpage - 1;

ここで、クエリ1のクエリを次のように変更すると

 $query = "SELECT * From

コードは正常に機能します。以下は、次と前のボタンのコードです。

Previous Button

  if ($page > 1){
        echo "<a href='$targetpage?page=$prev&type=$type&manufacturer=$manufacturer&year=$year'><div class='previous'><img src='images/PrevButton1.fw.png' width='108' height='58' style='border: none;'/></span></a>";
    }else{
        echo "<span class='disabled'><div class='previous'>Previous</span></span>"; }

Next Button


if ($page < $lastpage){ 
        echo "<a href='$targetpage?page=$next&type=$type&manufacturer=$manufacturer&year=$year'><div class='next'><img src='images/MoreButton1.fw.png' width='108' height='58' style='border: none;'/></span></a>";
    }else{
        echo "<span class='disabled'><div class='next'>More</span></span>";
    }

とにかく、カウントクエリに個別の値を含めることができますか?私が思うに、それは2番目のクエリに異なる値を返します。

4

1 に答える 1

1

私はあなたが使用する必要があると思います

SELECT COUNT(DISTINCT *)

あなたの最初の声明で

mysqlでのより良い方法は、選択したSQL_CALC_FOUND_ROWSオプションを使用してページングの問題を修正することです。

SELECT SQL_CALC_FOUND_ROWS * FROM mysql.user LIMIT 1

結果は1行になります...しかし

SELECT FOUND_ROWS();

あなたは無制限にあなたの結果のカウントになります!

于 2012-11-26T11:55:28.360 に答える