Jump to content
Fórum Script Brasil
  • 0

Ajuda com lógica em formulário de busca


carlos3333

Question

Boa noite,

Criei esse formulário de busca para um banco de dados, porém, ao clicar em buscar sem digitar nada ele está me retornando todos os usuários cadastrados e ao digitar um usuário que não existe, ele não exibi a mensagem "Nenhum registro encontrado.".

Alguém pode me dar uma luz sobre o que estou fazendo errado ?

Muito obrigado,

<?php
    session_start();
    
    if(!isset($_SESSION['loginSession']) AND !isset($_SESSION['senhaSession'])){
        
        echo("&lt;script type='text/javascript'> alert('Você precisa estar logado para acessar esta página !!!'
); location.href='login.php';</script>");
        exit;
        
}
?>
<!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 http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Documento sem título</title>
</head>

<body>
<table width="800" border="0" align="center" cellpadding="0" cellspacing="5">
  <tr>
    <td bgcolor="#FFFFFF"><form id="form1" name="form1" method="post" action="">
      <label for="textfield"></label>
      <input type="text" name="palavra" id="palavra" />
      <input type="submit" name="button" id="button" value="Buscar" />
    </form></td>
  </tr>
  <tr>
    <td> </td>
  </tr>
  <tr>
    <td height="19"><table width="800" border="0" cellspacing="2" cellpadding="0">
      <tr>
        <td width="32" align="center" bgcolor="#CCCCCC">id</td>
        <td width="175" align="center" bgcolor="#CCCCCC">nome</td>
        <td width="100" align="center" bgcolor="#CCCCCC">data nascimento</td>
        <td width="30" align="center" bgcolor="#CCCCCC">ddd</td>
        <td width="55" align="center" bgcolor="#CCCCCC">telefone</td>
        <td width="30" align="center" bgcolor="#CCCCCC">ddd</td>
        <td width="55" align="center" bgcolor="#CCCCCC">telefone</td>
        <td width="30" align="center" bgcolor="#CCCCCC">ddd</td>
        <td width="55" align="center" bgcolor="#CCCCCC">telefone</td>
        <td width="40" align="center" bgcolor="#CCCCCC">sexo</td>
        <td width="50" align="center" bgcolor="#CCCCCC">login</td>
        <td width="50" align="center" bgcolor="#CCCCCC">senha</td>
        <td width="48" align="center" bgcolor="#CCCCCC">editar</td>
        <td width="50" align="center" bgcolor="#CCCCCC">excluir</td>
        </tr>
      
    <?php

    include "funcoes.php";

    if (isset($_POST['palavra'])){
        
    $busca = $_POST['palavra'];// palavra que o usuario digitou

    $busca_query = mysql_query("SELECT * FROM cadastro WHERE nome LIKE '%$busca%'")or die(mysql_error);//faz a busca com as palavras enviadas

    if($busca_query >= 1){ 
    
    // quando existir algo em '$busca_query' ele realizará o script abaixo.
    while ($dados = mysql_fetch_array($busca_query)) {
        $id                 = $dados['id'];
        $nome               = $dados['nome'];
        $data_de_nascimento = $dados['data_de_nascimento'];
        $telefone_1_1       = $dados['telefone_1_1'];
        $telefone_1         = $dados['telefone_1'];
        $telefone_2_2       = $dados['telefone_2_2'];
        $telefone_2         = $dados['telefone_2'];
        $telefone_3_3       = $dados['telefone_3_3'];
        $telefone_3         = $dados['telefone_3'];
        $sexo               = $dados['sexo'];
        $login              = $dados['login'];
        $senha              = $dados['senha'];
        $id                 = $dados['id'];
        $id                 = $dados['id'];
    
      ?>
      <tr>
        <td align="center"><?php echo $id; ?></td>
        <td align="center"><?php echo $nome; ?></td>
        <td align="center"><?php echo $data_de_nascimento; ?></td>
        <td align="center"><?php echo $telefone_1_1; ?></td>
        <td align="center"><?php echo $telefone_1; ?></td>
        <td align="center"><?php echo $telefone_2_2; ?></td>
        <td align="center"><?php echo $telefone_2; ?></td>
        <td align="center"><?php echo $telefone_3_3; ?></td>
        <td align="center"><?php echo $telefone_3; ?></td>
        <td align="center"><?php echo $sexo; ?></td>
        <td align="center"><?php echo $login; ?></td>
        <td align="center"><?php echo $senha; ?></td>
        <td align="center"><?php echo $id; ?></td>
        <td align="center"><?php echo $id; ?></td>
      </tr>
    <?php
    }
}else{
    print "Nenhum registro encontrado.";
    }
}
?>
    </table></td>
  </tr>
