Cet article présente principalement l'implémentation de deux fonctions d'affichage de changement de page en PHP. Les amis intéressés peuvent s'y référer. J'espère qu'il sera utile à tout le monde.
Nous savons tous qu'il est très simple et intéressant d'utiliser php+mysql pour afficher toutes les informations de la base de données sur une page web. Lorsqu'il y a très peu d'informations sur la base de données, l'affichage de la page est toujours satisfaisant, mais lorsqu'il y en a. beaucoup d'informations sur la base de données Dans ce cas, l'affichage de la page deviendra très mauvais. Présentons comment afficher la quantité de données sur la page actuelle et comment implémenter la fonction de retournement dynamique.
Nous allons présenter ici l'implémentation de deux fonctions d'affichage de rotation de page :
Introduisez d'abord la syntaxe de base de données utilisée pour tourner les pages :
mysql_query("select * from table order by id desc");
Cette instruction de base de données est très familier. Il est utilisé pour rechercher des enregistrements et les afficher dans l'ordre inverse, mais il ne fonctionne pas dans la fonction de tournage de page. La syntaxe étendue suivante est la fonction principale du tournage de page :
mysql_query("select * from table order by id desc limit $start,$limit");
Le $. start here est la ligne de départ de la recherche dans la base de données, et $limit est la recherche commençant à partir de la ligne de départ et se terminant par les enregistrements $limit. Eh bien, avec cette fonction principale, nous pouvons démarrer la fonction de changement de page.
La première fonction de tournage de page : La fonction présentée ici est la plus simple des fonctions de tournage de page. Elle ne peut réaliser que le retournement de page en avant et en arrière. La fonction de ce site Web. est la fonction de rotation des pages du Very News and Download Center.
Présentez d'abord l'idée d'implémenter la fonction de tournage de page :
Déterminez d'abord le nombre d'enregistrements de données affichés de manière fixe sur la page actuelle, en supposant qu'il s'agit de 20 enregistrements, définissez $ La valeur de la limite est 20 : $limit=20;
Lors de l'affichage des enregistrements de la base de données, il doit commencer par le premier, donc la valeur initiale de $start est ici défini sur 0 :$start =0;
La réalisation de la fonction de tournage de page repose sur le changement dynamique de $start Lorsque vous tournez la page en arrière, $start régulièrement. ajoute $limit:$start+$limit; en avançant Lorsque vous tournez les pages, $start soustrait $limit régulièrement : $start-$limit;
Après avoir les idées ci-dessus, vous pouvez commencer conception du programme
page.php :
<? //设置当前页显示的数量(这个数量可任意设置) $limit=20; //初始化数据库搜索起始记录 if (!emptyempty($start)) $start=0; mysql_connect("localhost","",""); mysql_select_db(database); //设置数据库记录总数 $result=mysql_query("select * from table"); $num_max=mysql_numrows($result); $result=mysql_query("select * from table order by id desc limit $start,$limit); $num=mysql_numrows($result); echo "<table><tr><td>翻页功能</td></tr>"; if (!emptyempty($num)) { for ($i=0;$i<$num;$i++) { $val=mysql_result($result,$i,"val"); $val1=mysql_result($result,$i,"val1"); echo "<tr><td>$val</td><td>$val1</td></tr>"; } } echo "<tr><td>"; //设置向前翻页的跳转 $prve=$start-$limit; if ($prve>=0) { echo "<a href=page.php?start=$prve>prve</a>"; } //设置向后翻页的跳转 $next=$start+$limit; if ($next<$num_max) { echo "<a href=page.php?start=$next>next</a>"; } echo "</td></tr></table>"; ?>
Un programme pour les fonctions avant et arrière est terminé, mais cette fonction sera très lourde lors du traitement de plus de données pour display. Ce qui suit sera Continuer à présenter la fonction de tournage de page la plus puissante et la plus complexe - le tournage de page en boucle (je l'ai toujours appelé ainsi, car je ne trouve pas de nom plus approprié). :)
Le simple tournage de page. La fonction a été introduite plus tôt. La fonction de tournage de page présentée ci-dessous est plus puissante et complexe. Les forums et articles spéciaux sur ce site utilisent cette fonction de tournage de page circulaire
Le tournage de page circulaire est obtenu en tournant en avant et en arrière avec des chiffres. La performance spécifique est Le format est :
page : prve <<1 2 3 4 ....... 20 >> suivant
Les nombres à l'intérieur représentent chacun. Pour la page actuelle, prve et next ne sont pas seulement des retournements avant et arrière de la page actuelle, mais des retournements avant et arrière plus complexes contrôlés numériquement.
Comme toujours, avant de procéder à la conception du programme, clarifions d'abord nos idées. Je suggère aux lecteurs de le pratiquer eux-mêmes après avoir lu comment implémenter la fonction de tournage de page, car certaines des méthodes étudiées ici sont les idées peuvent être. relativement abstrait.
Tout d'abord, nous supposons hardiment qu'il y a plus de 1 000 enregistrements dans la base de données. Nous souhaitons actuellement afficher 25 enregistrements, et le contrôle d'inversion de nombre est de 20, nous avons donc les résultats d'affichage suivants :
<🎜. > page : 0 1 2 3 ......... 19 >> suivantLe résultat affiché après retournement :
page : prve <20 27 28 ....... 49 >> suivantBon, regardons les règles. Un nombre fixe affiche le nombre 25, et un nombre fixe. contrôle le doublement de 20. Nous pouvons utiliser ces deux nombres pour implémenter la fonction de tournage de page Définissez d'abord la variable d'affichage fixe :
$limit=20 ;
$start= 0;
Variable du numéro de page :$page;
Le programme pour afficher un Le cycle de numérotation des pages est le suivant :
<? ... $result=mysql_query("select * from table"); $num=mysql_numrows($result); for ($page=0;$page<($num/$limit);$page++) { echo $page; if ($page>0 && ($page%20)==0) { break; //退出循环 } } ?>
<? $limit=25; if (!emptyempty($start)) $start=0; if (!emptyempty($s)) $s=0; mysql_connect("localhost","",""); mysql_select_db(database); //统计数据库记录总数 $result=mysql_query("select * from table"); $num=mysql_numrows($result); $result=mysql_query("select * from table order by id limit $start,$limit"); $numb=mysql_numrows($result); echo "<table>"; if (!emptyempty($numb)) { for($i=0;$i<$numb;$i++) { $val=mysql_result($result,$i,"val"); $val1=mysql_result($result,$i,"val1"); echo "<tr><td>$val</td><td>$val1</td></tr>"; } } echo "</table>"; //数字循环翻页的控制 echo "<table>"; echo "<tr><td>页:</td>"; //前翻控制 if ($s>20) { if ($s==21) { $st=$s-21; } else { $st=$s-20; } $pstart=$st*$limit; echo "<td><a href=page.php?"; echo "start=$pstart&s=$st>prve</a></td>"; } echo "<td> >></td>"; //设置当前页对应页数无链接功能 $star=$start; //注意循环的初始附值,仔细想想为什么不是 0 for ($page=$s;$page<($num/$limit);$page++) { $start=$page*$limit; echo "<td>"; if($page!=$star/$limit) { echo "<a href=page.php?"; echo "start=$start&s=$s>"; } echo $page; if($page!=$star/$limit) { echo "</a>"; } echo "</td>"; //控制数字页面限制显示功能,控制只显示 20 页 if ($page>0 && ($page%20)==0) { if ($s==0) { $s=$s+21; } else { $s=$s+20; } $start=$start+$limit; if ((($num/$limit)-1)>$page) { echo "<td> <<</td><td><a href'page.php?"; echo "start=$start&s=$s>next</a></td>"; } //注意跳出循环的控制 break; } } echo "</tr></table>"; ?>
Résumé : Ce qui précède représente l'intégralité du contenu de cet article, j'espère qu'il sera utile à l'étude de chacun.
Recommandations associées :
Implémentation récursive PHP de la méthode d'expansion d'arbre hiérarchiqueUtilisation et exemple d'analyse de la fonction de tableau PHP array_multisort() Utilisation de la fonction PHP import_request_variables() et exemple d'analyseCe 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!