php
  • glob
  • 2017-03-03 84 views 1 likes 
    1

    在我的網站的儀表板上,我使用while循環從數據庫中檢索數據並回顯每條記錄。在此while循環中,我使用​​3210來顯示特定文件夾內的所有圖像,這是我的數據庫表中的一列,$record["folder"]PHP在MySQLi中使用glob()while循環

    這是我使用的代碼:

    while($record = mysqli_fetch_array($result)) 
    
        { 
    
          $directory = '../send-us-your-photos/media/'.$record['folder']; 
          chdir($directory); 
          $images = glob("*.{jpg,JPG,jpeg,JPEG,png,PNG}", GLOB_BRACE); 
          foreach($images as $image) { 
           echo '<div class="col-sm-4"> 
             <img src="'.$directory.'/'.$image.'" /> 
             <div>'.$image.'</div>        
             </div>'; 
          } 
    
        } 
    

    現在,第一個記錄工作正常,並呈現出在特定文件夾中的圖片。但是下一個記錄都顯示相同的$image數據,但是對於不同的文件夾。

    因此,例如:

    記錄1:1的文件夾 - 顯示image1.jpg

    記錄2:2的文件夾 - 嘗試找到相同image1.jpg文件夾中2

    記錄3 :文件夾3 - 試圖找到相同image1.jpg文件夾中3

    我需要什麼:

    記錄1:文件夾1 - 顯示在文件夾中的圖像1

    記錄2:文件夾2 - 示出了文件夾的圖像2

    記錄3:文件夾3 - 示出了在文件夾3


    圖像我應該如何更改我的代碼,以便在每條記錄中顯示正確的圖像?

    +0

    ,相對路徑可能是錯誤的。你能否確認chdir每次都返回true(表示成功)? – sunil

    +0

    @sunil感謝您的建議,'chdir'確實造成了這個問題。但是現在由於哈桑艾哈邁德的回答,現在已經解決了。 –

    回答

    1

    簡單,不改變你的目錄,並在您CHDIR第一次直接用你的目錄路徑中的glob功能

    while($record = mysqli_fetch_array($result)) 
    { 
        $directory = '../send-us-your-photos/media/'.$record['folder']; 
        // chdir($directory); 
        $images = glob($directory . "/*.{jpg,JPG,jpeg,JPEG,png,PNG}", GLOB_BRACE); 
        foreach($images as $image) { 
         echo '<div class="col-sm-4"> 
         <img src="'.$directory.'/'.$image.'" /> 
         <div>'.$image.'</div>        
         </div>'; 
        } 
    } 
    
    +0

    謝謝,這個伎倆!接受你的答案。 –

    0

    我認爲這是到您的CHDIR語句。你正在下一個文件夾..,然後達到send-us-your-photos/media/_FOLDER_

    因此,下一次您在send-us-your-photos/media/_FOLDER_開始並返回一個文件夾..send-us-your-photos/media/,然後它會嘗試去send-us-your-photos/media/send-us-your-photos/media/_FOLDER_並顯然失敗。

    它看起來並不像它的失敗是因爲你的輸出,你爲自己設定$directory值。請嘗試輸出getcwd()

    +0

    感謝您的幫助,這個問題確實與'chdir'有關。哈桑艾哈邁德的回答做到了這一點。 –

    相關問題