<?php

$pid = $_GET['pid'];
$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>";
}

?>
例えばページIDが1ならばLIMIT 0,10
ページIDが2ならばLIMIT10,10とするにはどうしたら良いのでしょうか??
我流で
select * from lab where LIMIT $pid*10,10としましたが、エラーになってしまいます。

回答の条件
  • 1人5回まで
  • 13歳以上
  • 登録:2011/10/31 09:59:38
  • 終了:2011/11/07 10:00:03

回答(0件)

回答はまだありません

  • id:ken3memo
    PHPを知らないのでコメントに書きます。
    $endMore=" <a href=\"$PHP_SELF?pid=".($endPage+1)."\">NEXT &gt;</a>";
    ↑みたいに、.($endPage+1). 計算できる見たい?なので、
    何をやりたいか よくわかりませんが、
    xxx = "select * from lab where LIMIT ".($pid*10).",10";
    とか?で $pid*10の計算値が文字列になるのでは?
    PHP知らないので、コメントでかきました。
    PHPの文字列処理を探したほうが(学習したほうが)遠回りのようでもはやいのかなぁ と 思ったり。
    間違っていたらスミマセン。解決の糸口となれば幸いです。(しつこいけど、PHPの文字列処理をみたほうがいいような...)
  • id:ken3memo
    あっ、1の時0 2の時10ですね。
    xxx = "select * from lab where LIMIT ".($pid*10-10).",10";
    みたいに-10で引いた計算値にしないとダメかなぁ。
    .(ドット/ピリオド)で文字列連結なのかなぁ・・と少々不安なコメントですが...
  • id:JULY
    そもそも、LIMIT 句は、データベースに依存します。

    MySQL であれば、LIMIT に開始位置と行数を指定できますが、SQLite や PostgreSQL だと、LIMIT で行数で、開始位置は OFFSET を使います。

    http://ittips.blog95.fc2.com/blog-entry-21.html

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

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

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

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