Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Boa tarde, estou desenvolvendo uma consulta no php/mysql em diversas colunas. E gostaria de saber
se existe um caracter especial para listar todos os dados, minha quere esta organizada da seguinte forma
$query = sprintf("SELECT * FROM operacao WHERE data_operacao BETWEEN '$data_inicial_rel' AND '$data_final_rel' AND estado_operacao = ' ' ORDER BY id_operacao ASC ;");
quando declaro o valor do estado_operacao ele lista perfeitamente o valor, agora minha dúvida é se existe um
carater para listar todos os valores... para que eu use como value no opition do select, passar o valor TODOS pra a query
desde já agradeço a atenção.>
6 horas atrás, Motta disse:
Não sei se entendi mas veja o IN.
eu gostaria de saber qual valor coloco no opition do select para que liste todos os registros
$query = sprintf("SELECT * FROM operacao WHERE data_operacao BETWEEN '$data_inicial_rel' AND '$data_final_rel' AND estado_operacao = 'quero_saber_o_que_coloco_aqui ' ORDER BY id_operacao ASC ;");
para listar todos os registros.
qna verdade, não há um valor "coringa", o correto é você nem ter esse pedaço da query:
$query = sprintf("SELECT * FROM operacao WHERE data_operacao
BETWEEN '$data_inicial_rel' AND '$data_final_rel'
ORDER BY id_operacao ASC ;");>
3 horas atrás, William Bruno disse:
na verdade, não há um valor "coringa", o correto é você nem ter esse pedaço da query:
$query = sprintf("SELECT * FROM operacao WHERE data_operacao
BETWEEN '$data_inicial_rel' AND '$data_final_rel'
ORDER BY id_operacao ASC ;");
eu preciso de colocar estado_operacao = 'quero_saber_o_que_coloco_aqui ' , pois vai ter um filtro na consulta... os resultados do filtro estão aparecendo, mas não sei como pegar todos os dados.
<select name="estado_operacao" id="estado_operacao_rel">
<option value="quero_saber_o_que_coloco_aqui">TODAS</option>
<option value="GAIN" >GAIN</option>
<option value="LOSS">LOSS</option>
</select>faz uma condição no PHP:
if ($estado_operacao) {
$query = sprintf("SELECT * FROM operacao WHERE data_operacao
BETWEEN '$data_inicial_rel' AND '$data_final_rel'
AND estado_operacao = '$estado_operacao'
ORDER BY id_operacao ASC ;");
} else {
$query = sprintf("SELECT * FROM operacao WHERE data_operacao
BETWEEN '$data_inicial_rel' AND '$data_final_rel'
ORDER BY id_operacao ASC ;");
}>
18 minutos atrás, William Bruno disse:
faz uma condição no PHP:
if ($estado_operacao) {
$query = sprintf("SELECT * FROM operacao WHERE data_operacao BETWEEN '$data_inicial_rel' AND '$data_final_rel' AND estado_operacao = '$estado_operacao' ORDER BY id_operacao ASC ;"); } else { $query = sprintf("SELECT * FROM operacao WHERE data_operacao BETWEEN '$data_inicial_rel' AND '$data_final_rel' ORDER BY id_operacao ASC ;"); }
Isso funciona, mas no meu caso tenho 4 filtros não apenas esseai, outra opção é você fazer a query dessa forma:
"SELECT * FROM operacao WHERE data_operacao
BETWEEN '$data_inicial_rel' AND '$data_final_rel'
AND ('$estado_operacao' = '' OR estado_operacao = '$estado_operacao')
ORDER BY id_operacao ASC ;"
e você deixa:
<option value="">TODAS</option>
sendo que vai fazer ou comparar vazio com vazio, ou o que for enviado, com o que está no banco.>
Em 22/01/2021 at 13:10, William Bruno disse:
ai, outra opção é você fazer a query dessa forma:
"SELECT * FROM operacao WHERE data_operacao
BETWEEN '$data_inicial_rel' AND '$data_final_rel'
AND ('$estado_operacao' = '' OR estado_operacao = '$estado_operacao')
ORDER BY id_operacao ASC ;"
e você deixa:
<option value="">TODAS</option>
sendo que vai fazer ou comparar vazio com vazio ele lista todos, mas quando vem um valor no filtro ele não filtra,
infelizmente não tive sucesso, pois lista os valores nulos, mas não filtra, nem aparece erroO nulo é no parâmetro ou na coluna ?
--para parametros nulos, acho que isto funciona , no Oracle uso o NVl
AND (coalesce('$estado_operacao',estado_operacao) = estado_operacao)
Não sei se entendi mas veja o IN.