Détermination des résultats totaux pour les requêtes MySQL paginées avec décalage et limite
Lors de l'implémentation de la pagination dans PHP/MySQL, déterminer le nombre total de résultats est crucial pour calculer le nombre de pages. Au lieu d'exécuter la requête deux fois, envisagez d'utiliser SQL_CALC_FOUND_ROWS.
Exemple :
SELECT SQL_CALC_FOUND_ROWS * FROM directory_listings WHERE category_id = ? LIMIT ? OFFSET ?
Cette requête récupère le nombre de résultats souhaité tout en calculant également le nombre total de résultats éligibles. lignes.
// Execute the query with pagination parameters $results = $db->query($query, [ 'category_id' => $categoryId, 'limit' => $limit, 'offset' => $offset ]); // Retrieve the found row count $foundRows = $db->query("SELECT FOUND_ROWS() AS num_rows")->row(); // Calculate total pages $totalPages = ceil($foundRows->num_rows / $limit);
Avantages :
Remarque :
SQL_CALC_FOUND_ROWS doit être utilisé conjointement avec LIMIT pour calculer avec précision le nombre de lignes et éviter les erreurs de comptage.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!