【问题标题】:How can I use a FOREACH loop inside of a WHILE loop to create several columns如何在 WHILE 循环中使用 FOREACH 循环来创建多个列
【发布时间】:2015-06-23 15:24:45
【问题描述】:

问题

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

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

链接

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

代码

$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 的集体思想......并喊......帮助,我已经编码并且无法起床!

【问题讨论】:

  • 我认为您想在 foreach() 之外增加 $rowNum。您还可以给我们一个示例结果或您期望的结果吗?
  • 天哪,我知道发生了什么,我没有查看您的链接。
  • 您是否要显示 X 行的条目?
  • 你只选择一列,所以$cur永远不会等于2。所以你永远不会关闭无序列表。
  • 这样SELECT DISTINCT idBrand...每个结果行只返回一个字段

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


【解决方案1】:

我可能跑题了。我想你想要:

$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 循环。

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

$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";

【讨论】:

  • 谢谢@twisty!工作就像一个魅力......我试图得到一些我可以重复使用的东西......所以非常感谢你!
猜你喜欢
  • 2015-02-11
  • 2014-10-19
  • 2013-02-04
  • 1970-01-01
  • 2013-10-01
  • 1970-01-01
  • 2015-09-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多