Bonsoir,
voila, j'ai besoin de faire une pagination sur quelques pages de mon site, j'ai téléchargé une class sur un site pour ne pas réinventer la roue.. le code fonctionne et tout mais une class c'est bien fait pour être réutilisable et appelée sur différente pages du site au besoin n'est-ce pas ? pourquoi donc, je vois des portions de code html dans la class
la class :
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
97 <?php class paginate { private $db; function __construct($DB_con) { $this->db = $DB_con; } public function dataview($query) { $stmt = $this->db->prepare($query); $stmt->execute(); if($stmt->rowCount()>0) { while($row=$stmt->fetch(PDO::FETCH_ASSOC)) { ?> <tr> <td><?php echo $row['tuts_id']; ?></td> <td><?php echo $row['tuts_title']; ?></td> <td><a href="<?php echo $row['tuts_link']; ?>">visit</a></td> </tr> <?php } } else { ?> <tr> <td>Nothing here...</td> </tr> <?php } } public function paging($query,$records_per_page) { $starting_position=0; if(isset($_GET["page_no"])) { $starting_position=($_GET["page_no"]-1)*$records_per_page; } $query2=$query." limit $starting_position,$records_per_page"; return $query2; } public function paginglink($query,$records_per_page) { $self = $_SERVER['PHP_SELF']; $stmt = $this->db->prepare($query); $stmt->execute(); $total_no_of_records = $stmt->rowCount(); if($total_no_of_records > 0) { ?><tr><td colspan="3"><?php $total_no_of_pages=ceil($total_no_of_records/$records_per_page); $current_page=1; if(isset($_GET["page_no"])) { $current_page=$_GET["page_no"]; } if($current_page!=1) { $previous =$current_page-1; echo "<a href='".$self."?page_no=1'>First</a> "; echo "<a href='".$self."?page_no=".$previous."'>Previous</a> "; } for($i=1;$i<=$total_no_of_pages;$i++) { if($i==$current_page) { echo "<strong><a href='".$self."?page_no=".$i."' style='color:red;text-decoration:none'>".$i."</a></strong> "; } else { echo "<a href='".$self."?page_no=".$i."'>".$i."</a> "; } } if($current_page!=$total_no_of_pages) { $next=$current_page+1; echo "<a href='".$self."?page_no=".$next."'>Next</a> "; echo "<a href='".$self."?page_no=".$total_no_of_pages."'>Last</a> "; } ?></td></tr><?php } } }
index.php
il y a quasi aucun code html dans index.php ! mon problème c'est que je souhaite gérer l'affichage du contenu dans index.php et non directement dans la class car sinon la class n'est pas réutilisable sur une autre page de mon site qui nécessitera surement un autre affichage
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 <?php include_once("dbconfig.php"); // connexion à la bdd include_once 'class.paging.php'; $paginate = new paginate($DB_con); ?> <table align="center" border="1" width="100%" height="100%" id="data"> <?php $query = "SELECT * FROM tbl_tutorials"; $records_per_page=3; $newquery = $paginate->paging($query,$records_per_page); $paginate->dataview($newquery); $paginate->paginglink($query,$records_per_page); ?> </table>..
bien-sur pour l'affichage des numéros de pages, cela ne me pose aucun problème qu'il reste dans la class c'est logique..
J'ai regardé attentivement la class pour mettre toute la partie affichage des données dans index.php mais j'ai du mal.. je ne sais même pas si c'est bien possible et logique mon raisonnement..
alors, oui je sais qu'il est préférable de poser la question à l'auteur, mais je ne parle pas très bien anglais et j'ai mes habitudes sur dvp
je ne sais pas si je suis bien précis dans mes explications.. merci à vous pour votre aide en tout cas.
Partager