2013-02-07 4 views
1

У меня есть страница, которая использует glob для отображения изображений внутри папки. Дело в том, что я хочу отображать только 20 фото на страницу. Учебники по разбивке на страницы, которые я нашел в Интернете, связаны с базой данных, но я не использовал базу данных внутри своего кода.pagination php glob page

$files = glob("uploaded_files/*.*"); 
usort($files, function ($a, $b) { 
return filemtime($b) - filemtime($a); 
}); 

foreach ($files as $file) { 
echo "<img src='$file' style='height:180px;width:180px; border:2px solid black; margin:20px 0px 10px 10px; *margin:10px 0px 10px 20px;'>"; 
} 

это мой код. как я могу сделать это так, чтобы он отображал 20 изображений на страницу и автоматическую разбивку на страницы? tq

+0

, что этот ресурс URL, который вы видите? –

+0

каталог uploaded_files находится там, где находятся изображения –

+0

Что такое учебник по URL-адресу страницы, который вы ссылаетесь ....... –

ответ

1
$files = glob("uploaded_files/*.*"); 
usort($files, function ($a, $b) { 
return filemtime($b) - filemtime($a); 
}); 

$record_count = 20; 
$totla_pages = ceil(count($files)/$record_count); 
$page   = $_REQUEST['page']; ///make it dyanamic :: page num 
$offset  = ($page-1)*$record_count; 
$files_filter = array_slice($files, $offset,$record_count); 

foreach ($files_filter as $file) { 
echo "<img src='$file' style='height:180px;width:180px; border:2px solid black; margin:20px 0px 10px 10px; *margin:10px 0px 10px 20px;'>"; 
} 

if($totla_pages > 1){ 
    if($page != 1){ 
     echo '<a href="thispage.php?page='.($page-1).'">Prev</a>'; 
    } 
    if($page != $totla_pages){ 
     echo '<a href="thispage.php?page='.($page+1).'">Next</a>'; 
    } 
} 

Но здесь проблема заключается в том, что каждый раз, когда $ files загружает все файлы, тогда он фильтрует.

Добавлена ​​простая разбивка на страницы.

+0

он показывает только 20 фото, но как это сделать, чтобы перейти к следующей партии из 20 фото? например, pic no 21,22 и т. д.? –

+0

изменить на '$ page = 2;' –

+0

Пожалуйста, проверьте, что код добавил простую разбивку на страницы. Измените 'href =" thispage.php' на ваше имя в php-странице –

0

Это код, который я использовал для этой же цели.

/**************************************************** 
To fetch total number of images for pagination 
*****************************************************/ 


$folder_name=$row[page_addlink] ; 
$dirname = "gallery/".$folder_name ; 
$files = glob($dirname."/*.{jpg,gif,png,tiff,jpeg,bmp}", GLOB_BRACE);  
$no_of_files=count($files); 


/**************************************************** 
This is to get total number of records for pagination 
*****************************************************/ 
$rows = $no_of_files;      
$pagenum=$_GET[pagenum]; 
/******************************************* 
By default page number is 1 
*******************************************/ 
if (!(isset($pagenum))) 
{ 
$pagenum = 1; 
} 
/**************************************************** 
No of rows to be visibles.Value is set in config file 
*****************************************************/     
$page_rows = $no_of_images_pagination ; /// defined in connection.php file 
$last = ceil($rows/$page_rows); 

if ($pagenum <= 1) 
{ 
$pagenum = 1; 
} 
elseif ($pagenum > $last) 
{ 
$pagenum = $last; 
}    
?> 
<div class="right_panel"> 
<div class="inner">     
<div class="inner_bg"> 

</br> 

<div align='center'> 
<?php 



if($rows <=$page_rows) 
{ 

} 
else 
{ 

if($pagenum!=1) 
{ 
echo "<a href='[URL of your page]?id=$folder_id&pagenum=1' style='text-decoration:none'> <<-First</a> "; 
} 

$previous = $pagenum-1; 
if($pagenum!=1) 
{ 
     echo " <a href='[URL of your page]?id=$folder_id&pagenum=$previous' style='text-decoration:none'><-Previous</a> "; 
}     
//just a spacer 
for($k=1;$k<=$last;$k++) 
{  
echo " <a href='[URL of your page]?id=$folder_id&pagenum=$k' style='text-decoration:none'>"; 
if($k==$pagenum) 
     { 
      echo "<b><u>".$k."</u></b>" ; 
     } 


    else 
    { 
     echo $k ; 
    } 
echo "</a>&nbsp;"; 

} 

$next = $pagenum+1; 
if($pagenum!=$last) 
{ 
echo "<a href='[URL of your page]?id=$folder_id&pagenum=$next' style='text-decoration:none'>Next -></a> "; 
} 

echo " "; 

if($pagenum!=$last) 
{ 
echo " <a href='[URL of your page]?id=$folder_id&pagenum=$last' style='text-decoration:none'>Last ->></a> "; 
} 

} 
?> 
</div> 

Вы можете использовать этот код после немного модификации в соответствии с вашей CSS и ссылками на страницу и каталог location.It отлично работает fine.Good удачи

+0

Сообщите мне, если у вас возникли проблемы с этим кодом. – Deep123