2012-09-11 33 views
1

如果有人能幫助我,我會很感激;我花了好幾天的時間試圖獲得解決方案。 我有一個MySQL數據庫與幾個表;我希望根據影響這些表格的某些查詢顯示格式化的報告。我需要幫助來使用PHP從MySQL數據庫生成分組和製表報告?

一個查詢提取我的數據庫中所有區域記錄的詳細信息;區的詳細信息包括區號,地點,區部長,電話和電子郵件。另一個查詢則提取數據庫中所有區域的記錄詳細信息;區的詳細信息包括區號,區號,區名,區部長。每個區域由一個或多個區域組成。

我的報告是要有地區代碼,地區的詳細信息,然後在該地區的地區列表的細節的標題。

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

上面的代碼只顯示只有第一區的區信息,並顯示其他地區,但沒有細節區。

有什麼我做錯了嗎?我想要實現這一點,而不必使用類。我會很感激的建議。謝謝。

+0

您是否已經完成'var_dump($ zones)'來查看是否有任何區域數據要循環? –

+0

你是如何加載數組的,你確定$ zones數組裏有數據嗎? 'print_r($ zones);' – Dave

+0

如果你閱讀他的解釋,他說**上面的代碼只顯示第一區的區域詳細信息** – dbf

回答

1

第一循環後,您需要兩種:

  • 倒帶$區域陣列重新開始。這將顯示第二個區域的相同區域。
  • 獲取第二區的新區域。
+0

(JvdBerg,在它前面不能提到你的名字? )是正確的,你的指針必須重置,所以你可以開始迭代它,看看[重置](http://php.net/manual/en/function.reset.php); – dbf

+0

謝謝JvdBerg和dbf,我該怎麼做?我嘗試重置,因爲你建議,但給了相同的結果。還是我錯過了我必須使用復位功能的位置? – Tunde

+0

謝謝你們,我只是試了一遍,它已經奏效。我沒有再次調用返回區域數組的函數。萬分感謝,我感謝你的幫助。 – Tunde