【发布时间】:2015-12-21 01:59:54
【问题描述】:
我有数据库 Microsoft Access
表CHECKTIME
USERID CHEKTIME
1 2015-06-21 07:34:00
1 2015-06-21 07:50:00
1 2015-06-21 16:00:00
1 2015-06-21 16:48:00
2 2015-06-21 07:08:00
2 2015-06-21 13:48:00
2 2015-06-21 17:08:00
3 ....................
我想将数据传输到带有结果的 MySQL 查询中:
userId colDate colIn colOut
1 2015-06-21 07:34:00 16:48:00
2 2015-06-21 07:08:00 17:08:00
3 .......... ........ ........
请帮帮我
这个查询让我陷入了最终测试
为什么数据不能插入PHPMyAdmin?或 ms 访问不能声明 MIN 和 MAX 查询?这个函数和查询怎么样:
public function getPresensi(){
$dbName = $_SERVER['DOCUMENT_ROOT']."/presensi-app/assets/database/upj.mdb";
$user = "";
$password = "";
$conn = odbc_connect("Driver={Microsoft Access Driver (*.mdb)};Dbq=$dbName", $user, $password);
$qry = "SELECT USERID as id, CHECKTIME as check, min(CHECKTIME) as masuk, max(CHECKTIME) as keluar FROM CHECKINOUT group by USERID,date(CHECKTIME)";
$result = odbc_exec($conn,$qry);
while ($data[] = odbc_fetch_array($result));
odbc_free_result($result);
odbc_close($conn);
$tbl = 'tb_kehadiran';
$db_mysql = $this->load->database('default',TRUE);
$db_mysql->trans_start();
$db_mysql->truncate($tbl);
foreach($data as $k => $v){
$data_mysql = array(
'colUserID' => $v['id'],
'colDate' => $v['check'],
'colJamMasuk' => $v['masuk'],
'colJamKeluar' => $v['keluar'],
);
if($data_mysql != null){
$db_mysql->insert($tbl, $data_mysql);
}
}
$db_mysql->trans_complete();
$db_mysql->close();
}
【问题讨论】:
-
您应该多解释一下,选择特定时间作为输入或输出的要求是什么?不管现在是什么时间,总是第一个和最后一个吗? IE。早上有人忘记签到,退房的时候不小心签了2次,导致db里有2次。
-
别忘了添加您已经尝试过的内容。
-
数据库不是数据签入或签出的解释。但数据会记录每个人在任何时候签到。如果这个人只有一个签到,Colin 和 colout 会是一样的。例如:userID, colDate, Colin, colout ->1, 2015-08-21, 08:00:00, 08:00:00
-
SELECT USERID 作为 id,CHECKTIME 作为日期,MIN(CHECKTIME) 作为 colIn,MAX(CHECKTIME) 作为 colOut FROM CHCKINOUT
-
您的 php 代码存在多个问题。首先在 phpmyadmin 中测试查询并评论是否是您想要的结果,然后我们可以处理 php
标签: php mysql ms-access migrate