Bonjour,
Je souhaiterais afficher les résultats d’une table de ma base de donnée, mais avec un système de pagination et une mise en forme spéciale : en fait, il faudrait que mes entrées s’affichent dans un tableau, et qu’une page contienne par exemple 9 entrées. Donc en gros je voudrais que celles-ci s’affichent dans un tableau de 3 lignes et 3 colonnes, comme ceci :
Entree18 Entree17 Entree16
Entree15 Entree14 Entree13
Entree12 Entree11 Entree10
Page 1 sur 2
Entree9 Entree8 Entree7
Entree6 Entree5 Entree4
Entree3 Entree2 Entree1
Page 2 sur 2
ETC…..
Voici la structure de ma base de données :
Et voici le code de ma page index.php :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33 -- -- Structure de la table `liste` -- CREATE TABLE `liste` ( `id` int(11) NOT NULL auto_increment, `nom` varchar(30) collate utf8_unicode_ci NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=19 ; -- -- Contenu de la table `liste` -- INSERT INTO `liste` (`id`, `nom`) VALUES (1, 'Entree1'), (2, 'Entree2'), (3, 'Entree3'), (4, 'Entree4'), (5, 'Entree5'), (6, 'Entree6'), (7, 'Entree7'), (8, 'Entree8'), (9, 'Entree9'), (10, 'Entree10'), (11, 'Entree11'), (12, 'Entree12'), (13, 'Entree13'), (14, 'Entree14'), (15, 'Entree15'), (16, 'Entree16'), (17, 'Entree17'), (18, 'Entree18');
Je pense que c’est à ce niveau là qu’il faudrait modifier quelque chose :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73 <?php include("mysql/mysql_connect.php"); ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Document sans titre</title> </head> <body> <?php // On écrit les liens vers chacune des pages // ----------------------------------------- // On met dans une variable le nombre de messages qu'on veut par page $nombreDeMessagesParPage = 3; // Essayez de changer ce nombre pour voir :o) // On récupère le nombre total de messages $retour = mysql_query('SELECT COUNT(*) AS nb_messages FROM liste'); $donnees = mysql_fetch_array($retour); $totalDesMessages = $donnees['nb_messages']; // On calcule le nombre de pages à créer $nombreDePages = ceil($totalDesMessages / $nombreDeMessagesParPage); // Puis on fait une boucle pour écrire les liens vers chacune des pages ?> </p> <p> <?php // --------------- Etape 3 --------------- // Maintenant, on va afficher les messages // --------------------------------------- if (isset($_GET['page'])) { $page = $_GET['page']; // On récupère le numéro de la page indiqué dans l'adresse (guestbook.php?page=4) } else // La variable n'existe pas, c'est la première fois qu'on charge la page { $page = 1; // On se met sur la page 1 (par défaut) } // On calcule le numéro du premier message qu'on prend pour le LIMIT de MySQL $premierMessageAafficher = ($page - 1) * $nombreDeMessagesParPage; $reponse = mysql_query('SELECT * FROM images ORDER BY id DESC LIMIT ' . $premierMessageAafficher . ', ' . $nombreDeMessagesParPage); while ($donnees = mysql_fetch_array($reponse)) { print $donnees['nom'].'<br /><br />'; } ?> </p> <p><br /> <br /> </p> <hr size="1"/> <?php echo 'Page : '; for ($i = 1 ; $i <= $nombreDePages ; $i++) { echo '<a class="liens-text" href="index.php?page=' . $i . '">' . $i . '</a> '; } ?> </body> </html> <?php include("mysql/mysql_disconnect.php"); ?>
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 while ($donnees = mysql_fetch_array($reponse)) { print $donnees['nom'].'<br /><br />'; }
S'il vous plait aidez-moi......
Partager