插入或更新MySQL表-IF / ELSE?

时间:2019-12-23 13:56:35

标签: php mysql

我正在开发一个时钟输入系统,可以让每个人都进入时钟输入,但是我不确定如何处理时钟输出。

我只是插入一个ID,以及生成的时间和日期。如果他们已经有当天的数据,那么我想更新该行,并将时间添加到Clock out列中。

当前我在我的insert.php中-

$conn = mysqli_connect('localhost','x','x','x');
date_default_timezone_set('Europe/London');
$id= $_POST['id'];
$date = date('y-m-d');
$time = date('h:i:s');
$footwear = 'Yes';

$sql="INSERT INTO `clock_times` (`clockid`, `clockin`, `date`, `footwear`) VALUES ('$id', '$time', '$date', '$footwear')";
if ($conn->query($sql) === TRUE) {
    echo "Thank you";
}
else 
{
    echo("Error description: $id 1234 $sql" . $sql -> error );
}
?>

哪个适合插入新行。但是,我想做的是- 如果id和Date已经在同一行中,则我希望“时间”进入“超时”列。

否则,-如上(时钟输入)添加新行。

所以,类似-

"IF EXISTS ( SELECT FROM 'clocktimes' WHERE 'clockid' = '$id' AND date = '$date' )
    UPDATE 'clocktimes' ('clockout') VALUES ('$time')
Else 
INSERT INTO `clock_times` (`clockid`, `clockin`, `date`, `footwear`) VALUES ('$id', '$time', '$date', '$footwear')";

在数据库中,clockid或date列都不会是唯一的(其他人正在约会,或者其他日子是同一个人)。但是它们只能一起出现一次。

如果某人在同一天一直在进行时钟输入/输出,那么最好只是继续重写时钟输出时间。

0 个答案:

没有答案