ページングのSELECT文


<?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だった場合とか、2だった場合別にSELECT文を書く必要がありますよね??例えば、1ならば、LIMIT 0,10です。これらを指定していく方法分かる方いませんか??
1なら0,10
2なら10,10
といった具合に。

回答の条件
  • 1人5回まで
  • 13歳以上
  • 登録:2011/10/30 16:39:23
  • 終了:2011/11/07 00:37:32

回答(1件)

id:taknt No.1

きゃづみぃ回答回数13538ベストアンサー獲得回数11982011/10/31 13:49:42

1と2だけならば 実行するSQL文を 二つにわけて どちらを実行するか

判断して 実行させてやればいいでしょう。

  • id:ken3memo
    >1なら0,10
    >2なら10,10
    >といった具合に。
    .
    1なら0,10
    10*(1-1)で0 もしくは、10*1-10
    .
    2なら
    10*(2-1)で10 もしくは 10*2-10
    .
    3なら
    10*(3-1)で20 もしくは 10*3-10
    みたいに、計算で求められるので、
    10*(ページ-1) とか 10*ページ-10 で計算して、SELECT文の文字列を作るとか?
    .
    数値と文字列の作り方、PHPの書き方をまずは探ってみては?
    .
    ※ありがちな失敗 で 変数の中身じゃなくて変数名がそのままSQL文に載ってしまいエラーになったりするのかなぁ。
    ※※SQL文を作成している場所をみてみないと、なんともいえませんが...

  • id:rogotaro
    初心者の為、自分で組めない状態です。あつかましいお話ですが、なんとかお願いできないでしょうか??どのように記述したらよいでしょうか?

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

トラックバック

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

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

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません