Lors du développement de sites Web, il est souvent nécessaire d’interroger des données et de les afficher dans des pages. Lorsque la quantité de données est très importante, une pagination est nécessaire pour garantir l'efficacité des requêtes et l'expérience utilisateur. Cet article explique comment utiliser PHP pour interroger des données, tourner des pages et afficher des images sur chaque page.
1. Requête de données Tout d’abord, nous devons obtenir les données que nous souhaitons interroger et les stocker dans la base de données. Ici, nous prenons comme exemple un simple tableau d'informations sur les étudiants, comprenant des champs tels que le nom, le sexe, l'âge, les notes, etc. Nous utilisons la base de données MySQL pour la démonstration.
CREATE TABLE `students` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(50) NOT NULL, `gender` varchar(10) NOT NULL, `age` int(11) NOT NULL, `score` int(11) NOT NULL, `picture` varchar(100) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
Ensuite, nous insérons quelques données dans le tableau, ainsi que les photos des élèves. Ici, nous utilisons student1.jpg, student2.jpg et d'autres images.
INSERT INTO `students` (`name`, `gender`, `age`, `score`, `picture`) VALUES ('Tom', 'M', 18, 80, 'student1.jpg'); INSERT INTO `students` (`name`, `gender`, `age`, `score`, `picture`) VALUES ('Jerry', 'F', 17, 90, 'student2.jpg'); INSERT INTO `students` (`name`, `gender`, `age`, `score`, `picture`) VALUES ('Mike', 'M', 19, 75, 'student3.jpg'); INSERT INTO `students` (`name`, `gender`, `age`, `score`, `picture`) VALUES ('Mary', 'F', 18, 85, 'student4.jpg'); INSERT INTO `students` (`name`, `gender`, `age`, `score`, `picture`) VALUES ('John', 'M', 20, 70, 'student5.jpg'); INSERT INTO `students` (`name`, `gender`, `age`, `score`, `picture`) VALUES ('Jane', 'F', 19, 95, 'student6.jpg');
2. La page de données se tourne
Ensuite, nous devons effectuer une requête de données et une pagination en PHP. Nous définissons que chaque page affiche 5 éléments de données, puis calculons le nombre total de pages et le numéro de page actuel. L'exemple de code est le suivant :
<?php // 连接数据库 $conn = mysqli_connect("localhost", "username", "password", "database"); // 每页显示的记录数 $pageSize = 5; // 当前页码 $pageNum = isset($_GET['pageNum']) ? intval($_GET['pageNum']) : 1; // 计算总记录数和总页数 $sql = "SELECT count(*) FROM students"; $result = mysqli_query($conn, $sql); $row = mysqli_fetch_row($result); $totalRecords = $row[0]; $totalPages = ceil($totalRecords / $pageSize); // 计算查询起始位置 $startIndex = ($pageNum - 1) * $pageSize; // 查询数据 $sql = "SELECT * FROM students LIMIT $startIndex, $pageSize"; $result = mysqli_query($conn, $sql); ?>
Dans le code ci-dessus, nous nous connectons d'abord à la base de données et définissons le nombre d'enregistrements affichés sur chaque page et le numéro de la page actuelle. Ensuite, calculez le nombre total d'enregistrements et le nombre total de pages, puis calculez la position de départ de la requête en fonction du numéro de page actuel. Enfin, effectuez une requête de données via le mot-clé LIMIT et renvoyez les résultats.
3. Afficher les photos
Ensuite, nous devons afficher les données ainsi que la photo de chaque élève. Ici, nous utilisons la balise HTML pour afficher les images.
<?php while ($row = mysqli_fetch_assoc($result)): ?> <div> <h3><?php echo $row['name']; ?></h3> <p>性别:<?php echo $row['gender']; ?></p> <p>年龄:<?php echo $row['age']; ?></p> <p>成绩:<?php echo $row['score']; ?></p> <img src="<?php echo $row['picture']; ?>" width="100"/> </div> <?php endwhile; ?>
Dans le code ci-dessus, nous utilisons une boucle while pour parcourir les résultats de la requête et afficher la photo de chaque élève à l'aide de la balise
Il convient de noter que l'attribut src de la balise img doit spécifier le chemin correct de l'image. 4. Navigation par pages Enfin, nous devons afficher la navigation par page en bas de la page pour permettre aux utilisateurs de tourner les pages plus facilement.
L'exemple de code est le suivant :
<div> <?php if ($pageNum > 1): ?> <a href="?pageNum=<?php echo $pageNum - 1; ?>">上一页</a> <?php endif; ?> <?php for ($i = 1; $i <= $totalPages; $i++): ?> <?php if ($i == $pageNum): ?> <span><?php echo $i; ?></span> <?php else: ?> <a href="?pageNum=<?php echo $i; ?>"><?php echo $i; ?></a> <?php endif; ?> <?php endfor; ?> <?php if ($pageNum < $totalPages): ?> <a href="?pageNum=<?php echo $pageNum + 1; ?>">下一页</a> <?php endif; ?> </div>
Dans le code ci-dessus, nous déterminons d'abord si le numéro de page actuel est supérieur à 1, et si c'est le cas, affichons le bouton "Page précédente". Utilisez ensuite une boucle for pour parcourir tous les numéros de page et générer des liens de navigation. Si le numéro de la page courante est égal à la variable de boucle $i, le numéro de la page courante est affiché, sinon le lien est affiché.
Enfin, déterminez si le numéro de page actuel est inférieur au nombre total de pages. Si tel est le cas, affichez le bouton « Page suivante ». Résumer Cet article explique comment utiliser PHP pour interroger des données, tourner des pages et afficher des images sur chaque page. Il est à noter que afin de garantir les performances de la page, il est recommandé d'utiliser des vignettes ou de limiter la taille de l'image lors de l'affichage des images. De plus, dans le développement réel, des problèmes tels que les conditions d'interrogation des données et le tri des données doivent également être pris en compte.
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!