亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何使用php從具有多個表的mysql數據庫中檢索大量數據

如何使用php從具有多個表的mysql數據庫中檢索大量數據

PHP
泛舟湖上清波郎朗 2022-07-29 16:55:40
我需要特定部門的每月出勤報告。在我的程序中,生成需要更多時間。如果超過 50 名員工,則根本不會生成報告。我有兩張表,一張是員工表,另一張是出勤表。我正在生成這樣的報告。這是我的代碼。<div class="row">    <div class="col-md-12">           <table style="width:100%;" border="1">                                            <tr style="font-weight: bold; background-color: #D3D3D3; text-align: center;">                <td style="text-align: center;padding: 5px;">SLNo.                </td>                   <td>EMPID</td>                <td style="width:250px; text-align: center; padding-left: 5px; padding-right: 5px;">                    Employee&nbsp;Name                </td>                <?php                /* Default Date Indexing starts here. */                $timezone = "Asia/Calcutta";                date_default_timezone_set($timezone);                $timestamp = mktime(0,0,0,$Month,1,$Year);                $maxday = date("t",$timestamp);                //echo "<td></td>";                for ($k=1; $k<= $maxday; $k++) {                      $kv = sprintf('%02d', $k);                    echo "<td style=''>$kv</td>";                  }                /* Default Date Indexing ends here. */                ?>                <td>TOT.P</td>                <td>TOT.HLF</td>                <td>TOT.A</td>                <td>TOT.WO</td>                <td>TOT.HLD</td>            </tr>            <?php請指導我該怎么做,以便我能夠快速獲得更多員工數據。我必須一次顯示 1000 名員工的記錄。
查看完整描述

1 回答

?
哈士奇WWW

TA貢獻1799條經驗 獲得超6個贊

您應該加入這些表并對所有員工和一個月中的所有日期進行一次查詢,而不是對每個員工和日期進行單獨的查詢。


SELECT e.EmployeeId, e.EmployeeName, a.Date, a.Attendance

FROM employee_details AS e

JOIN employee_attendance AS a ON a.EmployeeDbKey = e.DbKey

WHERE e.DivisionDbKey = '$DivisionDbKey' and e.Status='ACTIVE'

AND a.Date BETWEEN '$Year-$Month-01' AND LAST_DAY('$Year-$Month-01') and a.Status='ACTIVE'

ORDER BY e.EmployeeName, a.Date

然后,當您顯示表格時,<tr>只要有$row['EmployeeId']變化就開始一個新的。

此外,當您循環查看員工月份中的日期時,請從當前日期中減去前一個日期。如果差值大于 1,$difference - 1 <td>A</td>則在行中插入列以顯示缺勤情況。

或查看從日期范圍生成天數。您可以使用其中一種技術來創建一個子查詢,以生成該月中的所有日期。左加入這個employee_attendance表,你會得到每一天的行,但a.Attendance如果NULL他們缺席的話。


查看完整回答
反對 回復 2022-07-29
  • 1 回答
  • 0 關注
  • 165 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號