Ir para conteúdo
Fórum Script Brasil
  • 0

sistema de busca com filtro


acscarolina

Pergunta

Olá, estou tentando montar um sistema de busca com filtro (para buscar questões de múltipla escolha no site) e tenho os seguinte campos para escolha: disciplina, banca, instituição, cargo, nível e ano. Ou seja, muitas opções. O que eu quero saber é como faço para poder escolher um ou dois ou três, mas não todos os campos para ele me mostrar os resultados que estão cadastrados no banco. Pois quando eu coloco AND e NÃO escolho todos os campos ele diz não não tem resultados e quando coloco OR ele me retorna todas as opções escolhidas. Por exemplo: escolhi ano 2015 e disciplina biologia, ele me retorna todas as questões de biologia + todas as questões de 2015 mesmo não sendo de biologia. E é claro que a minha intenção era todas as questões de biologia do ano de 2015. 

Segue o código:

//////////////////////DISCIPLINAS//////////////////////////////////////////////
$sql_disciplina = "SELECT * FROM tabela_disciplina ORDER BY Disciplina ASC";
$pega_disciplina = mysqli_query($connection, $sql_disciplina);

////////////////////////////////////////BANCAS/////////////////////////////////
$sql_banca="SELECT * FROM tabela_banca ORDER BY Banca ASC";
$pega_banca = mysqli_query($connection,$sql_banca);

////////////////////////////////////////INSTITUIÇÃO/////////////////////////////////
$sql_instituicao="SELECT * FROM tabela_instituicao ORDER BY Instituicao ASC";
$pega_instituicao = mysqli_query($connection,$sql_instituicao);

////////////////////////////////////////CARGO/////////////////////////////////
$sql_cargo="SELECT * FROM tabela_cargo ORDER BY Cargo ASC";
$pega_cargo = mysqli_query($connection,$sql_cargo);

////////////////////////////////////////ANO////////////////////////////////////
$sql_ano="SELECT * FROM tabela_ano ORDER BY Ano ASC";
$pega_ano = mysqli_query($connection,$sql_ano);

//////////////////////NÍVEL//////////////////////////////////////////////
$sql_nivel = "SELECT * FROM tabela_nivel ORDER BY id_nivel ASC";
$pega_nivel = mysqli_query($connection, $sql_nivel);

////////////////////////////////TRAZ AS QUESTÕES DE ACORDO COM O CRITÉRIO/////
if(!empty($_POST['bt_enviar'])) 
{
$disciplina = (empty($_POST['Disciplina']))? 'null' : $_POST['Disciplina'];
$banca = (empty($_POST['Banca']))? 'null' : $_POST['Banca'];
$instituicao = (empty($_POST['Instituicao']))? 'null' : $_POST['Instituicao'];
$cargo = (empty($_POST['Cargo']))? 'null' : $_POST['Cargo'];
$ano = (empty($_POST['Ano']))? 'null' : $_POST['Ano'];
$nivel = (empty($_POST['Nivel']))? 'null' : $_POST['Nivel'];
$sql_questao="SELECT * FROM tabela_questao WHERE id_disciplina = $disciplina OR id_banca = $banca OR id_ano = $ano OR id_nivel = $nivel OR id_instituicao = $instituicao OR id_cargo = $cargo";
$seleciona_questao = mysqli_query($connection,$sql_questao);
}

//////////////////////Questões//////////////////////////////////////////////
$sql_questao = "SELECT * FROM tabela_questao ORDER BY id_questao ASC";
$pega_questao = mysqli_query($connection, $sql_questao);

