- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ページングのページ情報が更新されない)
ページングのページ情報が更新されない
このQ&Aのポイント
- PHPとMySQLを用いてページング処理をさせたいと思いましたが、うまくいきませんでした。
- ページ情報が更新されません。はじめにページ情報の有無を判定して、ない場合、初期値として1を入れてその後の処理につなげると思うのですが、「次へ」をクリックしても同じページになります。
- うまくページ情報が受け渡されていないのが原因だと思うのですが・・・
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
問題箇所は違う場所にあるんじゃないでしょうか。 $pageがあったら・・・なので、if(!isset($page))に対するelseの部分で発生するのかな?と思います。 SQLに含まれるOFFSETの値は $page * $pagesize - $pagesize SQLに含まれるLIMITの値は $pagesize こんな感じで動作しているのであれば問題なく動作するんじゃないでしょうか? <?php $page = (isset($_GET['page']) && preg_match("/^[0-9]{1,3}$/", $_GET['page'])) ? $_GET['page'] : 1; $pagesize = 10; $offset = $page * $pagesize - $pagesize; $sql = "SELECT * FROM ???? OFFSET $offset LIMIT $pagesize"; $result = $conn->query($sql); if (DB::isError($result)) { die ($result->getMessage()); } $count = $result->numRows(); こんな風に最初に$pageを設定してあげると簡単な気がします。
お礼
回答ありがとうございます。 おっしゃるとおり、elseの部分で問題があったようです。 根本的にプログラムを考え直し、$paseの有無で判断するのではなく、$pageがあろうがなかろうが毎回、URLに含まれるページ番号を取得し、それをLIMITに設定することで解決しました。 サンプルプログラムも提示して頂き、参考になりました。 ありがとうございました。