<?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>";
}

?>
このようにしています。現在は、該当データが11件あれば、[1,2]リンクは現れますが、1をクリックしたら11件、2をクリックしても11件表示されます。10件、1件と表示させたいです。方法をどなたか教えていただけないでしょうか??
また、上記のようなコードだとSELECT文はどうすれば良いでしょうか?

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

回答1件)

id:TransFreeBSD No.1

回答回数668ベストアンサー獲得回数268

http://q.hatena.ne.jp/1319937163#a1113991

SQLは下記2種類実施する必要があります。

1 該当データの全件数(11件)を取得する(ページング作成のため)

2 ページに表示するデータを取得する(1ページ目10件、2ページ目1件)

質問にある部分ではこれまでのSQL文を使ってください。これが上記1です。

http://q.hatena.ne.jp/1319937163#c223162 はこの質問にない、ページ内容を表示するコードの部分で使ってください。これが上記2です。


つまり

  1. データベースからデータを読み出すこれまでのコード
  2. この質問のコード
  3. データベースからデータを読み出す http://q.hatena.ne.jp/1319937163#c223162
  4. この質問のにないコード

または

  1. データベースからデータを読み出す http://q.hatena.ne.jp/1319937163#c223162
  2. この質問のにないコード
  3. データベースからデータを読み出すこれまでのコード
  4. この質問のコード

としてください。

分からなければ、他の部分のコードもどこかで開示してください。

あと、 http://q.hatena.ne.jp/1319887952 この質問はもう必要ないですよね?

終了しておいてください。

  • id:TransFreeBSD
    http://q.hatena.ne.jp/1319937163#c223162
    これで10件表示出来たとありますが、違うのですか?
    10件表示させたいのではないのですか?
    なぜ表示もデータベースのコードもないのですか?
    なぜ同じ質問を何度もするのですか?

    説明をする代わりに、そのまま同じ様に動くコードを書いてもいいです。
    ちなみに http://d.hatena.ne.jp/rogotaro/ で書けるブログにコードを書くと分かりやすいです。
    >|php|
    <?php
    $pid = $_GET['pid'];
    ...
    }
    ?>
    ||<
    の様に書いてみてください。
  • id:rogotaro
    >|php|
    <?php
    $pid = $_GET['pid'];
    ...
    }
    ?>
    ||<
    の様に書いてみてください
    ちょっと意味が理解できません。どういう意味ですか??
  • id:TransFreeBSD
    まずはこちらを見てください。
    http://hatenadiary.g.hatena.ne.jp/keyword/%E3%81%AF%E3%81%A6%E3%81%AA%E3%83%80%E3%82%A4%E3%82%A2%E3%83%AA%E3%83%BC%E3%81%AE%E4%BD%BF%E3%81%84%E6%96%B9
    ここの「日記を書く」の所の「今日の日記のタイトルと文章を書いてみましょう。」の文章の書き方です。
    見やすいソースコードが書けるので助かります。

    あと、繰り返しなのですが、
    http://q.hatena.ne.jp/1319937163#c223162
    これで10件の表示となって解決ではないのですか?
    なぜダメなのかが理解できません。
    それらも含めたソースコードを示してもらえませんか?
  • id:rogotaro
    TRANSさん。こんにちは。10件表示は出来ましたが、リンクが消えてしまいました。つまり2ページへのリンクが消えてしまったのです。

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

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

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

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