Bonjour les gens
Dans mon site, j'ai une table dans ma BDD avec un certain nombre d'entrées (une pour chaque article). Je les affiche sur différentes pages :
- L'une s'appelle "Derniers Ajouts" et montre toutes les entrées par ordre décroissant et avec un système automatique de pages (5 articles par page)
- Les 3 autres sont "Guitares", "Basses", et "Autres", chaque page n'affiche que les entrées dont la valeur du champ "type" est respectivement égale à "guitare", "basse" ou "autre" (toujours avec le même système de pages automatiques). Elles constituent en quelques sortes des sous-catégories.
Mon problème est que, par exemple, la catégorie "Guitares" n'affiche que 3 entrées alors qu'il en existe 5 dont le champ "type" est égal à "guitare".
J'ai ensuite remarqué que en fait la catégorie "Guitares" n'affiche que les entrées concernées (type="guitare") étant aussi présentes sur la 1ere page de la catégorie "Derniers Ajouts", et elle ignore les guitares étant présentes sur les autres pages, alors que ces deux catégories devraient être indépendantes.
Voici les liens pour que vous puissiez constater le problème :
www.rock-design.fr/derniers_ajouts.php
www.rock-design.fr/guitares.php
C'était difficile à expliquer, j'espère que j'ai été clair
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
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90 <?php mysql_connect("", "", ""); mysql_select_db(""); // On met dans une variable le nombre de messages qu'on veut par page $nombreDeMessagesParPage = 5; // On récupère le nombre total de messages $retour = mysql_query('SELECT COUNT(*) AS nb_messages FROM instruments WHERE active=1'); $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 ?> <div class="cadre_titre"><h1>Derniers Ajouts</h1><p><?php echo 'Il y a ' . $totalDesMessages . ' instruments'; ?></p></div> <p class="pages"> <?php if (isset($_GET['page'])) { $page = $_GET['page']; // On récupère le numéro de la page indiqué dans l'adresse (livreor.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) } echo 'Page : '; for ($i = 1 ; $i <= $nombreDePages ; $i++) { if ($i != $page) { echo '<a href="derniers_ajouts.php?page=' . $i . '">' . $i . '</a> '; } else { echo $i . ' ' ; } } ?></p> <?php // 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 instruments ORDER BY id DESC LIMIT ' . $premierMessageAafficher . ', ' . $nombreDeMessagesParPage); while ($donnees = mysql_fetch_array($reponse) ) { if ($donnees['active'] == 1) { $TailleImage = getimagesize ('photos/instruments/' . $donnees['image']); $width = ($TailleImage[0] + 16) ; $height = ($TailleImage[1] + 16) ; ?> <div><p> ICI J'AFFICHE LE CONTENU, JE VOUS ÉPARGNE LE CODE ÇA FAIT LOURD </p></div> <p class="pages"><?php } } //Et on remet les pages en fin de page if (isset($_GET['page'])) { $page = $_GET['page']; // On récupère le numéro de la page indiqué dans l'adresse (livreor.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) } echo 'Page : '; for ($i = 1 ; $i <= $nombreDePages ; $i++) { if ($i != $page) { echo '<a href="derniers_ajouts.php?page=' . $i . '">' . $i . '</a> '; } else { echo $i . ' ' ; } } mysql_close(); // Déconnexion de MySQL
Voici le code de "Guitares" (semblable à celui de "Basses" et "Autres", c'est lui qui n'affiche pas tout):
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
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89 mysql_connect("", "", ""); mysql_select_db(""); // On met dans une variable le nombre de messages qu'on veut par page $nombreDeMessagesParPage = 5; // On récupère le nombre total de messages $retour = mysql_query('SELECT COUNT(*) AS nb_messages FROM instruments WHERE active=1 AND type="guitare"'); $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 ?> <div class="cadre_titre"><h1>Guitares</h1><p><?php echo 'Il y a ' . $totalDesMessages . ' guitares'; ?></p></div> <p class="pages"> <p class="pages"><?php if (isset($_GET['page'])) { $page = $_GET['page']; // On récupère le numéro de la page indiqué dans l'adresse (livreor.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) } echo 'Page : '; for ($i = 1 ; $i <= $nombreDePages ; $i++) { if ($i != $page) { echo '<a href="guitares.php?page=' . $i . '">' . $i . '</a> '; } else { echo $i . ' ' ; } } ?></p> <?php // 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 instruments ORDER BY id DESC LIMIT ' . $premierMessageAafficher . ', ' . $nombreDeMessagesParPage); while ($donnees = mysql_fetch_array($reponse) ) { if ($donnees['type'] == guitare) { if ($donnees['active'] == 1) { $TailleImage = getimagesize ('photos/instruments/' . $donnees['image']); $width = ($TailleImage[0] + 16) ; $height = ($TailleImage[1] + 16) ; ?> <div><p> ICI J'AFFICHE LE CONTENU, JE VOUS ÉPARGNE LE CODE ÇA FAIT LOURD </p></div> <p class="pages"><?php } } } if (isset($_GET['page'])) { $page = $_GET['page']; // On récupère le numéro de la page indiqué dans l'adresse (livreor.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) } echo 'Page : '; for ($i = 1 ; $i <= $nombreDePages ; $i++) { if ($i != $page) { echo '<a href="guitares.php?page=' . $i . '">' . $i . '</a> '; } else { echo $i . ' ' ; } } mysql_close(); // Déconnexion de MySQL
Merci d'avance pour votre réponse, j'ai vraiment besoin de votre aide
Partager