////////////////////////////////TRAZ AS Respostas DE ACORDO COM a questão/////
if(!empty($_POST['bt_enviar'])) 
{
$questao = (empty($_POST['Descricao']))? 'null' : $_POST['Descricao'];
$sql_resposta="SELECT * FROM tabela_resposta WHERE id_questao = $questao";
$seleciona_resposta = mysqli_query($connection,$sql_resposta);

}
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta charset="utf-8" />
<title>Busca</title>
</head>
<body>
<form action="" method="post" enctype="multipart/form-data">
<span>Disciplina</span><br />
<select name="Disciplina">
<option value="" selected="selected">Selecione a disciplina</option>
<?php
if(mysqli_num_rows($pega_disciplina) == 0) {
echo '<option value="">Não foram encontradas disciplinas</option>';
}else{
while($linha = mysqli_fetch_array($pega_disciplina)){
echo '<option value="'.$linha['id_disciplina'].'">'.utf8_encode($linha['Disciplina']).'</option>';
}
}
?>
</select><br />
<span>Banca</span><br />
<select name="Banca">
<option value="" selected="selected">Selecione a banca</option>
<?php
if(mysqli_num_rows($pega_banca) == 0) {
echo '<option value="">Não foram encontradas bancas</option>';
}else{
while($linhaB = mysqli_fetch_array($pega_banca)){
echo '<option value="'.$linhaB['id_banca'].'">'.utf8_decode($linhaB['Banca']).'</option>';
}
}
?>

</select><br />
<span>Instituição</span><br />
<select name="Instituicao">
<option value="" selected="selected">Selecione a instituição</option>
<?php
if(mysqli_num_rows($pega_instituicao) == 0) {
echo '<option value="">Não foram encontradas instituições</option>';
}else{
while($linhaD = mysqli_fetch_array($pega_instituicao)){
echo '<option value="'.$linhaD['id_instituicao'].'">'.utf8_decode($linhaD['Instituicao']).'</option>';
}
}
?>

</select><br />
<span>Cargo</span><br />
<select name="Cargo">
<option value="" selected="selected">Selecione o cargo</option>
<?php
if(mysqli_num_rows($pega_cargo) == 0) {
echo '<option value="">Não foram encontrados cargos</option>';
}else{
while($linhaD = mysqli_fetch_array($pega_cargo)){
echo '<option value="'.$linhaD['id_cargo'].'">'.utf8_decode($linhaD['Cargo']).'</option>';
}
}
?>

</select><br />
<span>Nível</span><br />
<select name="Nivel">
<option value="" selected="selected">Selecione o nível</option>
<?php
if(mysqli_num_rows($pega_nivel) == 0) {
echo '<option value="">Não foram encontrados níveis</option>';
}else{
while($linhaC = mysqli_fetch_array($pega_nivel)){
echo '<option value="'.$linhaC['id_nivel'].'">'.utf8_decode($linhaC['Nivel']).'</option>';
}
}
?>

</select><br />
<span>Ano</span><br />
<select name="Ano">
<option value="" selected="selected">Selecione o Ano</option><br /><br />
<?php
if(mysqli_num_rows($pega_ano) == 0) {
echo '<option value="">Não foram encontrados</option>';
}else{
while($linhaB = mysqli_fetch_array($pega_ano)){
echo '<option value="'.$linhaB['id_ano'].'">'.utf8_decode($linhaB['Ano']).'</option>';
}
}
?>
<br /><br />
<input type="submit" name="bt_enviar" value="buscar" />
</form>
<hr />

<?php 
if(!empty($_POST['bt_enviar'])) 
{
if(mysqli_num_rows($seleciona_questao) == 0)
{
echo '<h1>Desculpe, mas sua busca, não retornou resultados</h1>';
}
else
{
echo "<ul>";
while($linhaquestao = mysqli_fetch_array($seleciona_questao)){
echo '<li>'.utf8_decode($linhaquestao['Descricao']).'</li>';
}
echo "</ul>";
}
}
?>
<?php
if(!empty($_POST['bt_enviar'])) 
{
if(mysqli_num_rows($seleciona_resposta) == 0)
{
echo '<h1>Desculpe, mas sua busca, não retornou resultados</h1>';
}
else
{
echo "<ul>";
while($linharesposta = mysqli_fetch_array($seleciona_resposta)){
echo '<li>'.utf8_decode($linharesposta['Descricao']).'</li>';
}
echo "</ul>";
}}
 ?>
</body>
</html>

Editado por acscarolina
palavra errada
Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...