在mysql中有条件地插入或更新

I have a table with input of type time and I want to check first if there is a row with the current date and the id of employee, if it was I update the value of the input if not I insert a new row. This is what I have tried but it always inserts a new row even if the condition exists:

<?php 

$E1=$_POST['E1'];

$connect = mysqli_connect("localhost", "root", "ntr-ktb123", "absence"); 
$sql1="SELECT * FROM retards WHERE Date ='Curdate()' AND 
IdEmpl='".$_POST["IdEmp"]."' ;";
$result1=mysqli_query($connect,$sql1);
if(!$result1){
       die('ERREUR SQL ! <br>'.$sql.'<br>'.mysqli_error());}
    if($dt=mysqli_fetch_array($result1,MYSQLI_ASSOC)){

$sql="update retards set E1='$E1'  where IdEmpl='".$_POST["IdEmp"]."' AND 
 Date=CURDATE();";
}

else{

$sql="insert into retards(IdEmpl,Date,E1) values 
('".$_POST["IdEmp"]."',CURDATE(),'$E1'); ";
}
$result = mysqli_query($connect, $sql);
if (!$result)
  {
 echo("Error description: " . mysqli_error($connect));
 }
else {
$message ="Effectué avec succès!";

echo "<script type='text/javascript'>alert('$message'); </script>";
}
mysqli_close($connect);

 ?>

This is known as an upsert which can be done in mysql using the insert ... on duplicate key update syntax.

insert into t (a, b, c) values (?, ?, ?)
on duplicate key update b = ?

Your table should have an appropriate unique index or primary key defined on the column(s) of interest.