ページング機能について教えて頂きたいです。
ページング機能について教えて頂きたいです。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/05/29 05:50 編集
回答2件
0
自身で以前ページングについての質問されてましたよね。
その質問見返してみては?
私もほぼそのままで動くコードを回答で投稿しています。
- teratail:ページネーションに検索項目を追加したい これは一例。自身の全部見返してください。
「これで今のコードにどう反映していいかわからない」のでしたらそれはページングの概念を知るところから始めてください。
計算方法はどこにでも出ているのでそれさえきちんとわかれば言語問わずできます。
※低評価した人へ
当該質問は当初から低評価5を超えているため質問や回答を修正したりコメントをしても「アクティブ」には出ません。
それでも低評価が加速するということは十中八九、質問者自身および質問者の関係者(または別アカウント)であることはほぼ間違いないです。
コメントがないことからもこの回答を技術的観点で評価できる人ではないことが伺い知れます。それは立派な荒らし行為です。別途コメントした通り既に質問者は通報済みです。
低評価する場合はその理由をコメントすることが推奨されています。コメントできないのであれば低評価は取り下げてください。低評価するのであれば技術的観点からしっかり批判してください。
中身ではなく好き嫌いでしか評価できない自身を恥じてください(特に技術者としては最低の行為です)
投稿2019/05/17 11:07
編集2019/05/30 01:32総合スコア80850
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
自己解決
error_reporting(E_ALL);
ini_set("display_errors",1);
define('PAGE_LIMIT', 10);
session_start();
try {
$pdo = new PDO('mysql:host=localhost;dbname=reserve;charset=utf8','root','',);
$pdo->setAttribute(PDO::ATTR_EMULATE_PREPARES,false);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
if(!isset($_SESSION['user'])) { header("Location: user_index.php"); } // ①ユーザーIDからユーザー名を取り出す $query = "SELECT * FROM users WHERE user_id=:user_id"; $result = $pdo->prepare($query); $result->bindValue(':user_id', $_SESSION['user'], PDO::PARAM_INT); $result->execute(); // ユーザー情報の取り出し while ($row = $result->fetch(PDO::FETCH_ASSOC)) { $user_name = $row['user_name']; $user_id = $row['user_id']; $tel = $row['tel']; } // ②yesnoで数字順に並べる $query = "SELECT * FROM shop order by yesno asc"; $shop_result = $pdo->query($query); if (!$shop_result) { print('店側クエリーが失敗しました。' . $pdo->error); $pdo->close(); exit(); } // ショップ情報の取り出し $arr_shop = []; while ($row = $result->fetch(PDO::FETCH_ASSOC)) { $arr_shop[] = [ 'shop_id' => $row['shop_id'], 'shop_name' => $row['shop_name'], 'yesno' => $row['yesno'], ]; } // リクエストパラメータの取得
$search = filter_input(INPUT_GET, 'search');
$p = !is_numeric(filter_input(INPUT_GET, 'p')) ? 0 : filter_input(INPUT_GET, 'p');
$name = filter_input(INPUT_GET, 'name', FILTER_SANITIZE_SPECIAL_CHARS);
$yesno = filter_input(INPUT_GET, 'yesno', FILTER_SANITIZE_SPECIAL_CHARS);
// 取得開始位置 $offset = $p * PAGE_LIMIT; // SQL生成 $where = []; $whereSql = null; if ( count($where) > 0 ) { $whereSql = " where ".implode(' OR ', $where); } $sql = $pdo->prepare('select SQL_CALC_FOUND_ROWS * from shop '.$whereSql.' order by shop_id desc limit :limit offset :offset'); $sql->bindValue(":offset", $offset, PDO::PARAM_INT); $sql->bindValue(":limit", PAGE_LIMIT, PDO::PARAM_INT); $sql->execute();
$result = $sql->fetchAll();
// Total件数 $totalRow = $pdo->query("SELECT FOUND_ROWS() as total"); $all = $totalRow->fetch(PDO::FETCH_ASSOC);
} catch (PDOException $e) {
var_dump($e);
die();
}
?>
</body> </html><div class="home"> <div class="header" > <div class="col-xs-12" > <a href="#" >サイト名</a> <p ><?php echo $user_name; ?> ログイン中</p> <a href="user_logout.php?user_logout" >ログアウト</a> </div> </div> <div class="main"> <div class="container" > <div class="row"> <div class="col-xs-12" > <?php if ( $all['total'] > 0 ) : ?> <p class="alert alert-success" >登録店舗数<?= number_format($all['total']) ?>件</p> <table class="table table-striped"> <thead> <tr> <th>店舗名</th> <th>入店可否</th> </tr> </thead> <tbody> <?php foreach($shop_result as $key => $value) : ?> <tr> <td><a href="user_shopinfo.php?shop_id=<?= $value['shop_id'] ?>"><?php echo $value['shop_name'] ?></a></td> <td><?php $pt = htmlspecialchars($value['yesno']); $col = [1 => "black",2 => "red"]; $tx = [1 => "〇",2 => "✖"]; echo "<font color='" .$col[$pt]."'>"; echo $tx[$pt]; echo "</font>"; ?></td> <?php endforeach; ?> </tbody> </table> <div class="paging"> <!-- ページネーション --> <?php if ( $p > 0 ) : ?> <a href="user_home.php?shop_id=<?= $value['shop_id'] ?>search=1&shop_name=<?= $shop_name ?>&yesno=<?= $yesno ?>&shop_id=<?= $shop_id ?>&p=<?= $p-1 ?>" class="pull-left">戻る</a> <?php else : ?> <span class="pull-left">最新</span> <?php endif; ?> <?php if ( $all['total'] - (PAGE_LIMIT * $p ) > PAGE_LIMIT ) : ?> <a href="user_home.php?shop_id=<?= $value['shop_id'] ?>search=1&shop_name=<?= $shop_name ?>&yesno=<?= $yesno ?>&shop_id=<?= $shop_id ?>&p=<?= $p+1 ?>" class="pull-right">次へ</a> <?php else : ?> <span class="pull-right">末尾</span> <?php endif; ?> </div> <?php else : ?> <p class="alert alert-danger">検索対象は見つかりませんでした。</p> <?php endif; ?> </div> </div> </div> </div> </div>
投稿2019/05/21 07:40
総合スコア66
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/05/21 08:36
2019/05/29 04:49 編集
2019/05/29 08:30 編集
2019/05/29 14:04
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。