2013-04-08 157 views
2

我需要打印出一个封装三个李的div,因为我在数据库中运行一个列表。当我使用bootstrap时,我需要在.span4的第三列之后为每行分配一个.row流体,但是我在for循环工作时遇到了一些问题..这里是未修改的代码:嵌套for循环困难

<div class="row-fluid">' 
      <ul class="thumbnails"> 
      <?php 
       for($i=0; $i<count($rows); $i+=1){ 
      ?> 
      <!-- This is why sort by programme doesn't work - ID is not what I need --> 
      <li class="span4" id="<?php echo $rows[$i]['Class']; ?>"> 
       <div class="thumbnail"> 
       <img src="http://placehold.it/320x200" alt="ALT NAME"> 
       <div class="caption"> 
        <h3><?php echo $rows[$i]['Title']; ?></h3> 
        <?php if(!empty($rows[$i]["DateSold"])){ ?> 
        <span class="label label-warning" style="margin-bottom: 10px;">Book has been sold!</span> 
        <?php } ?> 
        <p>Seller: <?php echo $rows[$i]['FirstName'] . " " . $rows[$i]['LastName']; ?> </p> 
        <p>Email: <?php echo $rows[$i]['Email']; ?></p> 
        <p>Cost: <?php echo $rows[$i]['Cost']; ?></p> 
        <p>Condition: <?php echo $rows[$i]['BookCondition']; ?></p> 
        <p align="center"> 
        <?php echo '<a href="#myModal' . $i . '" class="btn btn-primary btn-block" data-toggle="modal">View More information</a>' ?> 
        </p> 
       </div> 
       </div> 
      </li> 
      <!-- Modal --> 
       <?php echo'<div id="myModal' . $i . '" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">'; ?> 
       <div class="modal-header"> 
        <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button> 
        <h3 id="myModalLabel">Book information</h3> 
       </div> 
       <div class="modal-body"> 
        <p>Title: <?php echo $rows[$i]['Title']; ?> </p> 
        <p>Seller: <?php echo $rows[$i]['FirstName'] . " " . $rows[$i]['LastName']; ?> </p> 
        <p>Email: <?php echo $rows[$i]['Email']; ?></p> 
        <p>Phone: <?php echo $rows[$i]['PhoneNumber']; ?></p> 
        <p>Condition: <?php echo $rows[$i]['BookCondition']; ?></p> 
        <p>Date added: <?php echo $rows[$i]['DateAdded']; ?></p> 
        <p>Class: <?php echo $rows[$i]['Class']; ?></p> 
        <p>Cost: <?php echo $rows[$i]['Cost']; ?></p> 
       </div> 
       <div class="modal-footer"> 
        <button class="btn" data-dismiss="modal" aria-hidden="true">Close</button> 
       </div> 
       </div> 
       <?php 
      } 
      ?> 
      </ul> 
    </div> 

我需要覆盖从DB每三个打印后的列表项排液的顶格父..

回答

2

在第二通读,它似乎更像是要在一个单独的DIV每三个LIS和UL。在这种情况下,您可以使用array_chunk

<?php $chunks = array_chunk($rows, 3); 
for ($i = 0; $i<count($chunks); $i++) 
{ 
    ?> <div class="row-fluid"><ul class="thumbnails"> <?php 
    for ($j = 0; $j<count($chunks[$i]); $j++) 
    { 
     ?> do your LIs in here <?php 
    } 
    ?> </ul></div> <?php 
} 
+0

是的,我想过类似的东西,但是如何确保在新行需要启动之前只打印出三个列表项? – Kevin 2013-04-08 00:41:55

+0

使用array_chunk。我重写了我的答案,因为我认为我第一次误解了这个问题。 – hatkirby 2013-04-08 00:43:59

+0

我只是通过它现在读通过谢谢(没有听说过这个功能之前,所以我要去试试看) – Kevin 2013-04-08 00:44:36