当我运行此代码时,我得到一个空白页面,我认为它与我关闭括号的位置有关:
<?php
while($fabid==$fabric_ids[$cnt]['FabricOrdering']['fabric_id'] && $fabcolorid==$fabric_ids[$cnt]['FabricOrdering']['fabric_colour_id'] ){
?>
<?php
$i = 0;
foreach ($orderEntry as $orderEntry1) {
$style = "";
if($$orderEntry1['FabricOrdering']['order_entry_headers_id'] && $orderEntry1['FabricOrdering']['finalized_state'] == OrderFinalized::FINALIZED_STATE_APPROVED){
$style = "background-color:#f2c7ef";
} else {
$style = "background-color:red";
}
?>
<tr id="<?php echo $new_row['FabricOrdering']['sbos_id'].'-'.$count.'-'.$order_seq.'_'.$fabcolorid;?>"style=" <?php echo $style; ?>">
<?php }}?>
如何在foreach
循环中运行while
循环?
答案 0 :(得分:2)
首先在代码中使用条件
进行循环while($fabid==$fabric_ids[$cnt]['FabricOrdering']['fabric_id'] && $fabcolorid==$fabric_ids[$cnt]['FabricOrdering']['fabric_colour_id'] ){
这个条件总是返回true,所以可能会进行无限循环。把一些增量变量放到false这个条件下。
增量变量,如$cnt
。
if($$orderEntry1['FabricOrdering']['order_entry_headers_id']
这里是$$。
- &gt;将Dedug设置为2以检查错误。
答案 1 :(得分:1)
问题应该是if条件中的$$
。这会导致运行时错误,因为您首先使用数组作为var名称,然后访问不是数组的数组。
只需删除一个$
符号就可以了
答案 2 :(得分:0)
你被困在infinite loop
。
在您的where
条款中,您正在使用此条件。
$fabid==$fabric_ids[$cnt]['FabricOrdering']['fabric_id'] && $fabcolorid==$fabric_ids[$cnt]['FabricOrdering']['fabric_colour_id']
。
但是在循环内部你没有更新任何变量。通过您的业务逻辑并更新循环。