Pagination, toujours manque une ligne
Résolu
supupoff
Messages postés
312
Date d'inscription
Statut
Membre
Dernière intervention
-
supupoff Messages postés 312 Date d'inscription Statut Membre Dernière intervention -
supupoff Messages postés 312 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
j'essaye de faire une pagination a mon table de cours, ça marche masi toujours manque une ligne et si j'ai qu'un seul enregistrement dans table cours s'affiche pas, ceci comment je me débrouille
collecte cours de DB, selon le niveau ( nivo) ou tous le cours,
Affichage
Pagination_class.php
Merci,
La chance aide parfois, le travail toujours.
j'essaye de faire une pagination a mon table de cours, ça marche masi toujours manque une ligne et si j'ai qu'un seul enregistrement dans table cours s'affiche pas, ceci comment je me débrouille
collecte cours de DB, selon le niveau ( nivo) ou tous le cours,
<?php if (isset($_GET['nivo']) and !empty($_GET['nivo'])){ $nivo = $_GET['nivo']; $sql = "SELECT * from cours where nivo='$nivo' AND idpro='$id'"; } else{ $sql = "SELECT * FROM cours WHERE idpro='$id' order by id"; } if(isset($_GET['starting'])){ //starting page $starting=$_GET['starting']; }else{ $starting=0; } $recpage = 10; $obj = new pagination_class($sql,$starting,$recpage); $result = $obj->result; ?>
Affichage
............ <?php if(mysql_fetch_row($result)!=0){ while($data = mysql_fetch_array($result)) {?> <tbody> <tr> <td class="first style1"><?php echo $data['matiere']; ?> </td> <td><?php echo $data['description']; ?></td> <td> <a href="modifierArt.php?idart=<?php echo $data['id']; ?>" title="Modifier cours "> <img src="images/edit-icon.gif" width="16" height="16" alt="" /> </a></td> <td><a href="cours_html.php?idart=<?php echo $data['id'];?>&action=sup" title=" Supprimer cours " onclick="return confirm('Etes vous sur de vouloir supprimer ce cours ?');"> <img src="images/hr.gif" width="16" height="16" alt="" /></a></td> </tr></tbody> <?php } ?> <tfoot> <tr id="nav"><td colspan="5"><div><?php echo $obj->anchors; ?></div></td></tr> <tr id="total"><td colspan="5"><?php echo $obj->total; ?></td></tr> <?php } else{ ?> <tr><td align="center" colspan="5">Rien trouvé/td> </tr></tfoot> <?php } ?>
Pagination_class.php
<?php class Pagination_class{ var $result; var $anchors; var $total; function Pagination_class($qry,$starting,$recpage) { include('_db.php'); $rst = mysql_query($qry) or die(mysql_error()); $numrows = mysql_num_rows($rst); $qry .= " limit $starting, $recpage"; $this->result = mysql_query($qry) or die(mysql_error()); $next = $starting+$recpage; $var = ((intval($numrows/$recpage))-1)*$recpage; $page_showing = intval($starting/$recpage)+1; $total_page = ceil($numrows/$recpage); if($numrows % $recpage != 0){ $last = ((intval($numrows/$recpage)))*$recpage; }else{ $last = ((intval($numrows/$recpage))-1)*$recpage; } $previous = $starting-$recpage; $anc = "<ul id='pagination-flickr'>"; if($previous < 0){ $anc .= "<li class='previous-off'>Premier</li>"; $anc .= "<li class='previous-off'>Préc</li>"; }else{ $anc .= "<li class='next'><a href='articles_.php?starting=0'>Premier </a></li>"; $anc .= "<li class='next'><a href='articles_.php?starting=$previous'>Préc </a></li>"; } ################If you dont want the numbers just comment this block############### $norepeat = 4;//no of pages showing in the left and right side of the current page in the anchors $j = 1; $anch = ""; for($i=$page_showing; $i>1; $i--){ $fpreviousPage = $i-1; $page = ceil($fpreviousPage*$recpage)-$recpage; $anch = "<li><a href='articles_.php?starting=$page'>$fpreviousPage </a></li>".$anch; if($j == $norepeat) break; $j++; } $anc .= $anch; $anc .= "<li class='active'>".$page_showing."</li>"; $j = 1; for($i=$page_showing; $i<$total_page; $i++){ $fnextPage = $i+1; $page = ceil($fnextPage*$recpage)-$recpage; $anc .= "<li><a href='articles_.php?starting=$page'>$fnextPage</a></li>"; if($j==$norepeat) break; $j++; } ############################################################ if($next >= $numrows){ $anc .= "<li class='previous-off'>Suiv</li>"; $anc .= "<li class='previous-off'>Dernier</li>"; }else{ $anc .= "<li class='next'><a href='articles_.php?starting=$next'>Suiv </a></li>"; $anc .= "<li class='next'><a href='articles_.php?starting=$last'>Dernier</a></li>"; } $anc .= "</ul>"; $this->anchors = $anc; $this->total = "Page : $page_showing <i> de </i> $total_page . Résultat Total: $numrows"; } } ?>
Merci,
La chance aide parfois, le travail toujours.
A voir également:
- Pagination, toujours manque une ligne
- Partager photos en ligne - Guide
- Mètre en ligne - Guide
- Aller à la ligne excel - Guide
- Apparaitre hors ligne instagram - Guide
- Excel ligne toujours visible - Guide
1 réponse
Bonjour
Le mysql_fetch_row lit une ligne dans $result, cette ligne ne sera jamais affichée : les mysql_fetch_array qui suivent ne "remontent" pas dans $result.
Je suppose que tu voulais faire mysql_num_rows() qui te donne le nombre de lignes de la réponse.
Au passage, il est fortement déconseillé d'utiliser les fonctions mysql_* qui sont obsolètes et ne seront bientôt plus supportées du tout par PHP. Utilise plutôt mysqli_* ou PDO.
if(mysql_fetch_row($result)!=0){ while($data = mysql_fetch_array($result)) {?>
Le mysql_fetch_row lit une ligne dans $result, cette ligne ne sera jamais affichée : les mysql_fetch_array qui suivent ne "remontent" pas dans $result.
Je suppose que tu voulais faire mysql_num_rows() qui te donne le nombre de lignes de la réponse.
Au passage, il est fortement déconseillé d'utiliser les fonctions mysql_* qui sont obsolètes et ne seront bientôt plus supportées du tout par PHP. Utilise plutôt mysqli_* ou PDO.
supupoff
Messages postés
312
Date d'inscription
Statut
Membre
Dernière intervention
34
Merci,