当我运行这个PHP / CakePHP代码时,我得到一个空白页面

时间:2015-10-16 08:33:10

标签: php cakephp

当我运行此代码时,我得到一个空白页面,我认为它与我关闭括号的位置有关:

<?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循环?

3 个答案:

答案 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']

但是在循环内部你没有更新任何变量。通过您的业务逻辑并更新循环。