Lors de la requête de pagination de la base de données, nous rencontrons généralement des scénarios où nous devons afficher une grande quantité de données. Si nous chargeons toutes les données sur la page à la fois, cela peut faire charger lentement la page. Pour résoudre ce problème, nous pouvons utiliser la technologie de pagination pour charger des données par lots, et la fonction Array_Chunk de PHP est un outil très efficace qui peut nous aider à traiter efficacement les résultats de la requête SQL dans les requêtes de pagination.
Cet article présentera comment utiliser la fonction Array_Chunk de PHP pour optimiser le processus d'implémentation de la requête de pagination.
Array_Chunk est une fonction intégrée en PHP qui est utilisée pour diviser un grand tableau en plusieurs petits tableaux. L'utilisation de base est la suivante:
array_chunk(array $array, int $length, bool $preserve_keys = false): array
$ Array : Le tableau à diviser.
$ Longueur : la longueur de chaque petit tableau.
$ Preserve_Keys : s'il faut préserver le nom de clé du tableau d'origine (la valeur par défaut est fausse ).
Grâce à cette fonction, nous pouvons diviser un grand ensemble de données en tableaux de plusieurs pages, renvoyant une page de données à la fois.
Supposons que nous ayons une table utilisateur ( utilisateurs ) dans la base de données qui contient une grande quantité de données utilisateur. Nous voulons afficher ces données sur la page. La pratique habituelle consiste à interroger tous les enregistrements de la base de données à la fois et à traiter la logique de pagination sur le backend. Cependant, cela peut entraîner des problèmes de performances, en particulier lorsque le volume de données est très important.
Par conséquent, nous pouvons utiliser la fonction Array_Chunk pour diviser les résultats de la requête en plusieurs pages pour optimiser les performances. Nous divisons les résultats de la requête SQL en plusieurs tableaux via Array_Chunk , puis affichons les données par page.
Voici un exemple simple montrant comment utiliser la fonction Array_Chunk pour paginer les résultats de la requête SQL:
<?php
// Connectez-vous à la base de données
$mysqli = new mysqli("localhost", "username", "password", "database");
// Vérifiez la connexion
if ($mysqli->connect_error) {
die("Échec de la connexion: " . $mysqli->connect_error);
}
// Définir le nombre d'enregistrements affichés par page
$items_per_page = 10;
// Obtenez le numéro de page actuel,La valeur par défaut est 1
$page = isset($_GET['page']) ? (int)$_GET['page'] : 1;
$offset = ($page - 1) * $items_per_page;
// Données de requête
$query = "SELECT * FROM users LIMIT $offset, $items_per_page";
$result = $mysqli->query($query);
// Si la requête réussit
if ($result->num_rows > 0) {
// Enregistrer les résultats de la requête dans un tableau
$data = [];
while ($row = $result->fetch_assoc()) {
$data[] = $row;
}
// utiliser array_chunk Divisez les résultats de la requête par la quantité de données par page
$chunks = array_chunk($data, $items_per_page);
// Obtenez l'affichage des données de la page actuelle
$current_page_data = $chunks[$page - 1];
// Afficher les données de la page actuelle
foreach ($current_page_data as $user) {
echo "nom d'utilisateur: " . $user['username'] . "<br>";
echo "Mail: " . $user['email'] . "<br>";
echo "<hr>";
}
} else {
echo "Aucune donnée utilisateur trouvé。";
}
// Lien de pagination
$total_pages = ceil(count($data) / $items_per_page);
echo "<div>commun " . $total_pages . " Page</div>";
for ($i = 1; $i <= $total_pages; $i++) {
echo "<a href='?page=$i'>1 et 1 $i Page</a> ";
}
$mysqli->close();
?>
En utilisant Array_Chunk, nous pouvons couper les résultats de la requête par page et afficher uniquement les données de la page actuelle. Ceci est très utile pour traiter de grandes quantités de données et peut réduire efficacement la charge de chaque charge de page.
De plus, nous pouvons encore optimiser la fonction de pagination. Par exemple, les données peuvent être chargées dynamiquement via Ajax au lieu de rafraîchir la page à chaque fois. De cette façon, l'expérience utilisateur sera plus fluide.
En pagination, le paramètre de page est généralement passé dans l'URL pour indiquer le numéro de page actuel. Si notre lien de pagination utilise la structure URL comme suit:
http://example.com/users?page=2
Nous pouvons remplacer la partie de domaine de l'URL par m66.net pour s'assurer que le format dont nous avons besoin est: