1

誰かがこれを手伝ってくれれば幸いです。私は解決策を得るために何日も費やしました。複数のテーブルを持つ MySQL データベースがあります。これらのテーブルに影響を与える特定のクエリに基づいて、書式設定されたレポートを表示したいと考えています。

1 つのクエリで、データベース内のすべての地区のレコードの詳細を抽出します。地区の詳細には、地区コード、場所、地区大臣、電話番号、電子メールが含まれます。他のクエリは、データベース内のすべてのゾーンのレコードの詳細を抽出します。ゾーンの詳細には、地区コード、ゾーン コード、ゾーン名、ゾーン大臣が含まれます。各地区は、1 つ以上のゾーンで構成されています。

私のレポートは、地区コードの見出し、地区の詳細、およびその地区内のゾーンのリストとその詳細を含むことです。

$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 地区のみのゾーンの詳細のみを表示し、他の地区は表示しますが、ゾーンの詳細は表示しません。

私が何か間違ったことはありますか?クラスを使用せずにこれを実現したい。提案をいただければ幸いです。ありがとうございました。

4

1 に答える 1

1

最初のループの後、次のいずれかが必要です。

  • $zones 配列を巻き戻して最初からやり直します。これにより、2 番目の地区の同じゾーンが表示されます。
  • 第二地区の新しいゾーンを取得します。
于 2012-09-11T21:54:35.523 に答える