Maison  >  Article  >  développement back-end  >  PHP implémente la fonction de pagination de données

PHP implémente la fonction de pagination de données

王林
王林original
2023-06-23 10:55:081105parcourir

PHP est un langage de script côté serveur largement utilisé dans le développement Web. Lorsque nous traitons une grande quantité de données dans une base de données, nous devons généralement utiliser la technologie de pagination de données pour diviser les données en pages pouvant être affichées afin d'économiser les ressources du serveur et d'améliorer l'efficacité de l'accès des utilisateurs. Cet article explique comment utiliser PHP pour implémenter la fonction de pagination de données.

  1. Connexion à la base de données

Tout d'abord, nous devons nous connecter à la base de données, ce qui est réalisé via le code suivant :

$servername = "localhost"; //数据库主机名
$username = "root"; //数据库用户名
$password = ""; //数据库密码
$dbname = "myDB"; //数据库名称

// 创建连接
$conn = mysqli_connect($servername, $username, $password, $dbname);

// 检测连接是否成功
if (!$conn) {
    die("Connection failed: " . mysqli_connect_error());
}
  1. Obtenir le nombre total d'enregistrements

Ensuite, nous devons obtenir le nombre total d'enregistrements dans la base de données pour la pagination. Ceci peut être réalisé grâce au code suivant :

$sql = "SELECT COUNT(*) FROM myTable"; //myTable为数据表名
$result = mysqli_query($conn, $sql);
$row = mysqli_fetch_array($result);

$total_records = $row[0]; //获取总记录数
  1. Calculer la pagination

Une fois que nous avons le nombre total d'enregistrements, nous pouvons calculer le nombre de pages qui doivent être divisées et le nombre d'enregistrements affichés sur chaque page. Par exemple, si chaque page affiche 10 éléments de données et qu’il y a 100 éléments de données au total, nous devons alors la diviser en 10 pages. Ceci peut être réalisé grâce au code suivant :

$records_per_page = 10; //每页记录数
$total_pages = ceil($total_records / $records_per_page); //总页数
  1. Obtenir le numéro de page actuel

Lors de la pagination, vous devez obtenir le numéro de page actuel pour déterminer la plage de données qui doit être affichée. Le numéro de page actuel peut être obtenu via le code suivant :

if (isset($_GET['page'])) {
    $current_page = $_GET['page'];
} else {
    $current_page = 1; //默认为第一页
}
  1. Calculer la position d'enregistrement de départ

Avec le numéro de page actuel et le nombre d'enregistrements par page, nous pouvons calculer la position d'enregistrement de la requête de départ. Par exemple, si vous souhaitez interroger les données de la page 3 et afficher 10 éléments de données sur chaque page, alors la position de l'enregistrement de départ est :

$starting_position = ($current_page - 1) * $records_per_page;
  1. Interrogation des données

Après avoir calculé la position de l'enregistrement de départ, nous devons interroger la base de données et obtenir les données à afficher. Cela peut être réalisé grâce au code suivant :

$sql = "SELECT * FROM myTable LIMIT $starting_position, $records_per_page";
$result = mysqli_query($conn, $sql);
  1. Affichez la barre de navigation de pagination

Enfin, affichez la barre de navigation de pagination en bas de la page. Ceci peut être réalisé grâce au code suivant :

echo "<ul class='pagination'>";

if ($current_page > 1) {
    $prev_page = $current_page - 1;
    echo "<li><a href='{$_SERVER['PHP_SELF']}?page=$prev_page'>&laquo;</a></li>";
}

for ($i = 1; $i <= $total_pages; $i++) {
    if ($i == $current_page) {
        echo "<li class='active'><a href='#'>$i</a></li>";
    } else {
        echo "<li><a href='{$_SERVER['PHP_SELF']}?page=$i'>$i</a></li>";
    }
}

if ($current_page < $total_pages) {
    $next_page = $current_page + 1;
    echo "<li><a href='{$_SERVER['PHP_SELF']}?page=$next_page'>&raquo;</a></li>";
}

echo "</ul>";

Le code ci-dessus utilise le style du framework Bootstrap et peut ajuster le style et la mise en page par lui-même.

Le code complet est le suivant :




    PHP数据分页
    



"; echo ""; echo ""; echo ""; echo ""; } ?>
姓名 年龄 性别
" . $row['name'] . "" . $row['age'] . "" . $row['gender'] . "

Il convient de noter que dans l'application réelle, nous devons effectuer une vérification de sécurité à chaque étape du code pour empêcher les attaques malveillantes telles que l'injection SQL.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn