如何在 WHILE 循环中使用 FOREACH 循环来创建多个列
How can I use a FOREACH loop inside of a WHILE loop to create several columns
问题
我正在从我的数据库中提取数据...使用 WHILE 循环并且我希望将返回的数据耦合到 "scalable in size" 组中。
我认为通过在 while 循环中使用一个 FOREACH 循环,我可以完成这个,显然我想错了..ARRG!
LINK
在此处查看问题: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 的集体思想面前鞠躬....并大喊...帮助,我已经编码,无法起床!
我可能跑偏了。我想你想要:
$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";
问题
我正在从我的数据库中提取数据...使用 WHILE 循环并且我希望将返回的数据耦合到 "scalable in size" 组中。
我认为通过在 while 循环中使用一个 FOREACH 循环,我可以完成这个,显然我想错了..ARRG!
LINK
在此处查看问题: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 的集体思想面前鞠躬....并大喊...帮助,我已经编码,无法起床!
我可能跑偏了。我想你想要:
$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";