アプリ版:「スタンプのみでお礼する」機能のリリースについて

PHPを理解していない者ですが見よう見まねでphp my adminからデータを取り出し
ホームページへ掲載するまではなんとかできました。
ただ、ページングを作るとなるとハードルが高くて困っています。
ネットで検索して探していますがphp my adminと連動してページングが書かれている記事も少ないようでした。
あっても現在使っているこのコードとかけ離れていて、
どこに何を足したら良いのか理解できませんでした。
このコードに少し加えて機能したら良いのですが根本的に書き方を変えないといけませんか?
できれば付け足すコードを書いていただけるとうれしいです。

現在のページングは

▼トップページから見ると
|2ページ目

▼2ページへ行くと

1ページ目へ | 3ページ目へ

と表示されています。これを、

1 2 3 >>10

このように3ページ分くらいは表示できるようにしたいのです。
どうかご教授下さい!

<!-- ページング -->
<?php if($page >= 2): ?>
<a href="index.php?page=<?php print($page-1); ?>"><?php print($page-1); ?>ページ目へ</a>
<?php endif; ?>
|
<?php
$counts = $db->query('SELECT COUNT(*) as cnt FROM ■■ WHERE ●●=\'りんご\'');
$count = $counts->fetch(); //1件のデータだけなので直接fetch
$max = ceil($count['cnt'] / 10); //ceilで少数点を切り上げて次ページへ
if($page < $max): //最大ページ数より小さければ"ページ目へ"を表示する
?>
<a href="index.php?page=<?php print($page+1); ?>"><?php print($page+1); ?>ページ目へ</a>
<?php endif; ?>

質問者からの補足コメント

  • Ogre7077様
    $page = ページ番号;
    $num = 件数;
    $num_per_page = ページ毎件数;
    $disp_range = ページ表示範囲;
    の=以降は任意の数字を入れると良いということでしょうか?

    No.1の回答に寄せられた補足コメントです。 補足日時:2022/06/17 09:05

A 回答 (1件)

$page = ページ番号;


$num = 件数;
$num_per_page = ページ毎件数;
$disp_range = ページ表示範囲;

$pn = ceil($num / $num_per_page); // ページ数
$pc = max(1, min($page, $pn)); // 補正済みページ番号
$pa = max(1, $pc - floor($disp_range/2)); // 範囲内最小
$pb = min($pa + $disp_range - 1, $pn); // 範囲内最大

if (1 < $pa) 番号とリンク表示(1);
for ($i = $pa; $i <= $pb; $i++) {
_ if ($i == $pc) 番号表示($i);
_ else 番号とリンク表示($i);
}
if ($pb < $pn) 番号とリンク表示($pn);
この回答への補足あり
    • good
    • 0
この回答へのお礼

PHPがのことが分からないので、
いまいち私にはこれをどこに入れたら動くのかが分からなかったのですが
Ogre7077様一人しか返答頂けなかったのでベストアンサーとさせて頂きました。

お礼日時:2022/06/20 14:47

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!