Estou precisando fazer uma consulta sql no php, mas com condições. Tipo, seria um filtro onde a pessoa poderá filtrar por data, por status, por curso etc. Se a pessoa escolhe um dos filtros ou todos, eu consigo fazer.... mas e se a pessoa escolhe 2 ou mais filtros... aí já não sei como faço isso.
Pensei em algo desse tipo:
if ($_POST['fstatus'] or $_POST['fcurso'] or $_POST['fcidade'] or $_POST['fproxcont'] or $_POST['fdatacad'])
{
$sql= "SELECT C.ID, C.NOME, CI.DESCRICAO, C.IDCURSO_INTERESSE2, C.CIDADE, S.DESCRICAO, C.PROXIMO_CONTATO
FROM GC_CONTATOS C
LEFT JOIN GC_STATUS S ON (C.IDSTATUS = S.ID)
LEFT JOIN GC_CURSOS CI ON (C.IDCURSO_INTERESSE1 = CI.ID)
WHERE S.ID='$status'";
if ($curso<>'')
"AND CI.ID='$curso'";
if ($cidade<>'')
"AND UDF_CONSTR(C.CIDADE) LIKE '%$cidade%'";
if ($data3<>'' and $data4<>'')
"AND C.PROXIMO_CONTATO BETWEEN '$data3' AND '$data4'";
if ($data1<>'' and $data2<>'')
"AND C.DATA BETWEEN '$data1' AND '$data2'";
"ORDER BY C.ID";
}
mas dessa forma não dá certo, pois o código se encerra no primeiro ponto e vírgula.... como eu posso resolver isso?
Espero que consigam entender o que preciso... obrigada!
Pergunta
Gisele.Passoni
Bom dia a todos!
Estou precisando fazer uma consulta sql no php, mas com condições. Tipo, seria um filtro onde a pessoa poderá filtrar por data, por status, por curso etc. Se a pessoa escolhe um dos filtros ou todos, eu consigo fazer.... mas e se a pessoa escolhe 2 ou mais filtros... aí já não sei como faço isso.
Pensei em algo desse tipo:
if ($_POST['fstatus'] or $_POST['fcurso'] or $_POST['fcidade'] or $_POST['fproxcont'] or $_POST['fdatacad'])
{
$sql= "SELECT C.ID, C.NOME, CI.DESCRICAO, C.IDCURSO_INTERESSE2, C.CIDADE, S.DESCRICAO, C.PROXIMO_CONTATO
FROM GC_CONTATOS C
LEFT JOIN GC_STATUS S ON (C.IDSTATUS = S.ID)
LEFT JOIN GC_CURSOS CI ON (C.IDCURSO_INTERESSE1 = CI.ID)
WHERE S.ID='$status'";
if ($curso<>'')
"AND CI.ID='$curso'";
if ($cidade<>'')
"AND UDF_CONSTR(C.CIDADE) LIKE '%$cidade%'";
if ($data3<>'' and $data4<>'')
"AND C.PROXIMO_CONTATO BETWEEN '$data3' AND '$data4'";
if ($data1<>'' and $data2<>'')
"AND C.DATA BETWEEN '$data1' AND '$data2'";
"ORDER BY C.ID";
}
mas dessa forma não dá certo, pois o código se encerra no primeiro ponto e vírgula.... como eu posso resolver isso?
Espero que consigam entender o que preciso... obrigada!
Link para o comentário
Compartilhar em outros sites
0 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.