In PHP bietet die MySQLI -Erweiterungsbibliothek eine umfassende Funktionalität für die Interaktion mit MySQL -Datenbanken. MySQLi_Result ist ein gemeinsames Ergebnis -Set -Objekt, mit dem Sie Abfragergebnisse bequem, Filter und Sortierer erhalten können. In diesem Artikel wird ein Beispiel verwendet, um vorzustellen, wie die Funktion mySQLI_Result verwendet wird, um die serverseitigen Datenfilter- und Sortierfunktionen zu implementieren.
Beim Erstellen von PHP -Webanwendungen müssen in vielen Fällen große Datenmengen bearbeitet werden. Das Filtern und Sortieren dieser Daten im Client kann zu unnötigen Wartezeiten für den Benutzer führen. Um die Effizienz zu verbessern, kann die Filter- und Sortierlogik für die Ausführung auf der Serverseite platziert werden. In diesem Artikel wird erklärt, wie dieses Ziel durch mySQLI_Result in PHP erreicht werden kann.
Zunächst müssen wir eine Verbindung zur MySQL -Datenbank herstellen. Sie können die Funktion mySQLI_Connect verwenden, um eine Verbindung zur Datenbank herzustellen:
<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "test_db";
// Eine Verbindung erstellen
$conn = mysqli_connect($servername, $username, $password, $dbname);
// Überprüfen Sie die Verbindung
if (!$conn) {
die("Verbindung ist fehlgeschlagen: " . mysqli_connect_error());
}
?>
In diesem Beispiel stellen wir eine Verbindung zu einer Datenbank mit dem Namen test_db her. Wenn die Datenbankverbindung fehlschlägt, geben wir eine Fehlermeldung aus.
Angenommen, wir haben eine Datentabelle namens Produkte , die Fields -ID , Name , Preis und erstellt_at enthält. Als nächstes schreiben wir eine SQL -Abfrage, um die Daten zu erhalten und die Funktion mySQLI_Query zu verwenden, um die Abfrage auszuführen und das Ergebnis zurückzugeben.
<?php
$sql = "SELECT * FROM products";
$result = mysqli_query($conn, $sql);
if (mysqli_num_rows($result) > 0) {
// Ausgabedaten
while($row = mysqli_fetch_assoc($result)) {
echo "id: " . $row["id"]. " - Name: " . $row["name"]. " - Price: " . $row["price"]. "<br>";
}
} else {
echo "Keine Daten";
}
?>
Diese Abfrage gibt eine Liste aller Produkte zurück und gibt die Ergebniszeile nach Linie aus.
Um die Benutzererfahrung zu verbessern, können wir die Filter- und Sortierfunktionen von Daten implementieren. Angenommen, wir wollen Produkte nach Preis und Namen filtern und sortieren.
Wir können Daten filtern, indem wir URL -Parameter empfangen. Zum Beispiel möchten Benutzer Produkte mit Preisen von mehr als 50 herausfiltern. Sie können auf folgende Weise implementiert werden:
<?php
$price_filter = isset($_GET['price']) ? $_GET['price'] : 0;
$sql = "SELECT * FROM products WHERE price > $price_filter";
$result = mysqli_query($conn, $sql);
?>
Darüber hinaus müssen Benutzer die Daten möglicherweise auch nach Preis oder Namen sortieren. Wir können die Bestellung per Klausel verwenden, um dies zu erreichen:
<?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);
?>
In diesem Beispiel kann der Benutzer die sortierten Felder ( sortieren ) und die Sortierreihenfolge ( Reihenfolge , die ASC oder Desc ) über den URL -Parameter angeben. Zum Beispiel wird Sort = Price & Order = Desc in absteigender Preisreihenfolge sortiert.
Um die Filter- und Sortierfunktionen gleichzeitig zu implementieren, können wir zwei Funktionen kombinieren:
<?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);
?>
Auf diese Weise können Benutzer zwischen den Filterbedingungen (der Preis größer als ein bestimmter Wert) und Sortiermethoden (sortiert nach Preis oder Namen, Aufstieg oder Abstieg) wählen.
Hier ist ein vollständiger PHP -Beispielcode, der Filter- und Sortierfunktionen kombiniert:
<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "test_db";
$conn = mysqli_connect($servername, $username, $password, $dbname);
if (!$conn) {
die("Verbindung ist fehlgeschlagen: " . 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 "Keine Daten";
}
mysqli_close($conn);
?>
In diesem Beispiel kann der Benutzer Filter- und Sortierparameter über die URL übergeben, z. B.:
http://m66.net/products.php?price=50&sort=name&order=asc : Filterprodukte mit Preisen von mehr als 50 und arrangieren Sie sie in aufsteigender Bestellung der Namen.
http://m66.net/products.php?price=100&sort=price&order=DESC : Filterprodukte mit Preisen von mehr als 100 und ordnen Sie sie in absteigender Preisreihenfolge an.
In diesem Artikel werden die serverseitigen Datenfilterungs- und Sortierfunktionen in PHP über die Funktion mySQLI_Result implementiert. Durch die Kombination von SQL's Where and Order nach Klauseln können wir große Datenmengen effizient verarbeiten und die Belastung für Kunden verringern. In praktischen Anwendungen können Sie die Filterbedingungen und Sortierregeln entsprechend Ihren Bedürfnissen anpassen, um eine bessere Benutzererfahrung zu bieten.