Bonjour,
J'ai le code suivant qui numérote mes enregistrements :
Mon comptage fonctionne (1...40). Mais pas totalement. En effet, lorsque je passe à la page suivante de mes enregistrements, le comptage recommence à 1 alors que je souhaite qu'il s'incrémente en continu au fil des pages (41...). Mon problème est lié à la pagination dont voici le code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 <?php $ie2 = 1;//initialisation boucle pour comptage enregistrement while ($data = mysql_fetch_assoc($resultat_livre)) { echo '<p class="numlivre">'.$ie2.'.<p/>';//affichage numérotation echo '<p class="titre"><a href="fiche.php?id_livre='.$data['id_livre'].'">'.$data ['titre'].'</a></p>'; $ie2 ++;//boucle pour compter livres } ?>
Ce système de pagination fait appel à la fonction suivante :
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 //DEBUT PAGINATION /* Numero de page (1 par défaut) */ if( isset($_GET['page']) && is_numeric($_GET['page']) ) $page = $_GET['page']; else $page = 1; /* Nombre d'info par page */ $pagination = 40; /* Numéro du 1er enregistrement à lire */ $limit_start = ($page - 1) * $pagination; $requete_pagination = "SELECT COUNT(*) AS nb_total FROM livre "; $resultat_pagination = mysql_query($requete_pagination) or die('Erreur SQL !'.$requete_pagination.'<br>'.mysql_error()); $nb_total = mysql_fetch_array($resultat_pagination); $nb_total = $nb_total['nb_total']; /* Pagination */ $nb_pages = ceil($nb_total / $pagination); $choix_tri= (iSset($_GET['tri']) ? $_GET['tri'] : null); $choix_filtre= (iSset($_GET['filtre']) ? $_GET['filtre'] : null); $sens_tri= (iSset($_GET['senstri']) ? $_GET['senstri'] : null); $clesearch = (iSset($_GET['clesearch']) ? $_GET['clesearch'] : null); $search = (iSset($_GET['search']) ? $_GET['search'] : null); // Affichage echo '<p class="pagination_bas">' . pagination($page, $nb_pages,'?page=%d&tri='.$choix_tri.'&filtre='.$choix_filtre.'&senstri='.$sens_tri.'&clesearch='.$clesearch.'&search='.$search) . '</p>';
Voyez-vous comment parvenir "au comptage en continu" que je souhaite obtenir ? Merci d'avance.
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 function pagination($current_page, $nb_pages, $link='?page=%d', $around=2, $firstlast=2) { $pagination = ''; $link = preg_replace('`%([^d])`', '%%$1', $link); if ( !preg_match('`(?<!%)%d`', $link) ) $link .= '%d'; if ( $nb_pages > 1 ) { // Lien précédent if ( $current_page > 1 ) $pagination .= '<a class="prevnext" href="'.sprintf($link, $current_page-1).'" title="Page précédente">« Précédent</a>'; else $pagination .= '<span class="prevnext disabled">« Précédent</span>'; // Lien(s) début for ( $i=1 ; $i<=$firstlast ; $i++ ) { $pagination .= ' '; $pagination .= ($current_page==$i) ? '<span class="current">'.$i.'</span>' : '<a href="'.sprintf($link, $i).'">'.$i.'</a>'; } // ... après pages début ? if ( ($current_page-$around) > $firstlast+1 ) $pagination .= ' …'; // On boucle autour de la page courante $start = ($current_page-$around)>$firstlast ? $current_page-$around : $firstlast+1; $end = ($current_page+$around)<=($nb_pages-$firstlast) ? $current_page+$around : $nb_pages-$firstlast; for ( $i=$start ; $i<=$end ; $i++ ) { $pagination .= ' '; if ( $i==$current_page ) $pagination .= '<span class="current">'.$i.'</span>'; else $pagination .= '<a href="'.sprintf($link, $i).'">'.$i.'</a>'; } // ... avant page nb_pages ? if ( ($current_page+$around) < $nb_pages-$firstlast ) $pagination .= ' …'; // Lien(s) fin $start = $nb_pages-$firstlast+1; if( $start <= $firstlast ) $start = $firstlast+1; for ( $i=$start ; $i<=$nb_pages ; $i++ ) { $pagination .= ' '; $pagination .= ($current_page==$i) ? '<span class="current">'.$i.'</span>' : '<a href="'.sprintf($link, $i).'">'.$i.'</a>'; } // Lien suivant if ( $current_page < $nb_pages ) $pagination .= ' <a class="prevnext" href="'.sprintf($link, ($current_page+1)).'" title="Page suivante">Suivant »</a>'; else $pagination .= ' <span class="prevnext disabled">Suivant »</span>'; } return $pagination; }
Partager