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