0% found this document useful (0 votes)
26 views7 pages

ZK Time in PHP With Mysql Database - Stack Overflow

Uploaded by

nadeenhady2009
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
26 views7 pages

ZK Time in PHP With Mysql Database - Stack Overflow

Uploaded by

nadeenhady2009
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 7

ZK Time in PHP with mysql database

Asked 8 years, 5 months ago Modified 5 years, 10 months ago Viewed 7k times Part of PHP Collective

Is there a way to access ZK time attendance machine database which is in mdb format in php using mysql
db ? Im trying to create a web page that will display a custom attendance report.
1
php

Share Edit Follow asked Mar 9, 2017 at 7:34


Irfan Khan
11 1 2

1 ues "PDO("odbc:Driver={Microsoft Access Driver (*.mdb)}; Dbq="mydb.mdb"; Uid=Admin"); " – MANISHDAN LANGA Mar
9, 2017 at 10:09

2 Answers Sorted by: Highest score (default)

Hi i used zk machines to connect to a database and i retrieve data using my php web pages. copy this script,
its an sql script it will create a duplicate of that mdb file.Then install the zk time and attendance software
2 and make the machine point to this database. boom you good to go.

CREATE TABLE CHECKEXACT (


EXACTID INT IDENTITY(1,1) NOT NULL ,
USERID INT NULL DEFAULT 0,
CHECKTIME DATETIME NULL DEFAULT 0,
CHECKTYPE VARCHAR (2) NULL DEFAULT 0,
ISADD SMALLINT NULL DEFAULT 0,
YUYIN VARCHAR (25) NULL ,
ISMODIFY SMALLINT NULL DEFAULT 0,
ISDELETE SMALLINT NULL DEFAULT 0,
INCOUNT SMALLINT NULL DEFAULT 0,
ISCOUNT SMALLINT NULL DEFAULT 0,
MODIFYBY VARCHAR (20) NULL,
[DATE] DATETIME NULL,
CONSTRAINT EXACTID PRIMARY KEY (EXACTID)
)
;

CREATE TABLE CHECKINOUT (


USERID INT NOT NULL ,
CHECKTIME DATETIME NOT NULL DEFAULT GETDATE(),
CHECKTYPE VARCHAR (1) NULL DEFAULT 'I',
VERIFYCODE INT NULL DEFAULT 0,
SENSORID VARCHAR (5) NULL,
CONSTRAINT USERCHECKTIME PRIMARY KEY (USERID, CHECKTIME)
)
;

CREATE TABLE DEPARTMENTS (


DEPTID INT IDENTITY(1,1) NOT NULL ,
DEPTNAME VARCHAR (30) NULL ,
SUPDEPTID INT NOT NULL DEFAULT 1,
CONSTRAINT DEPTID PRIMARY KEY (DEPTID)
)
;

CREATE TABLE EXCNOTES (


USERID INT NULL ,
ATTDATE DATETIME NULL ,
NOTES VARCHAR (200) NULL
)
;

CREATE TABLE HOLIDAYS (


HOLIDAYID INT IDENTITY(1,1) NOT NULL ,
HOLIDAYNAME VARCHAR (20) NULL ,
HOLIDAYYEAR SMALLINT NULL ,
HOLIDAYMONTH SMALLINT NULL ,
HOLIDAYDAY SMALLINT NULL DEFAULT 1,
STARTTIME DATETIME NULL ,
DURATION SMALLINT NULL ,
HOLIDAYTYPE SMALLINT NULL ,
XINBIE VARCHAR (4) NULL ,
MINZU VARCHAR (50) NULL,
CONSTRAINT HOLID PRIMARY KEY (HOLIDAYID)
)
;

CREATE TABLE NUM_RUN (


NUM_RUNID INT IDENTITY(1,1) NOT NULL ,
OLDID INT NULL DEFAULT -1,
NAME VARCHAR (30) NOT NULL ,
STARTDATE DATETIME NULL DEFAULT '1900-1-1',
ENDDATE DATETIME NULL DEFAULT '2099-12-31',
CYLE SMALLINT NULL DEFAULT 1,
UNITS SMALLINT NULL DEFAULT 1,
CONSTRAINT NUMID PRIMARY KEY (NUM_RUNID)
)
;

