0

そこで、データベース テーブルの結果を表示できるページを作成しようとしています。何千もの結果があるため、検索が可能で、ページネーションが必要です。

検索だけで完璧に機能するページを作成することができました。だから今、私はページネーションをそれに統合する方法を知る必要があります。

index.php

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <title></title>
  </head>
  <body>
      <div id="container">
        <form action="" method="get">
        <input type="text" name="search" id="search" placeholder="Search" />
        <input type="submit" />
            </form>
        <?php include 'process.php'; ?>
      </div> <!-- /container -->
    <script src="js/jquery.js"></script>
    <script src="js/script.js"></script>
  </body>
</html>

プロセス.php

<?php include 'dbconfig.php'; ?>
<?php include 'connect.php'; ?>
<?php   
$search = $_GET['search'];
$result = mysql_query("SELECT * FROM oantkb WHERE Name LIKE '%$search%' ORDER BY `INDEX` DESC");

echo '<table class="table">';
echo '<thead>';
echo '<tr>';
echo '<th>#</th>';
echo '<th>Pic</th>';
echo '<th>Name</th>';
echo '</tr>';
echo '</thead>';
echo '<tbody>';

while($row = mysql_fetch_assoc($result)) {

    $pic = $row['Pic'];
    $name = $row['Name'];

    echo '<tr>';
    echo '<td>#</td>';
    echo '<td><img src="'.$pic.'" height="50" width 50"></td>';
    echo '<td>'.$name.'</td>';
    echo '</tr>';
}

echo '</tbody>';
echo '</table>';
?>

現在、正常に動作しています。検索すると index.php?search=banana と表示されますが、ページネーションを追加する必要があるため、たとえば index.php?search=banana&?page=2 と表示されます。または、それらの線に沿った何か。それが理にかなっていることを願っています...私はPHP初心者です:)

4

2 に答える 2

1

SQL クエリの最後に次を含めます。

$resultsPerPage=10;
$page = ($_GET["page"]-1)*$resultsPerPage;
$query = $query." LIMIT $page,$resultsPerPage";
mysql_query($query);

ところで、mysql_ ライブラリは mysqli を支持して廃止されました。

また、$_GET["page"] が最初にサニタイズされていないため、上記は sql インジェクション攻撃の影響を受けやすいですが、簡単にするためにこのようにしました。

これは、1 から始まるページング スキームを想定しています。

于 2012-09-17T17:38:44.893 に答える
0

私は長い間 Pear Pagination を使用してきました。あなたはそれを試すことができます。

ここにそれを設定するための良いチュートリアルがあります

PHP チュートリアルでのシンプルなページネーション

クエリで変数を使用する前に、変数をクリーンアップすることを追加することをお勧めします。

于 2012-09-17T17:34:34.943 に答える