PHP循环不能用于创建动态HTML表

时间:2014-07-09 01:23:51

标签: php mysql loops html-table

我正在创建学生费用管理表。 我的fee_inventory表包括字段id,fee_name,金额,fee_type,类,会话

费用类型字段可以是每月,每季度,每半年,每年

现在我想显示一个表格,其中每个fee_name将有12个月

如果fee_type ='每季度'行跨度=' 3' 如果fee_type ='半年'行跨度=' 6' 并且每年的行数为12

我的php代码在下面给出了打印异常表。 一旦获得rowspan = 3,它就不应该打印$ i的下两个值的特定值。

帮助我纠正错误

<?php
    echo '<table border="2"><tr>';

    while($row4=mysql_fetch_array($result4))
    {
      echo '<td>'.$row4[1].'</td>';
    }
    echo '</tr>';
    $data = array();

    while( $row5 = mysql_fetch_array($result5) )
    $data[] = $row5;

    for($i=1;$i<=12;$i++)
    {
        echo '<tr>';
        foreach ( $data as $row5 ) 
        {

          if($row5[3]=='monthly')
          echo '<td>'.$row5[3].'</td>';
          else if($row5[3]=='quarterly')
          echo '<td rowspan="3">'.$row5[3].'</td>';
          else if($row5[3]=='halfyearly')
          echo '<td rowspan="6">'.$row5[3].'</td>';
          else if( $row5[3]=='anually')
          echo '<td rowspan="12">'.$row5[3].'</td>';
        }
        echo '</tr>';
     }
     echo '</table>';
 ?>

1 个答案:

答案 0 :(得分:1)

我相信你正在努力做到这一点

<?php
    echo '<table border="2"><tr>';

    while($row4=mysql_fetch_array($result4))
    {
      echo '<td>'.$row4[1].'</td>';
    }
    echo '</tr>';
    $data = array();

    while( $row5 = mysql_fetch_array($result5) )
    $data[] = $row5;
    echo '<tr>';
    foreach ( $data as $row5 ) 
    {
        if($row5[3]=='monthly') {
            echo '<td>'.$row5[3].'</td>';
            for($i=1;$i<=11;$i++)
            {
                echo '<td></td>';
            }
        }
        else if($row5[3]=='quarterly')
        {
            echo '<td rowspan="3">'.$row5[3].'</td>';
            for($i=1;$i<=4;$i++)
            {
                echo '<td rowspan="3"></td>';
            }
        }
        else if($row5[3]=='halfyearly')
        {
            echo '<td rowspan="6">'.$row5[3].'</td>';
            for($i=1;$i<=2;$i++)
            {
                echo '<td rowspan="6"></td>';
            }
        }
        else if( $row5[3]=='anually')
        {
            echo '<td rowspan="12">'.$row5[3].'</td>';
        }
        echo '</tr>';
    }
    echo '</table>';
 ?>