CREATE TABLE NUM_RUN_DEIL (


NUM_RUNID SMALLINT NOT NULL ,
STARTTIME DATETIME NOT NULL ,
ENDTIME DATETIME NULL ,
SDAYS SMALLINT NOT NULL ,
EDAYS SMALLINT NULL ,
SCHCLASSID INT NULL DEFAULT -1,
CONSTRAINT NUMID2 PRIMARY KEY (NUM_RUNID, SDAYS, STARTTIME)
)
;

CREATE TABLE SECURITYDETAILS (


SECURITYDETAILID INT IDENTITY(1,1) NOT NULL ,
USERID SMALLINT NULL ,
DEPTID SMALLINT NULL ,
SCHEDULE SMALLINT NULL ,
USERINFO SMALLINT NULL ,
ENROLLFINGERS SMALLINT NULL ,
REPORTVIEW SMALLINT NULL ,
REPORT VARCHAR (10) NULL,
CONSTRAINT NAMEID2 PRIMARY KEY (SECURITYDETAILID)
)
;

CREATE TABLE SHIFT (


SHIFTID INT IDENTITY(1,1) NOT NULL ,
NAME VARCHAR (20) NULL ,
USHIFTID INT NULL DEFAULT -1,
STARTDATE DATETIME NOT NULL DEFAULT '1900-1-1',
ENDDATE DATETIME NULL DEFAULT '1900-12-31',
RUNNUM SMALLINT NULL DEFAULT 0,
SCH1 INT NULL DEFAULT 0,
SCH2 INT NULL DEFAULT 0,
SCH3 INT NULL DEFAULT 0,
SCH4 INT NULL DEFAULT 0,
SCH5 INT NULL DEFAULT 0,
SCH6 INT NULL DEFAULT 0,
SCH7 INT NULL DEFAULT 0,
SCH8 INT NULL DEFAULT 0,
SCH9 INT NULL DEFAULT 0,
SCH10 INT NULL DEFAULT 0,
SCH11 INT NULL DEFAULT 0,
SCH12 INT NULL DEFAULT 0,
CYCLE SMALLINT NULL DEFAULT 0,
UNITS SMALLINT NULL DEFAULT 0 ,
CONSTRAINT SHIFTS PRIMARY KEY (SHIFTID)
)
;

CREATE TABLE TEMPLATE (


TEMPLATEID INT IDENTITY(1,1) NOT NULL ,
USERID INT NOT NULL ,
FINGERID INT NOT NULL ,
TEMPLATE image NOT NULL ,
TEMPLATE2 image NULL ,
TEMPLATE3 image NULL ,
BITMAPPICTURE image NULL ,
BITMAPPICTURE2 image NULL ,
BITMAPPICTURE3 image NULL ,
BITMAPPICTURE4 image NULL ,
USETYPE SMALLINT NULL ,
CONSTRAINT TEMPLATED PRIMARY KEY (TEMPLATEID)
)
;

CREATE TABLE USER_OF_RUN (


USERID INT NOT NULL ,
NUM_OF_RUN_ID INT not NULL ,
STARTDATE DATETIME not NULL DEFAULT '1900-1-1',
ENDDATE DATETIME not NULL DEFAULT '2099-12-31',
ISNOTOF_RUN INT NULL DEFAULT 0,
ORDER_RUN INT NULL ,
CONSTRAINT USER_ST_NUM PRIMARY KEY (USERID, NUM_OF_RUN_ID, STARTDATE,
ENDDATE)
)
;

CREATE TABLE USER_SPEDAY (


USERID INT NOT NULL ,
STARTSPECDAY DATETIME NOT NULL DEFAULT '1900-1-1',
ENDSPECDAY DATETIME NULL DEFAULT '2099-12-31',
DATEID SMALLINT not NULL DEFAULT -1,
YUANYING VARCHAR (200) NULL ,
[DATE] DATETIME NULL ,
CONSTRAINT USER_SEP PRIMARY KEY (USERID, STARTSPECDAY, DATEID)
)
;

