PHP循环无法创建动态HTML表

PHP循环无法创建动态HTML表,php,mysql,loops,html-table,Php,Mysql,Loops,Html Table,我正在创建一个学生费用管理表。 我的费用清单表包括字段id、费用名称、金额、费用类型、类别、会话 费用类型字段可以是月度、季度、半年、年度 现在我想显示一个表,其中每个费用名称将有12个月 如果费用类型为“季度”行span='3' 如果费用类型为“半年度”第span='6行' 每年的行间距为12 下面给出了我的php代码,它正在打印一个异常表。 一旦它得到rowspan=3,它就不应该为接下来的两个$i值打印特定值 帮我把它弄对 <?php echo '<table bord

我正在创建一个学生费用管理表。 我的费用清单表包括字段id、费用名称、金额、费用类型、类别、会话

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

现在我想显示一个表,其中每个费用名称将有12个月

如果费用类型为“季度”行span='3' 如果费用类型为“半年度”第span='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>';
 ?>

我相信您正在尝试这样做

<?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>';
 ?>


for循环的
在这种情况下必须做什么?似乎您只是将
$data
重复了12次,次数超出了它应该重复的次数…?请您澄清一下“一旦它得到rowspan=3,它就不应该为接下来的两个$i值打印特定值”是什么意思。因为循环是12个月……如果$row[3]='quarterly',它将打印一个rowspan=3的单元格。对于运行12次的循环,我只需要这个单元格从循环变量value=1,4,7,10打印。这就是我的逻辑Stucku能给我看一下结果的屏幕截图吗