2015-04-01 99 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