CREATE TABLE USER_TEMP_SCH (


USERID INT not NULL ,
COMETIME DATETIME not NULL ,
LEAVETIME DATETIME not NULL ,
OVERTIME INT not NULL DEFAULT 0,
[TYPE] SMALLINT NULL DEFAULT 0,
FLAG SMALLINT NULL DEFAULT 1,
SCHCLASSID INT NULL DEFAULT -1,
CONSTRAINT USER_TEMP PRIMARY KEY (USERID, COMETIME, LEAVETIME)

)
;

CREATE TABLE USERINFO (


USERID INT IDENTITY(1,1) NOT NULL ,
BADGENUMBER VARCHAR (12) NOT NULL ,
SSN VARCHAR (20) NULL ,
NAME VARCHAR (20) NULL ,
GENDER VARCHAR (2) NULL ,
TITLE VARCHAR (20) NULL ,
PAGER VARCHAR (20) NULL ,
BIRTHDAY DATETIME NULL ,
HIREDDAY DATETIME NULL ,
STREET VARCHAR (40) NULL ,
CITY VARCHAR (2) NULL ,
STATE VARCHAR (2) NULL ,
ZIP VARCHAR (12) NULL ,
OPHONE VARCHAR (20) NULL ,
FPHONE VARCHAR (20) NULL ,
VERIFICATIONMETHOD SMALLINT NULL ,
DEFAULTDEPTID SMALLINT NULL DEFAULT 1,
SECURITYFLAGS SMALLINT NULL ,
ATT SMALLINT NOT NULL DEFAULT 1,
INLATE SMALLINT NOT NULL DEFAULT 1,
OUTEARLY SMALLINT NOT NULL DEFAULT 1,
OVERTIME SMALLINT NOT NULL DEFAULT 1,
SEP SMALLINT NOT NULL DEFAULT 1,
HOLIDAY SMALLINT NOT NULL DEFAULT 1,
MINZU VARCHAR (8) NULL ,
[PASSWORD] VARCHAR (20) NULL ,
LUNCHDURATION SMALLINT NOT NULL DEFAULT 1,
MVerifyPass VARCHAR(10) NULL,
PHOTO Image NULL,
CONSTRAINT USERIDS PRIMARY KEY (USERID)
)
;

CREATE UNIQUE INDEX USERFINGER ON TEMPLATE(USERID, FINGERID)


;

CREATE UNIQUE INDEX HOLIDAYNAME ON HOLIDAYS(HOLIDAYNAME)


;

CREATE INDEX DEPTNAME ON DEPARTMENTS(DEPTNAME)


;

CREATE UNIQUE INDEX EXCNOTE ON EXCNOTES(USERID, ATTDATE)


;

CREATE UNIQUE INDEX BADGENUMBER ON USERINFO(BADGENUMBER)


;

Create Table LeaveClass(


LeaveId INT Identity(1,1) not null primary key,
LeaveName VARCHAR(20) not null,
MinUnit float not null default 1,
Unit smallint not null default 1,
RemaindProc smallint not null default 1,
RemaindCount smallint not null default 1,
ReportSymbol varchar(4) not null default '-',
Deduct float not null default 0,
Color int not null default 0,
Classify SMALLINT NOT null default 0)
;

Create Table LeaveClass1(


LeaveId INT Identity(999,1) not null primary key,
LeaveName VARCHAR(20) not null,
MinUnit float not null default 1,
Unit smallint not null default 0,
RemaindProc smallint not null default 2,
RemaindCount smallint not null default 1,
ReportSymbol varchar(4) not null default '-',
Deduct float not null default 0,
LeaveType SMALLINT not null default 0,
Color int not null default 0,
Classify SMALLINT not null default 0,
Calc text null)
;

CREATE TABLE SchClass(


schClassid INT identity(1,1) NOT NULL PRIMARY KEY,
schName VARCHAR(20) NOT null,
StartTime datetime NOT NULL,
EndTime datetime NOT NULL,
LateMinutes int null,
EarlyMinutes int null,
CheckIn int null default 1,
CheckOut int null default 1,
CheckInTime1 datetime NULL,
CheckInTime2 datetime NULL,
CheckOutTime1 datetime NULL,
CheckOutTime2 datetime NULL,
Color Int NULL default 16715535,
AutoBind SMALLINT NULL DEFAULT 1)
;

