PHPの検索結果をページ分けする方法
検索結果をページ分けするには、次の手順に従ってください。
- 検索キーワードと検索オプションを取得します。
- キーワードとオプションに基づいた検索を実行し、結果を取得します。
- 1ページに表示する件数と現在のページ番号から、表示する検索結果の開始位置を計算します。
- データベースから検索結果を指定した数だけ取得するには、LIMITステートメントを使用します。
- 検索結果をページに表示します。
- 検索結果の総件数と一画面で表示する数から総ページ数を算出する。
- ページ番号をクリックして移動できるようにページングリンクを作成します。
- ユーザーがページネーション リンクをクリックした際のロジックを処理し、ユーザーが選択したページ番号に基づいて検索操作を再実行し、結果を表示します。
以下は検索結果のページネーションを実装する方法を示す簡単なサンプルコードです。
<?php
// 获取搜索关键字和选项
$keyword = $_GET['keyword'];
$option = $_GET['option'];
// 执行搜索操作,获取搜索结果
$results = search($keyword, $option);
// 设置每页显示的数量和当前页码
$perPage = 10;
$page = isset($_GET['page']) ? $_GET['page'] : 1;
// 计算搜索结果的起始位置
$start = ($page - 1) * $perPage;
// 使用LIMIT语句从数据库中获取指定数量的搜索结果
$resultsPerPage = query("SELECT * FROM search_results WHERE keyword = '$keyword' LIMIT $start, $perPage");
// 在页面上显示搜索结果
foreach ($resultsPerPage as $result) {
echo $result['title'] . '
';
echo $result['description'] . '
';
}
// 计算总页数
$totalPages = ceil(count($results) / $perPage);
// 生成分页链接
for ($i = 1; $i <= $totalPages; $i++) {
echo "<a href='search.php?keyword=$keyword&option=$option&page=$i'>$i</a> ";
}
// 处理用户点击分页链接的逻辑
if (isset($_GET['page'])) {
$page = $_GET['page'];
$start = ($page - 1) * $perPage;
$resultsPerPage = query("SELECT * FROM search_results WHERE keyword = '$keyword' LIMIT $start, $perPage");
// 在页面上显示搜索结果
foreach ($resultsPerPage as $result) {
echo $result['title'] . '
';
echo $result['description'] . '
';
}
}
?>
検索機能やデータベース操作に応じた適切なsearch関数、query関数を記載のサンプルから適宜置き換えてください。