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

如何使用PHP从两个不同的数据库中有效地检索大型数据集,php,mysql,Php,Mysql,我有两个数据库 数据库a 数据库B 数据库A包含以下表: 职员 离职登记 DatabaseB包含以下表: 蓬钦格洛斯 度假环境 工作时间 表staff由200多条记录组成,leaveEntry由员工id为唯一字段的员工休假条目组成 表Punchingglogs包括从组织打卡和打卡的详细信息。每个员工每天至少有2个日志 在计算月报时,我必须重复每一天,并需要计算休假条目、休假类型、打卡时间等 目前,我已经用一堆循环编码了这个,每天获取数据,然后计算出勤率。我认为这不是最好的解决方案。因

我有两个数据库

  • 数据库a
  • 数据库B
数据库A包含以下表:

  • 职员
  • 离职登记
DatabaseB包含以下表:

  • 蓬钦格洛斯
  • 度假环境
  • 工作时间
表staff由200多条记录组成,leaveEntry由员工id为唯一字段的员工休假条目组成

表Punchingglogs包括从组织打卡和打卡的详细信息。每个员工每天至少有2个日志

在计算月报时,我必须重复每一天,并需要计算休假条目、休假类型、打卡时间等

目前,我已经用一堆循环编码了这个,每天获取数据,然后计算出勤率。我认为这不是最好的解决方案。因此,我创建了一个班级员工,并试图在数据库中找到相关员工id后向班级成员更新详细信息。我使用的逻辑是:我将创建新对象employee并将其添加到

$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;
}
}
查询员工详细信息:

$queryStaff=mysql_query("SELECT * from `staff` WHERE `dept_id`=$dept AND `staffstatus_id`=1 ORDER BY `staffcategory_id` ASC");    
查询休假条目:

$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");   

我很好奇为什么要使用两个数据库?:)首先需要从数据库中获取信息(并按照建议将其存储在数组中)然后将该信息与数据库B中的数据进行相应的比较。第一个简单的步骤是只在查询中选择所需的字段,而不查看任何代码。是的,我的决定是错误的。@Shan您能否提供您所拥有的类的一些代码以及数据库查询的一个简单示例。修复您的设计。简单。