Create Table AttParam(


PARANAME VARCHAR (20) NOT NULL Primary key,
PARATYPE VARCHAR (2) NULL ,
PARAVALUE VARCHAR(100) NOT NULL)
;
INSERT INTO DEPARTMENTS (DEPTNAME, SUPDEPTID) VALUES('Our Company',0);
insert into LeaveClass(LeaveName, Unit, ReportSymbol, Color)
values('Sick', 1, 'B', 3398744);
insert into LeaveClass(LeaveName, Unit, ReportSymbol, Color)
values('Vacation', 1, 'S', 8421631);
insert into LeaveClass(LeaveName, Unit, ReportSymbol, Color)
values('Other', 1, 'T', 16744576);
insert into LeaveClass1(LeaveName, MinUnit, Unit, RemaindProc,
RemaindCount, ReportSymbol, LeaveType, Calc)
values('BLeave', 0.5, 3, 1, 1, 'G', 3,
'if(AttItem(LeaveType1)=999,AttItem(LeaveTime1),0)+if(AttItem(LeaveType2)=999,AttI
insert into LeaveClass1(LeaveName, MinUnit, Unit, RemaindProc,
RemaindCount, ReportSymbol, LeaveType)
values('Normal', 0.5, 3, 1, 0, ' ', 3);
insert into LeaveClass1(LeaveName, MinUnit, Unit, RemaindProc,
RemaindCount, ReportSymbol, LeaveType, Calc)
values('Late', 10, 2, 2, 1, '>', 3, 'AttItem(minLater)');
insert into LeaveClass1(LeaveName, MinUnit, Unit, RemaindProc,
RemaindCount, ReportSymbol, LeaveType, Calc)
values('Early', 10, 2, 2, 1, '<', 3, 'AttItem(minEarly)');
insert into LeaveClass1(LeaveName, MinUnit, Unit, RemaindProc,
RemaindCount, ReportSymbol, LeaveType, Calc)
values('AfL', 1, 1, 1, 1, 'L', 3,
'if((AttItem(LeaveType1)>0) and (AttItem(LeaveType1)
<999),AttItem(LeaveTime1),0)+if((AttItem(LeaveType2)>0) and
(AttItem(LeaveType2)<999),AttItem(LeaveTime2),0)+if((AttItem(LeaveType3)>0) and
(AttItem(LeaveType3)<999),AttItem(LeaveTime3),0)+if((AttItem(LeaveType4)>0) and
(AttItem(LeaveType4)<999),AttItem(LeaveTime4),0)+if((AttItem(LeaveType5)>0) and
(AttItem(LeaveType5)<999),AttItem(LeaveTime5),0)');
insert into LeaveClass1(LeaveName, MinUnit, Unit, RemaindProc,
RemaindCount, ReportSymbol, LeaveType, Calc)
values('Absent', 0.5, 3, 1, 0, 'A', 3, 'AttItem(MinAbsent)');
insert into LeaveClass1(LeaveName, MinUnit, Unit, RemaindProc,
RemaindCount, ReportSymbol, LeaveType, Calc)
values('OT', 1, 1, 1, 1, '+', 3, 'AttItem(MinOverTime)');
insert into LeaveClass1(LeaveName, MinUnit, Unit, RemaindProc,
RemaindCount, ReportSymbol, LeaveType, Calc)
values('OT2', 1, 1, 0, 1, '=', 0, 'if(HolidayId(1)=1,
AttItem(MinOverTime),0)');
insert into LeaveClass1(LeaveName, MinUnit, Unit, RemaindProc,
RemaindCount, ReportSymbol, LeaveType)
values('Rest', 0.5, 3, 2, 1, '-', 2);
insert into LeaveClass1(LeaveName, MinUnit, Unit, RemaindProc,
RemaindCount, ReportSymbol, LeaveType, Calc)
values('N/In', 1, 4, 2, 1, '[', 2,

'If(AttItem(CheckIn)=null,If(AttItem(OnDuty)=null,0,if(((AttItem(LeaveStart1)=null
or (AttItem(LeaveStart1)>AttItem(OnDuty))) and AttItem(DutyOn),1,0)),0)');
insert into LeaveClass1(LeaveName, MinUnit, Unit, RemaindProc,
RemaindCount, ReportSymbol, LeaveType, Calc)
values('N/Out', 1, 4, 2, 1, ']', 2,

'If(AttItem(CheckOut)=null,If(AttItem(OffDuty)=null,0,if((AttItem(LeaveEnd1)=null)
or (AttItem(LeaveEnd1)<AttItem(OffDuty)),if((AttItem(LeaveEnd2)=null) or
(AttItem(LeaveEnd2)<AttItem(OffDuty)),if(((AttItem(LeaveEnd3)=null) or
(AttItem(LeaveEnd3)<AttItem(OffDuty))) and AttItem(DutyOff),1,0),0),0)),0)');
insert into LeaveClass1(LeaveName, MinUnit, Unit, RemaindProc,
RemaindCount, ReportSymbol, LeaveType)
values('ROT', 1, 4, 2, 1, '{', 3);
insert into LeaveClass1(LeaveName, MinUnit, Unit, RemaindProc,
RemaindCount, ReportSymbol, LeaveType)
values('BOUT', 1, 4, 2, 1, '}', 3);
insert into LeaveClass1(LeaveName, MinUnit, Unit, RemaindProc,
RemaindCount, ReportSymbol, LeaveType)
values('OUT', 1, 1, 2, 1, 'L', 3);
insert into LeaveClass1(LeaveName, MinUnit, Unit, RemaindProc,
RemaindCount, ReportSymbol, LeaveType)
values('FOT', 1, 1, 2, 1, 'F', 3);

