หน้าที่เลือกเงื่อนไขดึงรายงานช้าทำอย่างไรคะ หน้าที่เลือกเงื่อนไขดึงรายงานเป็น selection choice
อาจจะเป็นได้หลายสาเหตุน่ะครับ ผมไม่รู้ว่าคุณทำบนserver หรือว่า บน localhost
1.อาจจะช้าเพราะการquery ครับ เขียนquery ที่กว้าง หรือว่า มีการซ้อนทับกันเยอะครับ
2. เขียนcode สั้น แต่codeนั้น ทำให้เกิดการgen ข้อมูลมาหลายๆบรรทัด เหมือนกับการloop อะไรทำนองนี้อ่ะครับ
กรณีนี้ตรวจสอบได้ด้วยการ ลองview source ดูครับ ว่ามันมีอะไรที่ถูก genมาซ้ำกันหรือเปล่าครับ
Date :
2009-08-26 09:14:21
By :
apicha31
ตอ้งเอา code มาดูครับ
อาจจะช้าได้หลาย ส่วน
แนะนำ นำ Code มาสิครับ
ทางเราอาจช่วยได้ครับ
รับใบสั่งยา ได้เลย แล้วจัดให้ครับ
Date :
2009-08-26 09:21:42
By :
dr.website
โค้ดค่ะ
<?php
session_start();
?>
<?
include("../../includes/inc_dbconnect.php");
include("../../includes/inc_alertMessage.php");
require("../../includes/inc_systemLoader.php");
//echo "REQUEST==>";
//Util::ShowArray($_REQUEST);
/////////////////////// INIT VAR //////////////////////
$contractID =$_REQUEST[ddlContractID];
$deptID1 =$_REQUEST[ddlDept1];
$deptID2 =$_REQUEST[ddlDept2];
$deptID3 =$_REQUEST[ddlDept3];
$deptID4 =$_REQUEST[ddlDept4];
if ($_REQUEST[ddlYear]) { $yearTh = $_REQUEST[ddlYear];$yearEn = $yearTh - 543; } else {$yearEn = date("Y");}
if ($_REQUEST[ddlMonth]) {$month =$_REQUEST[ddlMonth];} else {$month =date("m");}
$rsDept1 = OrgstructsMasterdepts::GetRsDept1_by_manycondition_for_DDL($yearEn,$month,$contractID); //==>??????????/?????
$rsDept2 = OrgstructsMasterdepts::GetRsDept2_by_manycondition_for_DDL($yearEn,$month,$contractID,$deptID1); //==>????????
$rsDept3 = OrgstructsMasterdepts::GetRsDept3_by_manycondition_for_DDL($yearEn,$month,$contractID,$deptID1 ,$deptID2); //==>??????????
$rsDept4 = OrgstructsMasterdepts::GetRsDept4_by_manycondition_for_DDL($yearEn,$month,$contractID,$deptID1 ,$deptID2 , $deptID3); //==>?????????????
$orgIDs = Orgstructs::GetOrgIDbyDeptID2($deptID1, $deptID2, $deptID3, $deptID4) ;
$rsContractID = AssignRatio::GetRsContractID();
$rowDeptDetail =OrgstructsMasterdepts::GetRowDeptDetail($orgIDs); //==>ข้อมูลแผนก
//$orgID = $_REQUEST[ddlOrgID];
//==>ปี
$sql = "
SELECT distinct year + 543 AS year FROM timesheetstats order by 1 desc
";
$rsTimeSheetStatYear = $db->queryAll($sql);
//==>เดือน
$sql = "
SELECT distinct month AS month FROM timesheetstats where year like '%$yearEn%' order by 1
";
$rsTimeSheetStatMonth = $db->queryAll($sql);
//Util::ShowArray($rsTimeSheetStatMonth );
//==>เดือน ไทย
$rsMonth = Util::GetRSMonthFullNameTH();
//Util::ShowArray($rsMonth );
//==>contractID
$sql = "
SELECT distinct contractID FROM
timesheetstats
WHERE
year like '%$yearEn%' and month like '%$month%'
";
//echo nl2br($sql);
$rsContractID = $db->queryAll($sql);
//Util::ShowArray($rsTimeSheets );
//==>org and dept
$sql = "
SELECT O.orgID, O.leaf , M.name AS deptName FROM orgstructs O , masterdepts M
WHERE
O.orgID in (SELECT orgID FROM timesheetstats WHERE year = '$yearEn' AND month = '$month' AND contractID = '$contractID' )
AND (O.leaf=M.deptID)
";
//echo nl2br($sql);
$rsOrg = $db->queryAll($sql);
?>
<link href="../../themes/default/style.css" rel="stylesheet" type="text/css">
<script language="javascript" src="../../includes/js/common_function.js" ></script>
<script language="javascript" src="../../includes/js/NumberFormat.js" ></script>
<script language="javascript" src="../../includes/js/popcalendar.js" ></script>
<script language="javascript" src="../../includes/js/selectBoxFunctions.js" ></script>
<style type="text/css">
<!--
body,td,th {
font-size: 12px;
}
-->
</style><ผลการตรวจการจ้างเหมาบริการประจำเดือน>
<br />
<br>
<?
if($_SESSION[typeID] != 8){
$rowDeptDetail =OrgstructsMasterdepts::GetRowDeptDetail($_SESSION[orgID]);
//Util::ShowArray($rowDeptDetail); //==>ข้อมูลแผนก
$contractID = $_GET[ddlContractID] ;
$orgIDs = $_SESSION[orgID];
$dept1=OrgstructHistory::GetDisplayOrgIDLevel1($orgIDs ,$dept1,$yearEn,$month);
$dept2=OrgstructHistory::GetDisplayOrgIDLevel2($orgIDs ,$dept2,$yearEn,$month,$dept1);
$dept3=OrgstructHistory::GetDisplayOrgIDLevel3($orgIDs ,$dept3,$yearEn,$month,$dept1,$dept2);
$dept4=OrgstructHistory::GetDisplayOrgIDLevel4($orgIDs ,$dept4,$yearEn,$month,$dept1,$dept2,$dept3);
echo "<B>ฝ่าย</B> :".OrgstructHistory::GetOrgNameHistorybyDeptID($dept1,$yearEn,$month). "<br/>";
echo "<B>กอง</B> :".OrgstructHistory::GetOrgNameHistorybyDeptID($dept2,$yearEn,$month). "<br/>";
echo "<B>แผนก</B> :".OrgstructHistory::GetOrgNameHistorybyDeptID($dept3,$yearEn,$month)."<br/>";
echo "<B>กลุ่มงาน</B> :".OrgstructHistory::GetOrgNameHistorybyDeptID($dept4,$yearEn,$month). "<br/>";
}
?>
<br />
<form id="frmReport" name="frmReport" method="get" action="">
<input type="hidden" name="progAction">
<fieldset >
<table border="0" cellspacing="1" cellpadding="3">
<tr>
<td colspan="2"><table border="0" cellspacing="1" cellpadding="3">
<tr>
<td>ปี</td>
<td>
<select name="ddlYear" onchange="this.form.submit();">
<option value="">- -เลือก- -</option>
<?=Util::GetDDL( $rsTimeSheetStatYear , "year","year", $yearTh) ?>
</select>
<span class="warning">*</span> </td>
<td>เดือน</td>
<td>
<select name="ddlMonth" onchange="this.form.submit();">
<option value="">- -เลือก- -</option>
<?
for($i=0;$i<count($rsTimeSheetStatMonth);$i++){
echo "<option value=\"".sprintf( "%02d" , $rsTimeSheetStatMonth[$i][month])."\" " . ($month==$rsTimeSheetStatMonth[$i][month] ? " selected " : "") . " >". $rsMonth[ $rsTimeSheetStatMonth[$i][month] -1 ][name] ."</option>" ;
}
?>
</select>
<span class="warning">*</span> </td>
</tr>
</table></td>
</tr>
<tr>
<td>สัญญาเลขที่</td>
<td><input name="ddlOrgID" type="hidden" value="<?=$orgIDs?>" ><select name="ddlContractID" id="ddlContractID" onchange="this.form.submit();">
<option value="">- - - - -เลือก- - - - -</option>
<?=Util::GetDDL( $rsContractID , "contractid","contractid", $contractID) ?>
</select>
<span class="warning">*</span> </td>
</tr>
<?
if($_SESSION[typeID] == 8){
?>
<tr>
<td>ฝ่าย/สำนัก</td>
<td><select name="ddlDept1" id="ddlDept1" onChange="this.form.ddlDept2.value='';this.form.ddlDept3.value='';this.form.ddlDept4.value='';this.form.submit();">
<option value="">- - - - -เลือก- - - - -</option>
<?=OrgstructHistory::GetOrgIDLevel1($contractID,$deptID1,$yearEn,$month);?>
</select> </td>
</tr>
<tr>
<td>กอง</td>
<td><select name="ddlDept2" id="ddlDept2" onChange="this.form.ddlDept3.value='';this.form.ddlDept4.value='';this.form.submit();">
<option value="">- - - - -เลือก- - - - -</option>
<?=OrgstructHistory::GetOrgIDLevel2($contractID,$deptID2,$yearEn,$month,$deptID1);?>
</select></td>
</tr>
<tr>
<td>แผนก</td>
<td><select name="ddlDept3" id="ddlDept3" onChange="this.form.ddlDept4.value='';this.form.submit();">
<option value="">- - - - -เลือก- - - - -</option>
<?=OrgstructHistory::GetOrgIDLevel3($contractID,$deptID3,$yearEn,$month,$deptID1,$deptID2);?>
</select></td>
</tr>
<tr>
<td>กลุ่มงาน</td>
<td><select name="ddlDept4" id="ddlDept4" onchange="this.form.submit();">
<option value="">- - - - -เลือก- - - - -</option>
<?=OrgstructHistory::GetOrgIDLevel4($contractID,$deptID4,$yearEn,$month,$deptID1,$deptID2,$deptID3);?>
</select></td>
</tr>
<?
}
?>
</table>
<br>
<input name="btnReport" type="button" id="btnReport" class="button"
value=" ดูรายงาน "
onclick="
//==check validate==//
if(this.form.ddlContractID.value==''){ alert('<?=_TS_CONTRACT ?>'); this.form.ddlContractID.focus(); }
else if(this.form.ddlYear.value==''){ alert('<?=_TS_YEAR ?>'); this.form.ddlYear.focus(); }
else if(this.form.ddlMonth.value==''){ alert('<?=_TS_MONTH ?>'); this.form.ddlMonth.focus(); }
else{
this.form.progAction.value='showReport';
this.form.action = 'report03_Detail.php';
this.form.target = '_blank';
this.form.submit();
}
this.form.progAction.value='';
this.form.action = '';
this.form.target = '';
"
/>
<br>
<!-- <input name="btnCancel" type="button" id="btnCancel" class="button"
value="ยกเลิก"
/> -->
</fieldset >
</form>
Date :
2009-08-26 09:33:35
By :
fossil05
ผมแนะนำนิดนึ่งนะครับ
แนะนำให้ใช้ = มากกว่าใช้ Like
ถ้า Condition ของเราแน่นอน
และการใช้การ Join ควรเปลี่ยนมาใช้
inner join , left join, หรือ right join ครับ
น่าจะช่วยให้เร็วขึ้นได้ครับ
Date :
2009-08-26 10:55:11
By :
taobsd
Load balance : Server 03