Maison  >  Article  >  développement back-end  >  Comment implémenter l'affichage de la pagination avec PHP+MySQL

Comment implémenter l'affichage de la pagination avec PHP+MySQL

零到壹度
零到壹度original
2018-03-28 17:34:282945parcourir

WLe développement EB sera le courant dominant du développement de programmes distribués à l'avenir. Habituellement, le développement Web implique de gérer la base de données et l'affiche généralement sous forme de pagination, une page par page. . La page est facile à lire et belle. Par conséquent, l’écriture de programmes de pagination est une partie importante du développement Web. Ici, nous étudierons ensemble l’écriture de programmes de pagination.

1. Principe du programme de pagination

Le programme de pagination a deux paramètres très importants : le nombre d'enregistrements affichés sur chaque page ($pagesize) et le actuelle Quelle page ($page). Avec ces deux paramètres, nous pouvons facilement écrire un programme de pagination. Nous utilisons la base de données MySql comme source de données. Dans MySQL, si vous souhaitez supprimer un élément de contenu spécifique dans la table, vous pouvez utiliser l'instruction T-SQL : select. * à partir du décalage de limite de table, lignes à réaliser. Le décalage ici est le décalage de l'enregistrement, et sa méthode de calcul est offset=$pagesize*($page-1), les lignes sont le nombre d'enregistrements à afficher, voici $page. En d'autres termes, l'instruction select * from table limit 10,10 signifie supprimer les 20 enregistrements à partir du 11ème enregistrement de la table.

2. Analyse du code principal

$pagesize=10; //设置每一页显示的记录数
$conn=mysql_connect("localhost","root",""); //连接数据库
$rs=mysql_query("select count(*) from tb_product",$conn); //取得记录总数$rs
$myrow = mysql_fetch_array($rs);
$numrows=$myrow[0];
//计算总页数
$pages=intval($numrows/$pagesize);
//判断页数设置
if (isset($_GET['page'])){
 $page=intval($_GET['page']);
}
else{ 
 $page=1; //否则,设置为第一页
}

3. Créer une table de cas d'utilisation myTable

create table myTable(id int NOT NULL auto_increment,news_title varchar(50),news_cont text,add_time datetime,PRIMARY KEY(id))

4. Code complet

<html>
<head>
<title>php分页示例</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312"> 
</head>
<body>
<?php
 $conn=mysql_connect("localhost","root","");
 //设定每一页显示的记录数
 $pagesize=1;
 mysql_select_db("mydata",$conn);
 //取得记录总数$rs,计算总页数用
 $rs=mysql_query("select count(*) from tb_product",$conn);
 $myrow = mysql_fetch_array($rs);
 $numrows=$myrow[0];
 //计算总页数
 $pages=intval($numrows/$pagesize);
 if ($numrows%$pagesize)
  $pages++;
 //设置页数
 if (isset($_GET['page'])){
  $page=intval($_GET['page']);
 }
 else{
  //设置为第一页 
  $page=1;
 }
 //计算记录偏移量
 $offset=$pagesize*($page - 1);
 //读取指定记录数
 $rs=mysql_query("select * from myTable order by id desc limit $offset,$pagesize",$conn);
 if ($myrow = mysql_fetch_array($rs))
 {
  $i=0;
  ?>
  <table border="0" width="80%">
  <tr>
   <td width="50%" bgcolor="#E0E0E0">
    <p align="center">标题</td>
    <td width="50%" bgcolor="#E0E0E0">
    <p align="center">发布时间</td>
  </tr>
  <?php
   do {
    $i++;
    ?>
  <tr>
   <td width="50%"><?=$myrow["news_title"]?></td>
   <td width="50%"><?=$myrow["news_cont"]?></td>
  </tr>
   <?php
   }
   while ($myrow = mysql_fetch_array($rs));
    echo "</table>";
  }
  echo "<p align='center'>共有".$pages."页(".$page."/".$pages.")";
  for ($i=1;$i< $page;$i++)
   echo "<a href='fenye.php?page=".$i."'>[".$i ."]</a> ";
   echo "[".$page."]";
   for ($i=$page+1;$i<=$pages;$i++)
    echo "<a href='fenye.php?page=".$i."'>[".$i ."]</a> ";
    echo "</p>";
   ?>
  </body>
  </html>

5. Résumé

Cet exemple de code est dans Windows2000 Server+php4.4.0+ mysql5 Fonctionne bien sur .0.16. Le format de pagination affiché dans cet exemple est [1][2][3]…. Si vous souhaitez l'afficher sous la forme de "Page d'accueil Page précédente Page suivante Dernière page", veuillez ajouter le code suivant :

$first=1;
$prev=$page-1;
$next=$page+1;
$last=$pages;
if ($page > 1)
{
 echo "<a href='fenye.php?page=".$first."'>首页</a> ";
 echo "<a href='fenye.php?page=".$prev."'>上一页</a> ";
}
if ($page < $pages)
{
 echo "<a href='fenye.php?page=".$next."'>下一页</a> 
 echo "<a href='fenye.php?page=".$last."'>尾页</a> ";
}


En fait, écrire le code d'affichage de la pagination est très simple, à condition de comprendre comment ça marche. J'espère que cet article pourra aider les programmeurs Web qui ont besoin de cet aspect de la programmation.

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