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 :

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');
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
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");
?>
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
while ($donnees = mysql_fetch_array($reponse))
{
        print $donnees['nom'].'<br /><br />';
}

S'il vous plait aidez-moi......