Position actuelle: Accueil> Derniers articles> Utilisation de mysqli_result pour implémenter le filtrage et le tri du côté serveur

Utilisation de mysqli_result pour implémenter le filtrage et le tri du côté serveur

M66 2025-05-18

Dans PHP, la bibliothèque d'extension MySQLI fournit des fonctionnalités riches pour l'interaction avec les bases de données MySQL. MySQLI_RESULT est un objet de définition de résultat commun qui vous permet d'obtenir des résultats de requête de manière pratique, filtre et tri. Cet article utilisera un exemple pour présenter comment utiliser la fonction MySQLI_RESULT pour implémenter les fonctions de filtrage et de tri de données côté serveur.

1. Introduction

Lors de la création d'applications Web PHP, dans de nombreux cas, de grandes quantités de données doivent être traitées. Le filtrage et le tri de ces données sur le client peuvent provoquer un temps d'attente inutile pour l'utilisateur. Pour améliorer l'efficacité, la logique de filtrage et de tri peut être placée du côté serveur pour l'exécution. Cet article expliquera comment atteindre cet objectif via mysqli_result dans PHP.

2. Connectez-vous à la base de données

Tout d'abord, nous devons établir une connexion à la base de données MySQL. Vous pouvez utiliser la fonction mysqli_connect pour vous connecter à la base de données:

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

// Créer une connexion
$conn = mysqli_connect($servername, $username, $password, $dbname);

// Vérifiez la connexion
if (!$conn) {
    die("Échec de la connexion: " . mysqli_connect_error());
}
?>

Dans cet exemple, nous nous connectons à une base de données nommée test_db . Si la connexion de la base de données échoue, nous publierons un message d'erreur.

3. Exécutez la requête et obtenez les résultats

Supposons que nous ayons une table de données appelée produits contenant des champs ID , nom , prix et créé_at . Ensuite, nous rédigerons une requête SQL pour obtenir les données et utiliser la fonction MySQLI_Query pour exécuter la requête et renvoyer le résultat.

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

if (mysqli_num_rows($result) > 0) {
    // Données de sortie
    while($row = mysqli_fetch_assoc($result)) {
        echo "id: " . $row["id"]. " - Name: " . $row["name"]. " - Price: " . $row["price"]. "<br>";
    }
} else {
    echo "Pas de données";
}
?>

Cette requête renvoie une liste de tous les produits et produit les résultats ligne par ligne.

4. Implémentez les fonctions de filtrage et de tri de données

Afin d'améliorer l'expérience utilisateur, nous pouvons implémenter les fonctions de filtrage et de tri des données. Supposons que nous voulons filtrer et trier les produits par prix et nom.

Fonction de filtre

Nous pouvons filtrer les données en recevant des paramètres URL. Par exemple, les utilisateurs souhaitent filtrer les produits avec des prix supérieurs à 50. Il peut être mis en œuvre de la manière suivante:

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

Fonction de trier

De plus, les utilisateurs peuvent également avoir besoin de trier les données par prix ou nom. Nous pouvons utiliser la clause Order Order by pour y parvenir:

 <?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);
?>

Dans cet exemple, l'utilisateur peut spécifier les champs triés ( tri ) et l'ordre de tri ( ordre , qui peut être ASC ou DESC ) via le paramètre URL. Par exemple, Sult = Price & Order = DESC sera trié par ordre décroissant des prix.

5. Filtrage et tri complet

Afin d'implémenter les fonctions de filtrage et de tri en même temps, nous pouvons combiner deux fonctions:

 <?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);
?>

De cette façon, les utilisateurs peuvent choisir entre les conditions de filtrage (le prix est supérieur à une certaine valeur) et les méthodes de tri (triées par prix ou nom, ascendante ou descendante).

6. Exemple complet

Voici un exemple de code PHP complet qui combine les fonctions de filtrage et de tri:

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

$conn = mysqli_connect($servername, $username, $password, $dbname);
if (!$conn) {
    die("Échec de la connexion: " . 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 "Pas de données";
}

mysqli_close($conn);
?>

Dans cet exemple, l'utilisateur peut passer des paramètres de filtrage et de tri via l'URL, tels que:

  • http://m66.net/products.php?price=50&sort=name&order=asc : Filtrez des produits avec des prix supérieurs à 50 et organisez-les dans l'ordre croissant des noms.

  • http://m66.net/products.php?price=100&sort=price&order=descs : Filtrez des produits avec des prix supérieurs à 100 et organisez-les dans l'ordre des prix descendants.

7. Résumé

Cet article présente comment implémenter les fonctions de filtrage et de tri de données côté serveur dans PHP via la fonction mysqli_result . En combinant les SQL Where and Order by Clauses, nous pouvons traiter efficacement de grandes quantités de données et réduire le fardeau des clients. Dans les applications pratiques, vous pouvez ajuster les conditions de filtrage et les règles de tri en fonction de vos besoins pour fournir une meilleure expérience utilisateur.