Su consulta SQL es incorrecta:
$sql="INSERT INTO work_details (project, work_description, percentage, timeIn, timeOut, id) VALUES ('$val', '$id')";
Tiene 6 columnas para establecer y proporcionar solo 2 valores.
En lugar de iterar sobre $list
y ejecutando una consulta para cada valor, debe construir la consulta mientras itera y ejecutarla solo una vez al final cuando esté completa. Ejemplo:
foreach (...) {
$sql = $sql . "'$val', ";
...
}
$sql = "INSERT INTO work_details (project, work_description, percentage, timeIn, timeOut, id) VALUES (" . $sql . "'$id')";
Esta es solo la idea. No soy un tipo de PHP, por lo que probablemente haya errores en lo que escribí.
EDITAR :Esto supone que el orden es siempre el mismo en la lista.