Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Pessoal, bom dia!
Tenho um sistema de controle de ordem de serviço, no qual existe uma página(relatorio.php) em que nele existe um formulário para o usuário personalizar o que deseja na query do banco.
só que aí vem meu problema, como os campos são livres, ele pode selecionar alguns e outros não...
como faço para a query entender isso e gerar o relatório sem erros?
Exemplo: tenho os campos cliente, tipo, estado, cidade como opção a serem preenchidos, mas o usuário só selecionou o cliente "AAABB" e o estado "SP".
Em outro caso ele só selecionou o tipo e o cliente...e assim por diante..
fui claro? obrigado!
Meu conselho é fazer o tratamento das variáveis, se o cliente digitou alguma coisa, você usa a condição, caso contrário não usa:
$cliente = isset( $cliente ) && !empty( $cliente) ? " cliente = '" . $cliente . "' " : "";
$tipo = isset( $tipo ) && !empty( $tipo ) ? " tipo = '" . $tipo . "' " : "";
$estado = isset( $estado ) && !empty( $estado ) ? " estado = '" . $estado . "' " : "";
$cidade = isset( $cidade ) && !empty( $cidade ) ? " cidade = '" . $cidade . "' " : "";
$condicional = "";if ( !empty($cliente) ) $condicional .= ( empty($condicional) ? " WHERE " : "AND" ) . $cliente;
if ( !empty($tipo) ) $condicional .= ( empty($condicional) ? " WHERE " : "AND" ) . $tipo;
if ( !empty($estado) ) $condicional .= ( empty($condicional) ? " WHERE " : "AND" ) . $estado;
if ( !empty($cidade) ) $condicional .= ( empty($condicional) ? " WHERE " : "AND" ) . $cidade;
$sql = "SELECT * FROM tabela_teste";
$sql .= $condicional;
echo "<p>" , $sql , "</p>";
Acho que entendi seu problema. Você pode fazer uma verificação nos dados do Usuário, antes que ele faça uma query. Existem várias formas de verificar campos (Uma delas com HTML5), se o usuário deixou em branco, se ele digitou textos em lugares de números..(etc). Se for isso sua dúvida, dê uma pesquisada no Google sobre isso.
Espero ter Ajudado!