2016-02-06 71 views
0

我試圖在從一個文件夾中顯示圖像時進行一些分頁。但是,到目前爲止,我無法達到結果。我將代碼放在下一個按鈕上,之前它的工作完美無缺。顯示圖像也很完美。但每頁8張圖片的限制不起作用。從一個文件夾中獲取圖像時的php分頁

這是對圖像顯示的代碼:

<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> 

這是分頁代碼:

$selectIdImage = mysqli_query($dbc,"Select idImage from 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">&rarr;</span></a></li>'; 
    } 
    if($page != 1){ 
     $prev = $page - 1; 
     $pagination.= '<li class="previous"><a href="seeProducts.php?page='.$prev.'"><span aria-hidden="true">&larr;</span> Previous</a></li>'; 
    } 
} 
?> 

所以我想每頁8幅圖像,但我不能這樣做。我知道該怎麼做,如果是從數據庫(只是把限制)提取物,而是從一個文件夾,我不知道該怎麼辦....

+0

的問題不夠具體,請閱讀[如何提問](http://stackoverflow.com/help /如何問) –

+0

我有圖像的代碼,但我想要做的是顯示例如每頁8個圖像,當頁面例如seeImages.php有8個圖像轉到下一頁(seeImages.php?page = 2)新增8張圖片按下一個按鈕,我有 –

+1

你不應該把你的代碼包含爲圖片。至少有兩個原因:存儲圖像的第三方網站將來可能會刪除它們,並使這個問題無法理解,2.我如何將部分代碼複製並粘貼到我的答案中? – Gavriel

回答

1

我認爲你必須在限制一些錯誤:

$limit = "LIMIT ".(($page -1)*$ProductPerPage).",$ProductPerPage"; 

至於文件,例如,您可以的所有文件收集到一個數組:

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

注:我認爲這些文件會以隨機的順序,而不是ABC,並且還可以當您執行某些目錄操作(例如添加新文件)時,順序會發生變化,因此對$ files進行排序可能是明智的做法:

   sort($files); 

而且只打印那些應該被請求的頁面上:

   for ($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>'; 
         } 
        } 
       } 
+0

沒有工作.....但無論如何謝謝....我認爲我的問題是顯示器內部的位置分頁循環,但我不確定 –

+0

也許你應該向我們展示你的代碼的延續,你使用$ limit來創建查詢 – Gavriel

+0

這就是當我從文件夾(第一代碼)獲取圖像時的問題,我不知道不知道我應該把變量$ limit的位置叫做什麼......我看到很多關於這個的教程,但是大多數是關於從sql中提取數據並在對它們進行分頁之後,並且這樣我就知道該怎麼辦了 –

相關問題