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. Lorsque les informations de la base de données sont très petites, l'affichage de la page est toujours satisfaisant, mais lorsqu'il y a beaucoup d'informations sur la base de données, l'affichage de la page La situation va devenir très mauvaise. Introduisons comment afficher le nombre de données sur la page actuelle et comment implémenter la fonction de retournement dynamique.
Nous présenterons ici l'implémentation de deux fonctions d'affichage de retournement de page :
-------------------------------------------------- ----------
Permettez-moi d'abord de présenter la syntaxe de la 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 familière. Elle est utilisée pour rechercher des enregistrements et les afficher dans l'ordre inverse, mais elle ne le peut pas. Il joue un rôle dans la fonction de tournage de page, et la syntaxe étendue suivante est la fonction principale du tournage de page :
mysql_query
("select * from table order by id desc limit $start,$limit");
La ligne de départ de la recherche, $limit, consiste à rechercher de la ligne de début à la fin des 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 parmi les fonctions de changement de page. Elle ne peut réaliser que le changement de page en avant et en arrière. La fonction de changement de page du centre spécial d'actualités et de téléchargement est la suivante
. fonction de tournage de page. Idées :
Déterminez d'abord le nombre d'enregistrements de données affichés de manière fixe sur la page actuelle. Supposons qu'il y ait 20 enregistrements. Définissez la valeur de $limit sur 20 : $limit=20
lors de l'affichage des enregistrements de base de données, ils doivent commencer par le premier. donc définissez $start ici. La valeur initiale de est 0 : $start=0;
et 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 ajoute régulièrement $limit : $start+. $limit; et en tournant la page, $start soustrait régulièrement $limit : $start-$limit
avec les idées ci-dessus, vous pouvez commencer à concevoir le programme page.php :
<?
//Définissez le numéro affiché sur la page actuelle (ce numéro peut être défini arbitrairement)
$limit=20;
//Initialiser l'enregistrement de départ de la recherche dans la base de données
if (!empty($start)) $start=0;
mysql_connect("localhost","","");
mysql_select_db(database);
//Définir le nombre total d'enregistrements de la base de données
$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>Fonction de changement de page</td></tr>"
if (!empty($num)) {
pour ($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>" ;
//Définit le saut de page vers l'avant
$prve=$début-$limite ;
si ($prve>=0) {
echo "<a href=page.php?start=$prve>prve</a>" ;
}
//Définit le saut à la page en arrière
$suivant=$début+$limite ;
si ($suivant<$num_max) {
echo "<a href=page.php?start=$next>suivant</a>" ;
}
echo "</td></tr></table>";
?>
Un programme avec des fonctions de retournement avant et arrière a été terminé. Cependant, cette fonction sera très lourde lors du traitement de plus de données à afficher. Ce qui suit continuera à introduire une fonction de rotation de page plus puissante et complexe - la rotation de page (I. Je l'ai toujours appelé ainsi, car je ne trouve pas de nom plus approprié). :)
La fonction de tournage de page simple a été introduite plus tôt. La fonction de tournage de page présentée ci-dessous est plus puissante et plus complexe. Le forum lui-même et un forum très spécial à ce sujet. site L'article utilise cette fonction de rotation de page en boucle.
Le changement de page cyclique est réalisé en tournant en avant et en arrière avec des nombres. L'expression spécifique est :
page : prve << 1 2 3 4 ....... 20 >>
Les nombres dans next représentent chaque page en cours. et les retournements vers l'arrière ne sont plus simplement 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, veuillez d'abord clarifier vos idées. Je recommande aux lecteurs de lire comment après avoir réalisé le. fonction de tourner les pages en boucle, vous pouvez vous entraîner vous-même, car certaines des méthodes et idées étudiées ici peuvent être relativement abstraites.
Premièrement, nous supposons hardiment qu'il y a plus de 1 000 enregistrements dans la base de données. Nous espérons qu'il y en a 25. actuellement affiché, et le numéro Le flip control est 20, on a donc le résultat d'affichage suivant :
page : 0 1 2 3 ......... 19 >> prochain
résultat d'affichage après retournement :
page : prve <<20 27 28 ... .... 49 >> suivantD'accord
, regardons les règles. Un nombre d'affichage fixe est 25, et un nombre fixe contrôle le doublement de 20. Nous pouvons utiliser ces deux nombres pour implémenter le changement de page. fonction ;
premier jeu Variables affichées fixes :
$limite=20 ;
Paramètres initiaux des variables de la base de données :
$début=0 ;
Le nombre total d'enregistrements de la base de données est : $num ;
Variable de numéro de page : $page;
Le programme pour un affichage en boucle du numéro de page est le suivant :
<?
...
$result=mysql_query("select * from table");
$num=mysql_numrows($result);
pour ($page=0;$page<($num/$limit);$page++) {
écho $page ;
si ($page>0 && ($page%20)==0) {
break; //Quitter la boucle
}
}
?>
À l'exception de l'affichage des nombres, ce code n'implémente aucune autre fonction. Comme il y a plus de nombres pour contrôler le retournement, plusieurs variables doivent être utilisées pour marquer et identifier ces quantités de contrôle. $s est utilisé pour les marquer ici ; utilisé Pour contrôler le contrôle numérique de rotation des pages, vous pouvez maintenant consulter le code page.php complet qui implémente le cycle de rotation des pages :
<?
$limite=25 ;
si (!empty($start)) $start=0;
if (!empty($s)) $s=0;
mysql_connect("localhost","","");
mysql_select_db(database);
//Nombre total statistique d'enregistrements de la base de données
$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>" ;
si (!empty ($ engourdi)) {
pour($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>"
//Contrôle du tournage des pages numériques
echo "<table>" ;
echo "<tr><td>Page :</td>" ;
//Flip forward control
si ($s>20) {
si ($s==21) {
$st=$s-21 ;
} autre {
$st=$s-20 ;
}
$pstart=$st*$limite ;
echo "<td><a href=page.php?";
echo "start=$pstart&s=$st>prve</a></td>";
}
echo "<td> >></td>"
//Définir le nombre de pages correspondant à la page courante sans fonction de lien
$star=$start;
//Faites attention à la valeur initiale de la boucle et réfléchissez bien à la raison pour laquelle elle n'est pas 0
pour ($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) {
écho "</a>";
}
echo "</td>"
//Contrôler la fonction d'affichage de la limite de pages numériques, contrôler pour afficher seulement 20 pages
si ($page>0 && ($page%20)==0) {
si ($s==0) {
$s=$s+21 ;
} autre {
$s=$s+20 ;
}
$start=$start+$limit;
if ((($num/$limit)-1)>$page) {
echo "<td> <<</td><td><a href'page.php ?";
echo "start=$start&s=$s>suivant</a></td>" ;
}
//Faites attention au contrôle de la sortie de la boucle
casser;
}
}
echo "</tr></table>";
?>
Le programme ci-dessus peut compléter une puissante fonction de tournage de page en boucle.
Il existe également une fonction de tournage de page qui consiste à tourner la page de soumission, c'est-à-dire à ajouter la soumission de données dans le formulaire de soumission, puis le programme passe à la page correspondante. est relativement facile à mettre en œuvre C'est simple, je laisse aux lecteurs le soin de le compléter eux-mêmes, et je ne le présenterai pas ici...