</table>
</body>
</html>

Link to comment
Share on other sites

3 answers to this question

Recommended Posts

  • 0

opas.. olha... no formulario mesmo aparentemente n tem problema de logica..

mas no php tente assim:

<?php
include "funcoes.php";

// primeiro declare a variavel de busca
$busca=$_POST['palavra'];

//se estiver vazia...
if(empty($busca))
  {
  echo "preencha o campo de busca";
  }

//senão, monta a pesquisa..
else
  {
  $busca_query=mysql_query("SELECT * FROM cadastro where nome like '%$busca%' ");

//agora se a pesquisa retornar resultados..
  if(mysql_num_rows($busca_query) >=1)
  {
  while($dados=mysql_fetch_array($busca_query))
  {
//vamos pular a parte que abre a tabela em html
//em vez de declarar todas aquelas variaveis, exiba direto assim:

<td align="center"><?php echo $dados['nome'];?></td> 

<!-- repita a linha acima para as outras colunas..-->

<?php
  }
  }
//agora a resposta caso não tenha encontrado resultados
else
{
echo "Nenhum registro encontrado.";
}
}
?>

</body>
</html>
<?php
mysql_free_result($busca_query);
?>

Edited by Marcelo_2
Link to comment
Share on other sites

  • 0

Valeu Marcelo, agora está do jeito que eu queria, vou postar o código do jeito que fiz aqui, pode ajudar alguém, está funcionando 100%.

Obrigado,

<?php
    session_start();
    
    if(!isset($_SESSION['loginSession']) AND !isset($_SESSION['senhaSession'])){
        
        echo("&lt;script type='text/javascript'> alert('Você precisa estar logado para acessar esta página !!!'
); location.href='login.php';</script>");
        exit;
        
}
?>
<!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 http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Documento sem título</title>
</head>

