基于指纹考勤机的真实的PHP操作Access数据库成功案例(最终实现) 2011-11-2v
听了我的建议,我们单位的食堂准备使用一台指纹考勤机统计吃饭人次,这样院里好给食堂的承包人以相应饭补。以前买过一台彩屏指纹机,数据库是access的,今儿又买了一台准备放到食堂里,而且考虑到停电,还特地配备了电池盒。


- long GetGeneralLogData(long *apnEnrollNumber, long *apnVerifyMode,long *apnInOutMode, DATA *apnDateTime)
- //数据库文件上传
- public function uploadAction(){
- //保存目录检测
- $dirurl = MDBDIR;
- $dir = $this->instance('file_list');
- $dir->make_dir($dirurl);
- $fileupload = $this->instance('file_upload');
- $new_file = $dirurl.MDBFILE;
- $result = $fileupload->upload($_FILES['upload'], $new_file);
- if(!$result){
- $this->assign('msg','文件上传失败!');
- $this->saveAction();
- }
- if(!$this->inputDBAction()){
- $this->assign('msg','文件导入数据库失败!');
- }else{
- $this->assign('msg',"文件已成功导入至数据库,请您在)."' >这里查询记录!");
- }
- $this->set_layout('usual');
- $this->assign('load_js_name','canteen');
- //display page
- $this->display('save');
- }
- //access数据库信息导入
- public function inputDBAction(){
- if(file_exists(MDBDIR.MDBFILE)){
- $access = $this->module('access');
- //注意mdb是有密码,但没有用户名
- $access->connect(MDBDIR.MDBFILE, '','2002', '', 0);
- $execarr = array();
- $result = $access->query("select * from ".mb_convert_encoding("考勤流水表", "GBK", "UTF-8")." where Used = No");
- while($arr = $access->fetch_array($result))
- {
- $execarr[] = $arr;
- }
- //现在写入数据库
- $att = $this->model('att_attendance');
- $flag = TRUE;
- foreach($execarr as $value){
- $data = $att->createRow();
- $data->userid = trim($value['UserID']);
- $data->flowtime = strtr(trim($value['FlowTime']),'/','-');
- $result = $att->save($data);
- if($result < 0){$flag = FALSE;break;}
- }
- return $flag;
- }
- }
- public function queryAction(){
- //权限验证
- $checkauth = $this->module('Checkauth');
- $checkauth->checkAuth(CANTEEN);
- //设定日期
- if(!isset($_POST['start']) && !isset($_POST['end'])){
- //默认返回最近1周的记录
- $now = getdate();
- //********根据今天来确定本周的日期,开始************
- if($now['wday']==0)$foo = -7;
- else $foo = 1-$now['wday'];
- $start = $now['year'].'-'.$now['mon'].'-'.($now['mday']+$foo);
- if($now['wday']==0)$foo = 0;
- else $foo = 7-$now['wday'];
- $end = $now['year'].'-'.$now['mon'].'-'.($now['mday']+$foo);
- //********根据今天来确定本周的日期,结束************
- $result = $this->model('att_attendance');
- //求出分组统计
- $att = $result->execute("select
att_attendance.userid,att_member.name,count(att_attendance.userid) as
total from att_attendance,att_member WHERE att_attendance.userid =
att_member.userid GROUP BY userid"); - //求得总数,使用Mysql嵌套查询
- $sum = $result->execute("select
sum(total) from (select
att_attendance.userid,att_member.name,count(att_attendance.userid) as
total from att_attendance,att_member WHERE att_attendance.userid =
att_member.userid GROUP BY userid) as sum"); - //在这里继续,显示出分组结果和总数结果,只是还没有把时间增加进去
- }else{
- //对提交上来的start和end作出新的查询
- }
- $this->set_layout('usual');
- $this->assign('load_js_name','canteen');
- exit();
- //display page
- $this->display();
- }





基于指纹考勤机的真实的PHP操作Access数据库成功案例(最终实现) 2011-11-2v的更多相关文章
- MFC通过ADO操作Access数据库
我在<VC知识库在线杂志>第十四期和第十五期上曾发表了两篇文章——“直接通过ODBC读.写Excel表格文件”和“直接通过DAO读.写Access文件”,先后给大家介绍了ODBC和DAO两 ...
- 直接通过ADO操作Access数据库
我在<VC知识库在线杂志>第十四期和第十五期上曾发表了两篇文章——“直接通过ODBC读.写Excel表格文件”和“直接通过DAO读.写Access文件”,先后给大家介绍了ODBC和DAO两 ...
- Python操作Access数据库
我们在这篇文章中公分了五个步骤详细分析了Python操作Access数据库的相关方法,希望可以给又需要的朋友们带来一些帮助. AD: Python编 程语言的出现,带给开发人员非常大的好处.我们可以利 ...
- 关于操作Access数据库jdk选择问题
关于操作Access数据库,使用jdk64位无法通过ODBC无法获取数据,只能通过jdk32位进行开发.
- JavaScript操作数据库JS操作Access数据库
avaScript操作数据库JS操作Access数据库,跟其他语言操作差不多,总结了一下习惯代码,仅供参考学习.现在在F盘有文件abc.mdf,表名为Student,一共2个字段,Id数字类型主键,s ...
- System.Data.OleDb操作access数据库类,【bubuko.com】
access数据库在应用了System.Data.OleDb后操作会很方便,这是一个常用的数据库操作类,其中两个方法,一个是返回datatable的,一个是执行sql语句返回影响记录的(一般是inse ...
- C#操作Access数据库(创建&修改结构)
本文转自:http://www.cnblogs.com/liyugang/archive/2012/11/17/2775393.html 想要在程序中控制Access,不是数据,而是Access数据库 ...
- VC++中使用ADO方式操作ACCESS数据库
ADO(ActiveX Data Object)是Microsoft数据库应用程序开发的新接口,是建立在OLE DB之上的高层数据库访问技术,即使你对OLE DB,COM不了解也能轻松对付ADO,因为 ...
- ACCESS-关于DELPHI中操作ACCESS数据库中单精度数据的问题
在近日几个帖子里面,和QQ群的讨论里面,我发现很多网友都遇到的问题都是因为不恰当地使用了单精度/双精度数值.因此想专门就这个话题谈一下. 单精度和双精度数值类型最早出现在C语言中(比较通用的语言里面) ...
随机推荐
- Mongodb 命令及 PyMongo 库的使用
1. PyMongo import pymongo 1. 初始化 Mongo 客户端 client=pymongo.MongoClient(mongodb://10.85.39.45:8188,10. ...
- PHPUnit简介及使用(thinkphp5的单元测试安装及使用)
PHPUnit简介及使用(thinkphp5的单元测试安装及使用) 一.总结 一句话总结:直接google这个phpunit(how to use phpunit),然后去官网看使用样例和手册,那些英 ...
- 2018-2019-2 20165332《网络攻防技术》Exp5 MSF基础应用
2018-2019-2 20165332<网络攻防技术>Exp5 MSF基础应用 1.基础问题回答 用自己的话解释什么是exploit,payload,encode. exploit:就是 ...
- 矩阵快速幂——POJ3070
矩阵快速幂和普通的快速幂差不多,只不过写起来比较麻烦一点,需要重载*运算符. 模板: struct mat { int m[maxn][maxn]; }unit; mat operator * (ma ...
- 《免费前端教程不会告诉你这些》知乎LIVE读后感
这个是昨天偶然间在知乎上看到的一个知乎LIVE,答题就是音频在线直播吧,我试听了一下觉得分享的还不错,就买了完整的.主讲人叫方应杭,貌似是个挺牛逼的程序猿,之前没有听过,但这是个典型的科班出生的程序员 ...
- 彻底明白IP地址——计算相关地址
知道ip地址和子网掩码后可以算出: 1. 网络地址 2. 广播地址 3. 地址范围 4. 本网有几台主机 例1:下面例子IP地址为192·168·100·5 子网掩码是255·255·255·0.算出 ...
- icon fonts入门
iconfont网站 http://www.iconfont.cn(推荐) http://fontello.com/ http://fontawesome.io/ https://icomoon. ...
- [转载]java中的标号:outer的作用
转载自:http://blog.sina.com.cn/s/blog_6f8bd746010136yr.html 标号label 标号提供了一种简单的break语句所不能实现的控制循环的方法,当在循环 ...
- PostgreSQL锁级别及什么操作获取什么锁
表级锁 大多数的表级锁是由内置的 SQL 命令获得的,但他们也可以通过锁命令来明确获取.可使用的表级锁包括: 访问共享(ACCESS SHARE) - SELECT 命令可在查询中引用的表上获得该锁. ...
- checkbox不显示,试试去掉-webkit-appearance这个样式
目前在项目中发现一个大坑,搞的我找了好久不知道因为什么,自用的reset.css中加入了 -webkit-appearance: none;其他所有表单没有出现问题,但checkbox会不显示,值改为 ...