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 キーを作成します。これは、2 つの列に対する一意の制約です - idnumber+ type ここで、type は、たとえば 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 に答える