Php 停止在每个内部循环,同时
我正在尝试使用数组从数据库中提取数据。但当我将foreach组合在一起时,它在数据库中循环了同样多的数据。如何停止循环?我已经做了断开功能,但没有工作。我的代码缺少什么 这是mycode:Php 停止在每个内部循环,同时,php,Php,我正在尝试使用数组从数据库中提取数据。但当我将foreach组合在一起时,它在数据库中循环了同样多的数据。如何停止循环?我已经做了断开功能,但没有工作。我的代码缺少什么 这是mycode: <?php $no=1; if(mysqli_num_rows($query) > 0) { $useArray = array("A","B","B&qu
<?php
$no=1;
if(mysqli_num_rows($query) > 0)
{
$useArray = array("A","B","B","C");
while($row = mysqli_fetch_array($query))
{
foreach ($useArray as $array)
{
echo"<tr>";
echo "<td>".$no."</td>";
echo "<td>".$row['id']."</td>";
echo "<td>".$row['name']."</td>";
echo "<td>".$row['grade']."</td>";
if($row['v1']>=2.000)
echo "<td class='bg-success'>".$row['v1']."</td>";
elseif($row['v1']>=1.500)
echo "<td class='bg-warning'>".$row['v1']."</td>";
elseif($row['v1']>=0.100)
echo "<td class='bg-danger'>".$row['v1']."</td>";
else
{
echo "<td class='bg-dark'>".$row['v1']."<h5>D</h5></td>";
}
echo "<td>".$array."</td>";
if ($array == "C") {
break;
}
echo "</tr>";
}
$no++;
}
}
else
{
?>
</tbody>
</table>
<?php
echo "No Point";
}
?>
结果如下
我先搜索,但不工作。也许我实现代码是错的。以下是我的参考资料:
我的预期结果是:
总数据是固定的,数组中有多少字符串,所以若数组中有(“A”、“B”、“B”、“C”),那个么数据库中也只有4行。
非常感谢您的帮助。这里发生的是您的
中断
正在中断foreach
,而不是在数据库查询中循环。您可以尝试在使用中断2
时中断
此处的2
指示您试图跳出的“易碎”环路的数量
尽管如此,我相信您可以通过修改数据库查询来改进代码,以避免不必要的循环。
break
只保留附近的块。在您的代码中:
while($continue&&&$row=mysqli\u fetch\u数组($query))
{
foreach($useArray作为$array)
{
回声“;
回显“$no.”;
...
如果($array==“C”){
打破
}
回声“;
}
$no++;
}
休息离开了前庭,但休息仍在继续
您可以添加一个变量以保留while,如下所示:
$continue=true;
而($continue&&$row=mysqli\u fetch\u数组($query))
{
foreach($useArray作为$array)
{
回声“;
回显“$no.”;
...
如果($array==“C”){
$continue=fase;
打破
}
回声“;
}
$no++;
}
您对输出的期望是什么?foreach()
循环与SQL查询的关系如何?我只是编辑我的问题@NigelRen@NigelRenSQL查询用于获取数据以显示数据,以及foreach
用于为显示的每个数据放置字符串数组。是否可以添加数据库中的SQL摘录?您当前正在迭代固定数组,并且仅当它位于最后一个元素“C”时才中断循环。我真的搞不懂你想做什么。在您预期结果的图像中,您从何处知道该行应该包含哪个字母?break 2
是什么意思?@DoxTheaugbeybreak 2
中的2
意味着打破2层易碎块。foreach
是第一层,而用于循环所有数据库行的while
是另一层。这意味着我也必须使用break-outside-while?好的,为了了解您正在尝试执行的操作,您可以向我们展示您的数据库查询以及您正在尝试实现的操作吗?我觉得你走错了路。这就是我的全部: