如何使用PHP从两个不同的数据库中有效地检索大量数据

时间:2015-01-22 13:45:53

标签: php mysql

我有2个数据库

  • DatabaseA
  • DatabaseB

DatabaseA包含表格:

  • 人员
  • leaveEntry

DatabaseB包含表格:

  • punchingLogs
  • holidaySettings
  • workingHours

表工作人员包含200多条记录,leaveEntry包含员工的休假条目作为员工ID作为唯一字段。

表punchingLogs包含组织内外冲压的详细信息。每位员工每天最少2个日志。

在计算月度报告时,我必须遍历每一天,需要计算假期条目,离开类型,打击时间等。

目前,我已经使用一堆循环gor每天获取数据然后计算出勤率来编码。我认为这不是最好的解决方案。所以我创建了一个类Employee并尝试将详细信息更新到类成员一次我在数据库中找到了相关的员工ID。使用的逻辑是:生成新对象员工并将其添加到

$allstaff =array ();

$allstaff [id] = new object ();

这里的id将是来自db的唯一staffid,这可能是从1到200 +的任何值。这是以这种方式检索和存储数据的gud做法吗?

新创建的Employee类包含基本的setter和getter:

class Employee{
var $empName;
var $dept;
var $cat;
var $cl;
var $hpl;
var $coff;
var $dl;
var $lop;
function __construct($name,$department,$category,$casual,$halfpay,$compoff,$duty,$losofpay){
  $this->empName=$name;
  $this->dept=$department;
  $this->cat=$category;
  $this->cl=$casual;
  $this->hpl=$halfpay;
  $this->coff=$compoff;
  $this->dl=$duty;
  $this->lop=$losofpay;
}
function  getEmployeeName(){
  return $this->empName;
}
function  getEmployeeDeptName(){
  return $this->dept;
}
function  getEmployeeCatName(){
  return $this->cat;
}
function  getEmployeeCl(){
  return $this->cl;
}
function  getEmployeeHpl(){
  return $this->hpl;
}
function  getEmployeeCoff(){
  return $this->coff;
}
 function  getEmployeeDl(){
  return $this->dl;
}
function  getEmployeeLop(){
  return $this->lop;
}
}

查询staffdetails:

$queryStaff=mysql_query("SELECT * from `staff` WHERE `dept_id`=$dept AND `staffstatus_id`=1 ORDER BY `staffcategory_id` ASC");    

查询leaveEntry:

$leaveQ=mysql_query("SELECT * FROM `leave_entry` WHERE `staff_id`='$staffUID' AND `leavedate`='$dateMake' AND `status`='1'"); 

查询puchLogs:

$queryPunch=mysql_query("SELECT * FROM `attendancelogs` WHERE `EmployeeCode`='$staffCode' AND `LogDate`='$dateMake' ORDER BY `LogTime` ASC");   

0 个答案:

没有答案