0

我正在尝试进行出勤监控,只要将其记录到数据库中,一个人就可以根据自己的意愿进行计时和超时。

id   idnumber    datein      timein     dateout     timeout

1     123      2013-02-21   08:00:01   2013-02-21   11:12:45

2     456      2013-02-21   10:15:01   2013-02-21   05:30:01

3     123      2013-02-21   06:58:52   2013-02-21   03:20:16

4     123      2013-02-21   10:05:35   2013-02-21 

谁能给我一个 php 中的插入/更新代码?

我有这个代码,如果不存在则可以插入 idnumber,如果存在则更新。

$query = "SELECT * FROM tblattendance WHERE idnumber='".$_POST[idnumber']."'";
$res = mysql_query($query);
list($exist) = mysql_fetch_array($res);

    if (!$exist){
          $query = "INSERT INTO tblattendance SET idnumber='".$_POST['idnumber']."', datein=CURDATE(), timein = CURTIME()";
          $insert_result = mysql_query($query);
    }else{
         $query1 = "UPDATE tblattendance SET dateout=CURDATE(), timeout = CURTIME() WHERE idnumber='".$_POST['idnumber']."' ORDER BY id DESC LIMIT 1 ";
         $insert_result1 = mysql_query($query1);    
    }

我想要的是我可以插入相同的 idnumber 而不更新旧记录。可能吗?

4

1 回答 1

0

创建复合 ID 键。这是对两列的唯一约束 - idnumber+ 类型,其中类型为例如 0 = in,1 = out。

CREATE TABLE foo (
   id INT PRIMARY KEY,
   idnumber INT,
   type TINYINT(1),
   UNIQUE KEY idtype (id, type)
);
于 2013-02-22T04:06:04.707 回答