我有一个数据库包含我的员工的ID和名称(数据库1):
--------------
| ID | name |
--------------
| 1 | Mr.AA |
| 2 | Mr.AB |
|... | ... |
| 78 | Mr.CZ |
--------------
然后我的同事每天有2年的工作人员缺勤数据库(数据库2):
Tablename: Table_for_Mr.AA
--------------------------
| ID | date | work |
--------------------------
| 1 | 2016-01-01 | Yes |
| 2 | 2016-01-02 | Yes |
| 3 | 2016-01-03 | No |
|... | ... | ... |
|730 | 2017-12-31 | Yes |
--------------------------
由于我们的协议,我们自己拥有每个数据库(2方),因此每个数据库都存储在不同的服务器中。 最近我需要从我的网站上显示DATABASE 2的数据,我可以让我的同事制作PHP文件,返回每个名字的数组(www.colleaguewebsite / staff / absence.php?name = Mr.AA)
我已经在我的服务器中创建了新的'workstat'数据库(DATABASE 3),并提供了以下详细信息:
---------------------------------
| ID | date | Name | work |
---------------------------------
| 1 | 2016-01-01 |
| 2 | 2016-01-02 |
| 3 | 2016-01-03 |
|... | ... |
---------------------------------
这是我能做的最好的事情:
$sourceURL = 'www.colleaguewebsite/staff/absence.php'
$sql1= $conn->query("select * FROM staff ");
while($row_1 = $sql1->fetch_array()){
$name= $row_1 ['name'];
//getting the absence detail from each staff
$json_1 = file_get_contents($sourceURL.'?name='.$name);
$data_1 = json_decode($json_1,true);
foreach($data_1 as $value_1){
$date = $value_1['date'];
$work = $value_1['work'];
//if the correspondence date is exist then update, otherwise add
$sql_2 = $conn->query("select * FROM workstat WHERE date='$date' AND name='$name");
if ($sql_2->num_rows > 0){
$update=$conn->query("UPDATE workstat set name='$name', work='$work' WHERE date='$date' ");
}else{
$addnew=$ob->query("INSERT INTO availability (date, name, work) VALUES ('$date', '$name', '$work'
}
}
}
但是,我有一些困扰的事情:
如何在表格设计和加载时间中优化代码? 另一种方法比file_get_contents还好,我希望它仍然是PHP。