2015-04-01 174 views
2

我試圖從數據庫中提取一些數據,但我需要兩個while循環來嵌套(fetch_assoc)。問題是內部循環不循環它只是給了我數組的第一個元素,數組長度的時間。PHP中更多嵌套while循環

<?php 
    $al_num = $_GET['album']; 
    $photo_query = "SELECT photo FROM album WHERE album_number={$al_num}"; 
    $thumbnail_query = "SELECT thumbnail FROM album WHERE album_number={$al_num}"; 

    $photo_result = mysqli_query($connection, $photo_query); 
    $thumbnail_result = mysqli_query($connection, $thumbnail_query); 
?> 




<?php while($photo = mysqli_fetch_assoc($photo_result)): ?> 
    <?php while($thumb = mysqli_fetch_assoc($thumbnail_result)): ?> 
     <li> 
      <a href="images/<?php echo $photo['photo'] ?>" class="highslide" onclick="return hs.expand(this, config1)"> 
      <img src="images/<?php echo $thumb['thumbnail'] ?>" alt=""/> 
      </a> 
     </li> 
<?php endwhile; ?> 
<?php endwhile; ?> 
+0

你確定你不是在'thumbnail'表中的一個記錄嗎?只是不要這樣做。代碼中存在嚴重的安全問題。您可以使用連接在數據庫層上處理圖像和縮略圖,這是毫無意義的解決方案。 – 2015-04-01 16:11:56

+0

我認爲數據架構存在一個錯誤。如何爲特定專輯節省許多縮略圖和許多照片?你不需要一組照片和每張專輯的縮略圖嗎? – 2015-04-01 16:15:55

+0

我在我的數據庫表中有相同數量的縮略圖和照片,我擁有相冊編號(al_num),照片名稱和縮略圖名稱。 – 2015-04-01 16:32:43

回答

0

爲什麼不保持簡單?

<?php 
    $al_num = $_GET['album']; 
    // Really good idea to check the $_GET['album'] first ... 
    $photo_query = "SELECT photo, thumbnail FROM album WHERE album_number='".mysqli_real_escape_string ($connection, $al_num)."'"; 
    $photo_result = mysqli_query($connection, $photo_query); 

    while(list ($photo, $thumb) = mysqli_fetch_row ($photo_result)) { 
     ?> 
     <li> 
      <a href="images/<?php echo $photo ?>" class="highslide" onclick="return hs.expand(this, config1)"> 
      <img src="images/<?php echo $thumb ?>" alt=""/> 
      </a> 
     </li> 
     <?php 
    } 
?> 
+0

我得到了這個:警告:mysqli_real_escape_string()期待正好2個參數,1在/ home/mirko /Dropbox/htdocs/pdc/gallery.php在線63給出 – 2015-04-01 16:22:26

+0

正確的,我在mysqli_real_escape_string中添加$連接。檢查上面的代碼。 – mrh 2015-04-01 16:39:34

+0

注意:未定義偏移:1在/home/mirko/Dropbox/htdocs/pdc/galerija.php在線73 注意:Undefined offset:0在/home/mirko/Dropbox/htdocs/pdc/galerija.php在線73 73行是while循環啓動的地方 – 2015-04-01 16:46:18

0

好吧,試着從「而」循環只有在這裏是你將如何做一個內部的兩個表中獲取它

<?php while($photo = mysqli_fetch_assoc($photo_result) || $thumb = mysqli_fetch_assoc($thumbnail_result)) 
{ ?> 

     <li> 
      <a href="images/<?php echo $photo['photo'] ?>" class="highslide" onclick="return hs.expand(this, config1)"> 
      <img src="images/<?php echo $thumb['thumbnail'] ?>" alt=""/> 
      </a> 
     </li> 
<?php } ?> 
+0

我試過這種方式,但後來我得到一半的圖像沒有鏈接部分(文件名) – 2015-04-01 16:35:00