ページングについて


<?php
$countRe=$num_rows;
pager($_GET["pid"],$countRe);
function pager($pid,$countRe){
if($pid=="") $pid=1;

$maxPage=ceil($countRe/10);
if($maxPage==1 or $maxPage<$pid) return false;

if($pid>10){
$startPage=$pid-9;
$startMore="<a href=\"$PHP_SELF?pid=".($startPage -1)."\">&lt; PREV</a>";
}else{
$startPage=1;
}

if($pid+10<$maxPage){
$endPage=$pid+10;
$endMore=" <a href=\"$PHP_SELF?pid=".($endPage+1)."\">NEXT &gt;</a>";
}else{
$endPage=$maxPage;
}
$page_footer="";
for($i=$startPage;$i<=$endPage;$i++){
$page_footer.=" ".(($pid==$i)?"<span style='font-Size:120%'>$i</span>":"<a href=\"$PHP_SELF?pid=$i\">$i</a>");
}
$page_footer=$startMore.$page_footer.$endMore;
print $page_footer."<br>";
}

?>

このソースでページングしています。$pidが1ページの時はLIMIT 0.10

$pidが2ページの時はLIMIT 10.10

$pidが3ページの時はLIMIT 20.10
としたいのですが、SELECT文はどうしたら良いですか??

回答の条件
  • 1人5回まで
  • 登録:
  • 終了:2011/11/07 00:37:31

回答1件)

id:beli No.1

回答回数20ベストアンサー獲得回数0

$pidが1ページの時はLIMIT 0.10

$pidが2ページの時はLIMIT 10.10

$pidが3ページの時はLIMIT 20.10


ページ毎に変化するのはLIMIT句の「0」「10」「20」の箇所ですので

その部分を適当な変数$startに置き換えます。

LIMIT $start,10


$pid = 1の時 $start=0

$pid = 2の時 $start=10

$pid = 3の時 $start=20

となれば良い訳です。


でまぁ、ちょっと説明は手を抜きますが

$pidが1増える事に10数字が増えておりますので、

$pidの増加数掛ける10でいくつ増やせば良いのか判るので

下の文でstartの値が求められます。

$start = 10 * ($pid -1);

コメントはまだありません

この質問への反応(ブックマークコメント)

トラックバック

  • http://q.hatena.ne.jp/1319956769 http://q.hatena.ne.jp/1319937163 http://q.hatena.ne.jp/1319894714 http://q.hatena.ne.jp/1319887952 http://q.hatena.ne.jp/1319807648 http://q.hatena.ne.jp/1319769935 PHP 初心者、受難の時代。 めんどくさそう
「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません