帮助PHP和条件

时间:2010-10-22 20:07:46

标签: php

需要帮助重新编写这个PHP代码/逻辑。现在,如果我对“持续时间”或“大小”列没有任何值,则我的html表为空,我将默认值设置为n/a

我想更改逻辑以继续处理该条件并提供n/a值,但如果BOTH为n/a,还要添加逻辑以读取,然后设置我的列'Status'值= '进行中'。

不知何故,我评论的代码无法正常工作。感谢。

     foreach ($keys as $column){
        if (isset($row[$column])){
                if ($column == 'Server'){
                        echo '<td> <a href="' . $server_array[$row[$column]] . '">' . $row[$column] . '</a></td>';
                } elseif ($column == 'Status'){  
                        echo '<td> <font color="' . $color_array[$row[$column]] . '">' . $row[$column] . '</font></td>';
                } else {
                        echo '<td>' . $row[$column] . '</td>';
                }
        } elseif ($column == 'Status') {
          echo '<td><font color="yellow"> Review </font></td>';
        } elseif ($column == 'Duration') {
          echo '<td> n/a </td>';
        } elseif ($column == 'Size') {
          echo '<td> n/a </td>';
        //} elseif ($column == 'Duration') && ($column =='Size') {
        // echo '<td> In Progress </td>';
        } else {
          echo '<td> </td>';
        }
     }

5 个答案:

答案 0 :(得分:2)

试试这个

} elseif ($column == 'Status') {
  if (!isset($row['Duration']) && !isset($row['Size']))
    echo '<td> In Progress </td>';
  else
    echo '<td><font color="yellow"> Review </font></td>';
}

而不是

} elseif ($column == 'Status') {
  echo '<td><font color="yellow"> Review </font></td>';
}

答案 1 :(得分:1)

switch ($column){
  case "Status":
   $html="<font color="yellow"> Review </font>";
   break;
  case "Duration":
  case "Size":
   $html="n/a";
   break;
  case "SOME_OTHER_SOMETHING":
   $html=" In Progress ";
   break;
  default:
   $html="";
   break;

}

echo"<td>$html</td>";

答案 2 :(得分:0)

注释掉的代码应为:

} elseif (($column != 'Duration') && ($column != 'Size')) {
    echo '<td> In Progress </td>';

...假设您希望在In Progress不是columnDuration时说Size

请注意,使用此逻辑,永远不会到达最后一个else,因此可以将其删除。

此外,问题可以更明确,因为我不确定你想要实现的目标。

答案 3 :(得分:0)

您需要删除一些parens或添加一些parens,以便($column == 'Duration') && ($column =='Size')成为(($column == 'Duration') && ($column =='Size'))($column == 'Duration' && $column =='Size')

但是你有一个更大的问题,请参阅R. Bemrose对你的问题的评论。

答案 4 :(得分:0)

您可能正在寻找带有或的东西。比如column ='blah'或column ='blah2'。

else if ($column == 'Duration' || $column =='Size')