0

我有一个从表中获取一些数据的查询,我想在 3 列上均匀地显示数据,但是如果返回的结果数不能被 3 整除,则脚本会创建第四列。我的脚本是:

$columnCount = 0;
$howManyPerColumn = mysqli_num_rows($get_category_query) / 3;

<div class="listingCategoryListWrapper">
  <ul class="categoryList">
    <?php
      while($get_category_result = mysqli_fetch_assoc($get_category_query)){
          $columnCount++;
          if($columnCount <= $howManyPerColumn){
            echo('<li><input name="txtCategory[]" type="checkbox" />List item</li>');
          }
          else
          {
            echo('</ul></div><div class="listingCategoryListWrapper"><ul class="categoryList"><li><input name="txtCategory[]" type="checkbox" />List item</li>');
            $columnCount = 1;
          }
      }
    ?>
  </ul>
</div>
4

2 回答 2

2

你试过这种方法吗?

在顶部:

$columnCount = 1;

接着:

while($get_category_result = mysqli_fetch_assoc($get_category_query)){

      if($columnCount <= $howManyPerColumn){
        echo('<li><input name="txtCategory[]" type="checkbox" />List item</li>');
        $columnCount++;
      }

你可以通过这种方式更好地控制它:

 $howMany = mysqli_num_rows($get_category_query);
 $howManyPerColumn = $howMany / 3;
 $theInt = floor($howManyPerColumn * 3);
 if(($theInt * 3) < $howMany)$howManyPerColumn+=1;
于 2013-04-21T23:38:01.150 回答
0

使用原始代码,只需将 ceil 添加到每列的编号

$howManyPerColumn = ceil(mysqli_num_rows($get_category_query) / 3);
于 2013-04-22T01:22:21.027 回答