現在の位置: ホーム> 最新記事一覧> MySqli_Resultを使用して、サーバー側のフィルタリングとソートを実装します

MySqli_Resultを使用して、サーバー側のフィルタリングとソートを実装します

M66 2025-05-18

PHPでは、 MySQLI拡張ライブラリは、MySQLデータベースとの相互作用のための豊富な機能を提供します。 mysqli_resultは、クエリの結果を便利な方法、フィルター、ソートで取得できる一般的な結果セットオブジェクトです。この記事では、例を使用して、 mysqli_result関数を使用してサーバー側のデータフィルタリングとソート機能を実装する方法を紹介します。

1。はじめに

PHP Webアプリケーションを構築する場合、多くの場合、大量のデータを処理する必要があります。このデータのフィルタリングとソートは、クライアントにユーザーに不必要な待機時間を引き起こす可能性があります。効率を向上させるために、実行のためにフィルタリングとソートロジックをサーバー側に配置できます。この記事では、PHPのmysqli_resultを通じてこの目標を達成する方法について説明します。

2。データベースに接続します

まず、MySQLデータベースへの接続を確立する必要があります。 mysqli_connect関数を使用して、データベースに接続できます。

 <?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "test_db";

// 接続を作成します
$conn = mysqli_connect($servername, $username, $password, $dbname);

// 接続を確認してください
if (!$conn) {
    die("接続に失敗しました: " . mysqli_connect_error());
}
?>

この例では、 test_dbという名前のデータベースに接続します。データベース接続が失敗した場合、エラーメッセージが出力されます。

3。クエリを実行して結果を取得します

Fields ID名前価格、およびcreated_atを含む製品と呼ばれるデータテーブルがあるとします。次に、SQLクエリを記述してデータを取得し、 mysqli_query関数を使用してクエリを実行して結果を返します。

 <?php
$sql = "SELECT * FROM products";
$result = mysqli_query($conn, $sql);

if (mysqli_num_rows($result) > 0) {
    // 出力データ
    while($row = mysqli_fetch_assoc($result)) {
        echo "id: " . $row["id"]. " - Name: " . $row["name"]. " - Price: " . $row["price"]. "<br>";
    }
} else {
    echo "データなし";
}
?>

このクエリはすべての製品のリストを返し、結果をラインごとに出力します。

4.データフィルタリングと並べ替え機能を実装します

ユーザーエクスペリエンスを向上させるために、データのフィルタリングおよび並べ替え機能を実装できます。価格と名前で製品をフィルタリングおよびソートすると仮定します。

フィルター機能

URLパラメーターを受信して​​データをフィルタリングできます。たとえば、ユーザーは50を超える価格で製品を除外したいと考えています。次の方法で実装できます。

 <?php
$price_filter = isset($_GET['price']) ? $_GET['price'] : 0;
$sql = "SELECT * FROM products WHERE price > $price_filter";
$result = mysqli_query($conn, $sql);
?>

関数をソートします

さらに、ユーザーは価格または名前でデータをソートする必要がある場合もあります。条項ごとにこれを達成するために注文を使用できます。

 <?php
$sort_by = isset($_GET['sort']) ? $_GET['sort'] : 'price';
$order = isset($_GET['order']) ? $_GET['order'] : 'ASC';
$sql = "SELECT * FROM products ORDER BY $sort_by $order";
$result = mysqli_query($conn, $sql);
?>

この例では、ユーザーは、URLパラメーターを介してソートされたフィールド(ソート)とソート順序ASCまたはDESCになる可能性がある)を指定できます。たとえば、 sort = rice&order = descは、価格の下降順にソートされます。

5。包括的なフィルタリングとソート

フィルタリングとソート機能を同時に実装するために、2つの機能を組み合わせることができます。

 <?php
$price_filter = isset($_GET['price']) ? $_GET['price'] : 0;
$sort_by = isset($_GET['sort']) ? $_GET['sort'] : 'price';
$order = isset($_GET['order']) ? $_GET['order'] : 'ASC';

$sql = "SELECT * FROM products WHERE price > $price_filter ORDER BY $sort_by $order";
$result = mysqli_query($conn, $sql);
?>

このようにして、ユーザーはフィルタリング条件(価格は特定の値よりも大きい)とソートメソッド(価格または名前、上昇または下降)を選択できます。

6.完全な例

これは、フィルタリングとソート機能を組み合わせた完全なPHPサンプルコードです。

 <?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "test_db";

$conn = mysqli_connect($servername, $username, $password, $dbname);
if (!$conn) {
    die("接続に失敗しました: " . mysqli_connect_error());
}

$price_filter = isset($_GET['price']) ? $_GET['price'] : 0;
$sort_by = isset($_GET['sort']) ? $_GET['sort'] : 'price';
$order = isset($_GET['order']) ? $_GET['order'] : 'ASC';

$sql = "SELECT * FROM products WHERE price > $price_filter ORDER BY $sort_by $order";
$result = mysqli_query($conn, $sql);

if (mysqli_num_rows($result) > 0) {
    while($row = mysqli_fetch_assoc($result)) {
        echo "id: " . $row["id"]. " - Name: " . $row["name"]. " - Price: " . $row["price"]. "<br>";
    }
} else {
    echo "データなし";
}

mysqli_close($conn);
?>

この例では、ユーザーは次のようなURLを介してフィルタリングとソートパラメーターを渡すことができます。

  • http://m66.net/products.php?price=50&sort=name&order = asc:価格が50を超え、名前の昇順で配置します。

  • http://m66.net/products.php?price=100&sort=price&order = desc:価格が100を超え、価格の下降順に配置されます。

7。概要

この記事では、 mysqli_result関数を介してPHPでサーバー側のデータフィルタリングと並べ替え機能を実装する方法を紹介します。条項によるSQLの場所と順序を組み合わせることにより、大量のデータを効率的に処理し、クライアントの負担を軽減できます。実際のアプリケーションでは、より良いユーザーエクスペリエンスを提供するために、ニーズに応じてフィルタリング条件と並べ替えルールを調整できます。