html - php pagination when images are got from a folder -
i'm trying put pagination when displaying images folder. however, far, can't achieve result. have code button next , working perfectly. display images working well. limit of 8 images per page doesn't work.
this code images display:
<div class="container"> <div class="row"> <?php $folder = "products/"; if(is_dir($folder)){ if($handle = opendir($folder)){ while(($file = readdir($handle)) != false){ if($file=='.' || $file==='..' ) continue; echo ' <div class="col-xs-6 col-sm-4 col-md-3"> <div class="thumbnail see" href="#"> <!-- para aadicionar titulo data-title= --> <a href="products/'.$file.'" data-lightbox="gallery"><img class="img-responsive" src="products/'.$file.'" alt="'.$file.'" style="min-height:50px;height:100px;"></a> </div> </div>'; } closedir($handle); } } ?> </div> </div> and code pagination:
$selectidimage = mysqli_query($dbc,"select idimage images "); $count_num_rows = mysqli_num_rows($selectidimage); if(isset($_get['page'])){ $page = preg_replace("#[^0-9]#","",$_get['page']); }else{ $page = 1; } $productperpage = 8; $lastpage = ceil($count_num_rows/$productperpage); if($page < 1 ){ $page = 1; }elseif($page > $lastpage){ $page = $lastpage; } $pagination = ''; $limit = "limit".($page -1).$productperpage.",$productperpage"; if($lastpage !=1){ if($page != $lastpage){ $next = $page + 1; $pagination.= '<li class="next"><a href="seeproducts.php?page='.$next.'">next <span aria-hidden="true">→</span></a></li>'; } if($page != 1){ $prev = $page - 1; $pagination.= '<li class="previous"><a href="seeproducts.php?page='.$prev.'"><span aria-hidden="true">←</span> previous</a></li>'; } } ?> so want 8 images per page can't that. know how if extract database(just put limit), folder don't know how do....
i think have mistake in limit:
$limit = "limit ".(($page -1)*$productperpage).",$productperpage"; as files, can example collect files array:
$folder = "products/"; $files = array(); if(is_dir($folder)){ if($handle = opendir($folder)){ while(($file = readdir($handle)) != false){ if($file=='.' || $file==='..' ) continue; $files[] = $file; } closedir($handle); } } note: think files come in random order, not in abc, , possible order change when directory operations (add new files example), might wise sort $files:
sort($files); and print should on requested page:
($i=($page-1)*$productperpage;$i<count($files)&&$i<$page*$productperpage; $i++) { $file = $files[$i]; echo ' <div class="col-xs-6 col-sm-4 col-md-3"> <div class="thumbnail see" href="#"> <a href="products/'.$file.'" data-lightbox="gallery"><img class="img-responsive" src="products/'.$file.'" alt="'.$file.'" style="min-height:50px;height:100px;"></a> </div> </div>'; } } }
Comments
Post a Comment