Jump to content
Fórum Script Brasil
  • 0

sistema de busca com filtro


acscarolina
 Share

Question

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>

Edited by acscarolina
palavra errada
Link to comment
Share on other sites

0 answers to this question

Recommended Posts

There have been no answers to this question yet

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share



  • Forum Statistics

    • Total Topics
      149.9k
    • Total Posts
      646.8k
×
×
  • Create New...