Salut à tous,
Avant la mise en place de url rewriting sur mon site, mon système de pagination fonctionnait très bien.
Mon problème : quand je clic sur un numéro de page dans ma pagination au bas de la page, la pagination m'affiche une autre catégorie et pas un autre numéro de page dans la même catégorie !
Mon htaccess :
Note : quand je retire la première ligne "RewriteRule" je n'ai plus de problème avec la pagination mais la page ne s'affiche pas si elle n'a pas de numéro de page.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 Options +FollowSymlinks RewriteEngine on RewriteRule ^cours/([a-zA-Z0-9\-]+)-([0-9]+).html$ index.php?p=ad/category&title=$1&idcat=$2 [L] RewriteRule ^cours/([a-zA-Z0-9\-]+)-([0-9]+)-([0-9]*).html$ index.php?p=ad/category&title=$1&idcat=$2&page=$3 [L]
Ma page category.php (désolé d'avance pour le pavé mais je ne sais pas d'ou vient le problème)
Attention a ne pas confondre : "p" est la page que j'appelle en include dans ma structure, et "page" est bien le numéro de page (pagination).
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
91
92
93
94
95
96 <?php $idcat = (int) $_GET['idcat']; $req = $pdo->prepare('SELECT idcat, category FROM category WHERE idcat = ?'); $req->execute([$idcat]); $cat = $req->fetch(); if (!$cat) { header('Location: /index.html'); exit(); } // Pagination $itemsParPage = 15; $itemsTotalesReq = $pdo->query('SELECT idcat FROM ad WHERE idcat = '.$idcat.' AND status = 9'); $itemsTotales = $itemsTotalesReq->rowCount(); $pagesTotales = ceil($itemsTotales/$itemsParPage); if(isset($_GET['page']) AND !empty($_GET['page']) AND $_GET['page'] > 0 AND $_GET['page'] <= $pagesTotales) { $_GET['page'] = intval($_GET['page']); $pageCourante = $_GET['page']; } else { $pageCourante = 1; } $depart = ($pageCourante-1)*$itemsParPage; $title_page = 'Cours de '.$cat->category; $req = $pdo->prepare('SELECT idann, title, idcat, location, amount, dateann FROM ad WHERE idcat = '.$idcat.' AND status = 9 ORDER BY dateann DESC LIMIT '.$depart.','.$itemsParPage.''); $req->execute([$idcat]); ?> <div class="row"> <div class="col-md-9"> <h1><?= $title_page; ?></h1> <?php while ($ad = $req->fetch()) { ?> <div class="media"> <div class="media-left media-middle"> <img class="media-object" src="https://cdn2.iconfinder.com/data/icons/circle-icons-1/64/play-64.png" alt="..."> </div> <div class="media-body"> <h4 class="media-heading"><?= htmlspecialchars($ad->title); ?></h4> à proximité de : <?= htmlspecialchars($ad->location); ?> <?php if (isset($ad->amount)) { echo "<br>Prix d'une heure de cours : <strong>$ad->amount </strong>"; } $title_ad = url_rewriting($ad->title); ?><br><a href="/<?= $title_ad; ?>-<?= $ad->idann; ?>.html">Voir l'annonce</a> </div> </div> <?php } ?> <nav> <ul class="pagination"> <?php $title_category = url_rewriting($cat->category); for($i=1;$i<=$pagesTotales;$i++) { if($i == $pageCourante) { echo '<li class="active"><a href="'.$title_category.'-'.$cat->idcat.'-'.$i.'.html">'.$i.'</a></li>'; } else { echo '<li><a href="'.$title_category.'-'.$cat->idcat.'-'.$i.'.html">'.$i.'</a></li>'; } } ?> </ul> </nav> </div> <div class="col-md-3"> <h2>Instruments</h2> <?php $req = $pdo->query('SELECT idcat, category FROM category ORDER BY category'); while ($category = $req->fetch()) { $title_category = url_rewriting($category->category); echo '<span class="glyphicon glyphicon-chevron-right" aria-hidden="true"></span> <a href="/cours/'.$title_category.'-'.$category->idcat.'.html">'.$category->category.'</a><br>'; } ?> </div> </div>
merci pour votre aide précieuse !!
Partager