2011-01-26 5 views
1

た後、私はこのSQLを使用したテーブル内の21件のニュースを表示しますすべてのニュースを表示する2番目のsqlで21後にニュースを表示するにはどうすればよいですか?は、ページング、特定の数

+0

私は自分の質問を編集しました。ありがとう – TheNone

+0

あなたはこれのためのコメントを追加する必要はありません、あなたはあなたが質問を編集したことがわかります。 – meagar

+0

MySQLでサポートされているPostgreSQLスタイルの 'LIMIT $ perpage OFFSET $ start'を使用するのは、しばしばあまり混乱しないことに注意してください。私のページングでは – Powerlord

答えて

0

あなたのSQLは、私はあなたのコードを持っていると仮定しSELECT ... FROM ...の明白な不作為から離れて正しいよう事前に

感謝。

私は、これはあなたが得る結果を説明するのかはわからないが、あなたはあなたのクエリで$perpageをスペルミスしている:

WHERE cat_id = $id ORDER BY added_date DESC LIMIT $start, $pergape; 
                  ^^^^^^^^ 

は、PHPの変数の値がで置換された後にSQLとエラーを印刷してみてくださいおそらく明らかになるでしょう。 $page_size * $page_numberに等しい$startを設定し

WHERE cat_id = 134 ORDER BY added_date DESC LIMIT 21, 21; 
1

:それは正しいなら、このようになるはずです。クエリは次のようになります。

$page_size = 21; 
$page_number = isset($_GET['page']) ? intval($_GET['page']) : 0; 

$start = $page_size * $page_number; 

$query = ' ... WHERE cat_id = $id ORDER BY added_date DESC LIMIT $start, $page_size;' 
+0

:$ perpage = 21; if($ page)$ start =($ page - 1)* $ perpage; – TheNone

+0

@TheNone:はい、ほとんどの人には意味があります。私は0インデックス付きのリストに慣れています。 –

関連する問題