【问题标题】:PHP Loop not working in creating dynamic HTML TablesPHP Loop 在创建动态 HTML 表时不起作用
【发布时间】:2014-08-29 21:49:57
【问题描述】:

我正在创建一个学生费用管理表单。 我的 fee_inventory 表包括字段 id、fee_name、amount、fee_type、class、session

fee_type 字段可以是每月、每季度、每半年、每年

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

如果 fee_type=' Quarterly' rowspan='3' 如果 fee_type='halfyearly' rowspan='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>';
 ?>

【问题讨论】:

  • for 循环在这种情况下必须做什么?看来您只是将 $data 迭代了 12 次而不是应有的次数......?
  • 你能否澄清一下“一旦它得到 rowspan=3,它就不应该打印下两个 $i 值的特定值”是什么意思。
  • for 循环为 12 个月...
  • 如果 $row[3]==' Quarterly' 它会打印一个 rowspan=3 的单元格。因此,对于运行 12 次的循环,我只需要从循环变量值 = 1、4、7、10 打印此单元格。这就是我卡住的逻辑

标签: php mysql loops html-table


【解决方案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>';
 ?>

【讨论】:

  • 你能给我看一下它的结果的屏幕截图吗
猜你喜欢
  • 2011-05-20
  • 1970-01-01
  • 1970-01-01
  • 2012-10-12
  • 2015-07-05
  • 2020-04-26
  • 2014-09-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多