$sql = "
replace into test
select $id, '$name', curdate(), timein, timeout
from (
select stattimein timein, now() timeout from test where statdate=curdate() and id=$id
union select now() timein, null
) tmp limit 1
";
ปล: field stattimeout สามารถเก็บเป็น null ได้ กรณีเก็บเวลาเข้า จะไม่มีเวลาออก
และ primary key คือ id + statdate สำคัญกับคำสั่ง replace
กรอก id อย่างเดียวก็น่าจะได้ name ไม่จำเป็นต้องเก็บให้เปลืองเนื้อที่ อ้างอิงจากตารางหลัก user เอาก็ได้