I have this form to consult only for a period of time or just by the name of the client or to consult for a period of time and a specific client:
<form method="POST" action="">
<strong>Data Início:</strong> <input type="date" name="inicio" placeholder="Data Início">
<strong>Data Fim:</strong> <input type="date" name="fim" placeholder="Data Fim">
<strong>Utente:</strong> <input type="text" name="nome" placeholder="Utente">
<input type="submit" value="Consultar">
</form>
Code:
$inicio = $_POST['inicio'];
$fim = $_POST['fim'];
$nome= $_POST['nome'];
$result_cursos = "SELECT centrodb.utentes.codigoutente,
centrodb.utentes.nome,
centrodb.utentes.descricaovalencia,
centrodb.registoFisioterapia.'DataRegisto',
centrodb.registoFisioterapia.'Data',
Inicio,
Fim,
centrodb.colaboradores.Nome AS Colaborador,
TimeDiff(TIME_FORMAT(Fim,'%H:%i'), TIME_FORMAT(Inicio,'%H:%i')) AS 'Horas Consumidas'
FROM centrodb.registoFisioterapia LEFT OUTER JOIN centrodb.utentes
ON centrodb.utentes.Id = centrodb.registoFisioterapia.utente
LEFT OUTER JOIN colaboradores
ON centrodb.colaboradores.codigo = centrodb.registoFisioterapia.Nome WHERE centrodb.registoFisioterapia.'Data' >= '$inicio' OR centrodb.registoFisioterapia.'Data' <= '$fim' OR centrodb.utentes.nome LIKE '%$nome%'";
$resultado_cursos = mysqli_query($conn, $result_cursos);
$tabela3 .= '<div style="float: center" table align="center">';
$tabela3 .= '<table border="5">';
$tabela3 .= '<tr>';
$tabela3 .='<thead>';
$tabela3 .= '<tr>';
$tabela3 .= '<th>Nº Utente</th>';
$tabela3 .= '<th>Utente</th>';
$tabela3 .= '<th>Valência</th>';
$tabela3 .= '<th>Data Registo</th>';
$tabela3 .= '<th>Data</th>';
$tabela3 .= '<th>Hora Início</th>';
$tabela3 .= '<th>Hora Fim</th>';
$tabela3 .= '<th>Fisioterapeuta</th>';
$tabela3 .= '<th>Horas Consumidas</th>';
$tabela3 .= '</tr>';
$tabela3 .='</thead>';
$tabela3 .='<tbody>';
if (empty($resultado_cursos)) {
echo "Nenhum registro encontrado.";
}
while ($rows_cursos = mysqli_fetch_array($resultado_cursos)) {
$tabela3 .= '<tr>';
$tabela3 .= '<td>'.$rows_cursos['codigoutente'].'</td>';
$tabela3 .= '<td>'.$rows_cursos['nome'].'</td>';
$tabela3 .= '<td>'.$rows_cursos['descricaovalencia'].'</td>';
$tabela3 .= '<td>'.$rows_cursos['DataRegisto'].'</td>';
$tabela3 .= '<td>'.$rows_cursos['Data'].'</td>';
$tabela3 .= '<td>'.$rows_cursos['Inicio'].'</td>';
$tabela3 .= '<td>'.$rows_cursos['Fim'].'</td>';
$tabela3 .= '<td>'.$rows_cursos['Colaborador'].'</td>';
$tabela3 .= '<td>'.$rows_cursos['Horas Consumidas'].'</td>';
$tabela3 .= '</tr>';
}
$tabela3 .= '</tr>';
$tabela3 .='</tbody>';
$tabela3 .= '</table>';
$tabela3 .= '</div>';
echo $tabela3;
?>
When I search only for the start date and end date it returns the correct data, but if I search only by the name of the client or I search by the time interval and the client name does not return the correct data, it keeps the data that is initially.