我需要帮助才能使用PHP从MySQL数据库生成分组和制表报告?

时间:2012-09-11 21:51:44

标签: php mysql foreach

如果有人能帮助我,我会很感激;我花了好几天试图找到解决方案。 我有一个包含几个表的MySQL数据库;我希望根据影响这些表的某些查询显示格式化报告。

One Query提取我数据库中所有区域记录的详细信息;地区的详细信息包括地区代码,地点,区长,电话和电子邮件。另一个Query提取数据库中所有区域记录的详细信息,区域的详细信息包括区号,区号,区域名称,区域部长。每个区由一个或多个区组成。

我的报告是有区号的标题,区的详情,然后是该区的区域列表及其详细信息。

$districts = all_districts_details();  // The function that returns the Districts as an array
$zones = all_zones_details();  // The function that returns the Zones as an array

我的代码是

<?php include '../view/report_header.php'; ?>
    <?php 
    foreach ($districts as $district) {    ?>            
        <table width="1000" border="1" align="center" cellpadding="2">
        <tr>
            <td id="header5" colspan="2" rowspan="2"><?php echo $district['districtCode']; ?><br><div id="header2"><?php echo '(' . $district['locationName'] . ')'; ?></div></td>
            <td id="header3" width="74">DM</td>
            <td id="header3" width="294"><?php echo 'Pst. ' . $district['othernameDM'] . ' ' . $district['surnameDM']; ?></td>
            <td id="header4" width="177"><?php echo $district['emailDM']; ?></td>
            <td id="header2" width="143"><?php echo $district['phoneDM1']; ?></td>
        </tr>
        <tr>
            <td id="header3">ADM</td>
            <td id="header3"><?php echo $district['titleADM'] . '. ' . $district['othernameADM'] . ' ' . $district['surnameADM']; ?></td>
            <td id="header4"><?php echo $district['emailADM']; ?></td>
            <td id="header2"><?php echo $district['phoneADM1']; ?></td>
        </tr>

            <?php   foreach ($zones as $zone) { ?>
                <?php if ($zone['district_districtCode'] == $district['districtCode']) { ?>
                    <tr>
                        <td id="header6" width="47"><?php echo $zone['district_districtCode'] . '/' . $zone['zoneCode']; ?></td>
                        <td id="header2" width="225"><?php echo $zone['zoneName']; ?></td>
                        <td id="header3">ZM</td>
                        <td id="header3"><?php echo $zone['titleZM'] . '. ' . $zone['othernameZM'] . ' ' . $zone['surnameZM']; ?></td>
                        <td id="header4"><?php echo $zone['emailZM']; ?></td>
                        <td id="header2"><?php echo $zone['phoneZM1']; ?></td>
                    </tr>
                <?php }?>
            <?php } ?>


        </table>
 <?php   } ?>

<?php include '../view/report_footer.php'; ?>

上面的代码仅显示第一区的区域详细信息,并显示其他区域但不显示区域详细信息。

我做错了吗?我想在不必使用类的情况下实现这一点。我很感激建议。谢谢。

1 个答案:

答案 0 :(得分:1)

在第一个循环之后,你需要:

  • 回退$ zones数组重新开始。这将显示第二个区域的相同区域。
  • 为第二区取新区域。