<body>
<table width="800" border="0" align="center" cellpadding="0" cellspacing="5">
  <tr>
    <td bgcolor="#FFFFFF"><form id="form1" name="form1" method="post" action="">
      <label for="textfield"></label>
      <input type="text" name="palavra" id="palavra" />
      <input type="submit" name="button" id="button" value="Buscar" />
    </form></td>
  </tr>
  <tr>
    <td> </td>
  </tr>
  <tr>
    <td height="19"><table width="800" border="0" cellspacing="2" cellpadding="0">
      <tr>
        <td width="32" align="center" bgcolor="#CCCCCC">id</td>
        <td width="175" align="center" bgcolor="#CCCCCC">nome</td>
        <td width="100" align="center" bgcolor="#CCCCCC">data nascimento</td>
        <td width="30" align="center" bgcolor="#CCCCCC">ddd</td>
        <td width="55" align="center" bgcolor="#CCCCCC">telefone</td>
        <td width="30" align="center" bgcolor="#CCCCCC">ddd</td>
        <td width="55" align="center" bgcolor="#CCCCCC">telefone</td>
        <td width="30" align="center" bgcolor="#CCCCCC">ddd</td>
        <td width="55" align="center" bgcolor="#CCCCCC">telefone</td>
        <td width="40" align="center" bgcolor="#CCCCCC">sexo</td>
        <td width="50" align="center" bgcolor="#CCCCCC">login</td>
        <td width="50" align="center" bgcolor="#CCCCCC">senha</td>
        <td width="48" align="center" bgcolor="#CCCCCC">editar</td>
        <td width="50" align="center" bgcolor="#CCCCCC">excluir</td>
        </tr>
      
    <?php

    include "funcoes.php";

    if (isset($_POST['palavra'])){//evita erro Undefined index
        
    $busca = $_POST['palavra'];// palavra que o usuario digitou

    $busca_query = mysql_query("SELECT * FROM cadastro WHERE nome LIKE '%$busca%'")or die(mysql_error);//faz a busca com as palavras enviadas

    if(empty($busca)){//Se a busca estiver vazia mostra
  
  echo "Preencha o campo de busca";
  
  }else{
    
    if(mysql_num_rows($busca_query) >=1){ 
    
    // quando existir algo em '$busca_query' ele realizará o script abaixo.
    while ($dados = mysql_fetch_array($busca_query)) {
        $id                 = $dados['id'];
        $nome               = $dados['nome'];
        $data_de_nascimento = $dados['data_de_nascimento'];
        $telefone_1_1       = $dados['telefone_1_1'];
        $telefone_1         = $dados['telefone_1'];
        $telefone_2_2       = $dados['telefone_2_2'];
        $telefone_2         = $dados['telefone_2'];
        $telefone_3_3       = $dados['telefone_3_3'];
        $telefone_3         = $dados['telefone_3'];
        $sexo               = $dados['sexo'];
        $login              = $dados['login'];
        $senha              = $dados['senha'];
        $id                 = $dados['id'];
        $id                 = $dados['id'];
    
      // tive que declarar uma por uma pois não é possível lançar um php dentro do outro
      
      ?>
      <tr>
        <td align="center"><?php echo $id; ?></td>
        <td align="center"><?php echo $nome; ?></td>
        <td align="center"><?php echo $data_de_nascimento; ?></td>
        <td align="center"><?php echo $telefone_1_1; ?></td>
        <td align="center"><?php echo $telefone_1; ?></td>
        <td align="center"><?php echo $telefone_2_2; ?></td>
        <td align="center"><?php echo $telefone_2; ?></td>
        <td align="center"><?php echo $telefone_3_3; ?></td>
        <td align="center"><?php echo $telefone_3; ?></td>
        <td align="center"><?php echo $sexo; ?></td>
        <td align="center"><?php echo $login; ?></td>
        <td align="center"><?php echo $senha; ?></td>
        <td align="center"><?php echo $id; ?></td>
        <td align="center"><?php echo $id; ?></td>
      </tr>
    <?php
    }

}else{//Não encontrando o registro digitado no bd mostra
        echo "Nenhum registro encontrado.";

        }
    }
}
?>
    </table></td>
  </tr>
</table>
</body>
</html>

Link to comment
Share on other sites

  • 0
tive que declarar uma por uma pois não é possível lançar um php dentro do outro

cara.. d boa, ta certo q você está começando, mas..

explicando melhor...

o q eu quis dizer é q em vez disso:

$id = $dados['id'];
<td align="center"><?php echo $id; ?></td>
você pode fazer assim:
<td align="center"><?php echo $dados['id']; ?></td>
portanto:
while ($dados = mysql_fetch_array($busca_query)) {
//aki você fecha o php, claro..
?>

<tr>
        <td align="center"><?php echo $dados['id']; ?></td>
        <td align="center"><?php echo $dados['nome']; ?></td>
        <td align="center"><?php echo $dados['data_de_nascimento']; ?></td>
    etc...
</tr>
    <?php
    }

}else{//Não encontrando o registro digitado no bd mostra
        echo "Nenhum registro encontrado.";

        }
    }
}
?>
    </table></td>
  </tr>
</table>
</body>
</html>

em vez de fazer como está fazendo..

14 linhas a menos.. enfim, você é q sabe.. falou, fui...

Edited by Marcelo_2
Link to comment
Share on other sites

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.



  • Forum Statistics

    • Total Topics
      152k
    • Total Posts
      651.5k
×
×
  • Create New...