insert into AttParam(ParaName,ParaValue) values('MinsEarly',5);


insert into AttParam(ParaName,ParaValue) values('MinsLate',10);
insert into AttParam(ParaName,ParaValue) values('MinsNoBreakIn',60);
insert into AttParam(ParaName,ParaValue) values('MinsNoBreakOut',60);
insert into AttParam(ParaName,ParaValue) values('MinsNoIn',60);
insert into AttParam(ParaName,ParaValue) values('MinsNoLeave',60);
insert into AttParam(ParaName,ParaValue) values('MinsNotOverTime',60);
insert into AttParam(ParaName,ParaValue) values('MinsWorkDay',420);
insert into AttParam(ParaName,ParaValue) values('NoBreakIn',1012);
insert into AttParam(ParaName,ParaValue) values('NoBreakOut',1012);
insert into AttParam(ParaName,ParaValue) values('NoIn',1001);
insert into AttParam(ParaName,ParaValue) values('NoLeave',1002);
insert into AttParam(ParaName,ParaValue) values('OutOverTime',0);
insert into AttParam(ParaName,ParaValue) values('TwoDay',0);
insert into AttParam(ParaName,ParaValue) values('CheckInColor',16777151);
insert into AttParam(ParaName,ParaValue) values('CheckOutColor',12910591);
insert into AttParam(ParaName,ParaValue) values('DBVersion',167);

Share Edit Follow answered Aug 14, 2017 at 5:43


joshua
21 4
In PHP you can do that.

Something like this:


0
$dbName = $_SERVER["DOCUMENT_ROOT"] . "zksoftware\zksoftware.mdb";
if (!file_exists($dbName)) {
die("Could not find database file.");
}
$db = new PDO("odbc:DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=$dbName;
Uid=; Pwd=;");

A successful connection will allow SQL commands to be executed from PHP to read or write the database.
If, however, you get the error message “PDOException Could not find driver” then it’s likely that the PDO
ODBC driver is not installed. Use the phpinfo() function to check your installation for references to PDO.

If an entry for PDO ODBC is not present, you will need to ensure your installation includes the PDO extension
and ODBC drivers. To do so on Windows, uncomment the line extension=php_pdo_odbc.dll in php.ini ,
restart Apache, and then try to connect to the database again.

In your case, I believe it would work if the .mdb the file is on an external server, but you'd have to be able to
hit it from where you're serving the page.

Not sure if this is an intranet or across the public internet, but if it's public internet you might want to rework
your workflow a bit, as generally making your database accessible that way is not something you'd want to
do.

Reference answer at here.

Share Edit Follow edited May 23, 2017 at 10:30 answered Mar 9, 2017 at 7:39
Community Bot Ave
1 1 4,460 5 44 73

Start asking to get answers


Find the answer to your question by asking.

Ask question

Explore related questions

php

See similar questions with these tags.

You might also like