Lors de la programmation d'une base de données réseau PHP, il est inévitable de prendre en compte l'affichage des résultats des enregistrements de la base de données. Afin de présenter une belle page et d'accélérer la vitesse de chargement des pages, les enregistrements de la base de données doivent être affichés en pages.
Je vais maintenant partager avec vous un exemple d'affichage par pagination des enregistrements de la base de données MySQL parfaitement intégré à PHP.
La base de données MySQL est Xinxiku et la table de données est une blague. Sa définition de l'instruction SQL est la suivante :
créer une blague de table (
id int(5) non nul auto_increment,
biaoti varchar(40) non nul,
texte neirong non nul,
clé primaire (id)
);
Description du champ :
id : numéro d'enregistrement, incrémenté automatiquement et la clé primaire
biaoti : titre
neirong : contenu
<html>
<head>
<title>Méthode d'implémentation de l'affichage de la pagination</title>
<meta http-equiv="content-type" content="text/html;
<script language="javascript">
/ * Définir une fenêtre pop-up pour afficher un contenu spécifique*/
function popwin(url)
{
window.open(url,"","left=340, top=190, height=280, width=400, redimensionnable=yes, scrollbars = oui, status=no, toolbar=no, menubar=no, location=no”);
}
</script>
</head>
<body leftmargin=0 topmargin=0 rightmargin=0 >
<?php
//Se connecter à la base de données
$db =mysql_connect("localhost","root","");
mysql_select_db("xinxiku",$db);
//Définit
le nombre d'enregistrements affichés sur chaque page
$pagesize=15;
enregistre et calcule lenombre
total de pages. Utilisez
$res=mysql_query(”select count(*) from joke ”,$db);
$myrow = mysql_fetch_array($res)
;
des pages
$pages=intval( $numrows/$pagesize);
if ($numrows%$pagesize)
$pages++;
//Déterminez si le numéro de page est défini ou non. Sinon, définissez-le comme page d'accueil
if (!isset( $page))
$page=1;
//Déterminer Aller au numéro de page
if (isset($ys))
if ($ys>$pages)
$page=$pages;
else
$page=$ys
;
$offset=$pagesize*($page- 1);
//Obtenir les enregistrements
$res=mysql_query("select id,biaoti from joke order by id desc limit $offset,$pagesize" ,$db)
;
if ($myrow = mysql_fetch_array($res) )
{
$i=0;
?>
<table width=”101%” border=”0″ Cellpacing=”0″ cellpadding=”0″>
<tr>
<td width= ”5%” bgcolor=”#e1e9fb” ></td>
<td width=”95%” bgcolor=”#e1e9fb”><font color=”#ff6666″ size=”2″>Contenu</font>< /td>
</tr>
<?php
do {
$i++;
?>
<tr>
<td width=”5%” bgcolor=”#e6f2ff”><?php echo $i;?></td>
<td width=”95%” bgcolor=”# e6f2ff”><font size="2″>
<a href="javascript:popwin('jokenr.php?id=<?php echo $myrow[0];?>' )" ><?php echo $maligne[ 1];?></a></font></td>
</tr>
<?php
}
while ($maligne = mysql_fetch_array($res));
echo “< /table>” ;
}
//Afficher le nombre total de pages
echo "<div align='center'>Il y a des pages ".$pages." (".$page."/".$pages.")<br> ";
//Afficher le nombre de pages
pour ($i =1;$i<$page;$i++)
echo “<a href='fy.php?page=”.$i.”'>Page “.$ je ."</a> ";
echo "Page ".$page."page";
pour ($i=$page+1;$i<=$pages;$i++)
echo "<a href='fy. php?page=".$i."'> Page ".$i."</a> ";
echo "<br>";
//Afficher le numéro de page
echo "<form action='fy.php' méthode ='post'> ";
//Calculer les valeurs de page de la page d'accueil, de la page précédente, de la page suivante et de la dernière page
$first=1;
$prev=$page-1;
$next=$page+1;
$last= $pages ;
si ($page>1)
{
echo "<a href='fy.php?page=".$first."'>Page d'accueil</a> ";
echo "<a href='fy.php?page=".$prev."'>
Précédent. page</a> ";
}
if ($page<$pages)
{
echo "<a href='fy.php?page=".$next."'>Page suivante</a> ";
echo " < a href='fy.php?page=”.$last.”'>Dernière page</a> “;
}
echo “Aller à <input type=text name=’ys’ size=’2′ value=” . $page.">Page";
echo "<input type=submit name='submit' value='go'>";
echo
"</form>
"
;
</html>
Page précédente 1 23 Page suivante
Description du programme :
1. Description de la variable
Variable $page : stocke le numéro de la page actuelle à afficher.
Variable $pages : stocke le nombre total de pages.
Variable $offset : stocke le décalage du numéro de page actuel.
Variable $pagesize : stocke le nombre d'enregistrements affichés sur chaque page.
2. Description de l'instruction MySQL
sélectionnez l'identifiant,biaoti dans l'ordre des blagues par limite d'identifiant desc $offset,$pagesize
La clause limit est utilisée pour limiter le nombre de lignes renvoyées par l'instruction select. Le premier paramètre de limit spécifie le décalage de la première ligne à renvoyer et le deuxième paramètre spécifie le nombre maximum de lignes à renvoyer, pagesize.
Principe de mise en œuvre :
transmettez la page variable du numéro de page dans le programme, calculez le décalage de position d'enregistrement initial en fonction de la valeur de page transmise lors de la récupération des enregistrements, puis obtenez l'ensemble d'enregistrements en fonction du nombre d'enregistrements devant être affichés dans chaque taille de page. Affichez-le ensuite.
Fonction de mise en œuvre du programme :
le programme propose deux méthodes d'affichage de page (en supposant que la page actuelle est la troisième page).
1. Affichez tous les numéros de page et fournissez des liens en fonction du nombre de pages. Aucun lien n'est fourni pour la page actuelle. Cela convient lorsque le nombre de pages n'est pas trop important. Le style est illustré dans la figure 1 :
/ShowImg.asp?p=/2006-3-29/19430aimagea1.jpg
2. Fournissez le nombre total de pages, tournez les pages jusqu'à la page d'accueil fournie, la page précédente, la page suivante, la dernière page et passez à celle-ci. Bien entendu, si la page actuelle est toutes les pages, les liens vers la page d'accueil et la page précédente ne seront pas fournis. Si la page actuelle est la dernière page, les liens vers la page suivante et la dernière page ne seront pas fournis.
Page précédente 1 2 3