如何在WHILE循环内部使用FOREACH循环来创建多个列

时间:2015-04-17 00:00:20

标签: php mysqli foreach while-loop multiple-columns

问题

我从数据库中提取数据...使用WHILE循环&我希望将返回的数据耦合到"可扩展的大小"组。

我认为通过在while循环中使用FOREACH LOOP,我可以完成这个,显然我认为错了...... ARRG!

链接

在此处查看问题:http://sis-cr.com/NEWSTORE/store.php?cur_str=cel

CODE

$queryCatz = mysqli_query($cxn, "SELECT DISTINCT idBrand FROM Products ");
while($list_of_xtras = mysqli_fetch_array($queryCatz)) {     

    $cur = 0;
    $rowNum = 1;
    foreach($list_of_xtras as $key => $value){

        if($cur == 0){
            echo '<ul style="border:2px solid purple;" class="theROW' . $rowNum . '">';
        }

        echo '    <li style="list-style:none;">' . $value. '</li>';

        if($cur == 2)
        {
            echo '</ul>';
            $cur = 0;
            $rowNum++;
        }
        else
        {
            $cur++;
        }
    }


}       

3小时尝试解决这个问题,冒着暴露我明显缺乏理解的风险, 我谦虚地 之前SO的集体思想......并大声呼喊......帮助,我已编码,无法起床!

1 个答案:

答案 0 :(得分:2)

我可能偏离轨道。我想你想要:

$queryCatz = mysqli_query($cxn, "SELECT DISTINCT idBrand FROM Products ");
while($list_of_xtras = mysqli_fetch_array($queryCatz)) {     
  $rowNum = 1;
  echo '<ul style="border:2px solid purple;" class="theROW' . $rowNum . '">\r\n';
  for($curr=0; $curr<2; $curr++){
    echo '\t<li style="list-style:none;">' . $list_of_xtras[$curr] . '</li>\r\n';
  }
  echo '</ul>';
  $rowNum++;
}

好像你只是在寻找2个结果,所以我不知道FOREACH在这里是否最好。也许只是一个FOR循环。

在看到你的评论后编辑。听起来你想要在UL中包含10个结果。要做到这一点,将会是这样的:

$rowNum = 1;
echo '<ul style="border:2px solid purple;" class="theROW' . $rowNum . '">\r\n';
$queryCatz = mysqli_query($cxn, "SELECT DISTINCT idBrand FROM Products ");
while($list_of_xtras = mysqli_fetch_array($queryCatz)) {     
  if($rowNum % 10 == 0){
    echo '</ul><ul style="border:2px solid purple;" class="theROW' . $rowNum . '">\r\n';
  }
  echo '\t<li style="list-style:none;">' . $list_of_xtras[0] . '</li>\r\n';
  $rowNum++;
}
echo "</ul>\r\n";