2013-02-07 109 views
1

我有一個頁面使用glob來顯示文件夾內的圖像。事情是,我想每頁只顯示20個圖片。我在網上找到的關於分頁的教程與數據庫有關,但我沒有在我的代碼中使用數據庫。php的分頁頁面

$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>'; 
    } 
} 

但這裏的問題是,每次$文件加載所有文件,然後它過濾。

添加了簡單的分頁。

+0

它只顯示20張圖片,但如何讓它進入下一批20張圖片?像圖片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和頁面URL和目錄location.It完美的作品fine.Good運氣

+0

讓我知道你是否面臨這個代碼的任何問題。 – Deep123