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

Ajuda com formulario de pesquisa em php.


Walter Junior

Pergunta

Pessoal, estou com um problema, tenho um formulario que faz pesquisa no banco de dados, ele faz pesquisa por cpf, nome, ou mesmo pelo servidor, so que ele so pesquisa o nome se for completo, eu gostaria de saber como faço para colocar para pesquisar por exemplo, Maria e ele trouxer todas as Marias, tanto maiusculas quanto minusculas, e também colocar quantidade de visualizações na pagina, por exemplo, aparecer so 20 por paginas, vou colocar o codigo, se alguém puder me ajudar, agradeço.

<?php
$codigo=$_GET['codigo'];
$cpf=$_GET['cpf'];
$nome=$_GET['nome'];
$servidor=$_GET['servidor'];
$gaveta=$_GET['gaveta'];
$pasta=$_GET['pasta'];
// Conectando, escolhendo o banco de dados
$link = mysql_connect('localhost', 'root', 'root')
    or die('Não foi possível conectar: ' . mysql_error());
//echo 'Conexão bem sucedida';
mysql_select_db('bd_hipercred') or die('Não foi possível selecionar o banco da dados');

// Executando a consulta SQL

$query1 = "select * from servidor where servidor = '$servidor'";

if ($nome != ''){
    $query1 .= " and nome_cli = '$nome'";
}
if ($cpf != ''){
    $query1 .= " and cpf = '$cpf'";
}

$query = mysql_query($query1);


$result = mysql_query($query1) or die('A consulta falhou!: ' . mysql_error());
?><title>Editar</title> 

<table width="100%" border="1"> 
<div align="center"> </div>
<div align="center"></div>
<INPUT type="hidden" name="codigo" value="<?=$codigo?>">
<table width="63%" height="284" border="0" align="center">
  <tr>
    <td height="280">
<table width="85%" border="1">
          <tr> 
            <td colspan="7"><img src="img/logo.jpg" width="776" height="150"></td>
          </tr>
          <tr> 
            <td width="3%"><div align="center"> </div></td>
            <td width="7%"> <div align="center"><strong></strong></div>
              <strong>C&oacute;digo</strong></td>
            <td width="13%"><div align="center"><strong>Nome</strong></div></td>
            <td width="8%"> <div align="center"><strong>CPF</strong></div></td>
            <td width="13%"><div align="center"><strong>GAVETA</strong></div></td>
            <td width="11%"><div align="center"><strong>PASTA</strong></div></td>
            <td width="45%">&nbsp;</td>
          </tr>
          <tr> 
            <td> 
              <?php
while($l = mysql_fetch_array($result)) {
    $codigo=$l['codigo'];
    $nome_cli=$l['nome_cli'];
    $cpf=$l['cpf'];
    $gaveta=$l['gaveta'];
    $pasta=$l['pasta'];
    
echo "
    <tr>
        <td><a href=\"editaview.php?codigo=$codigo\">[Editar]</a> <a href=\"excluir.php?codigo=$codigo\">[Excluir]</a></td>    
        <td>&nbsp;$codigo</td>
        <td>&nbsp;<input name='nome' type='text' value='$nome_cli' size='40' maxlength='40'></td>        
        <td>&nbsp;<input name='cpf' type='text' value='$cpf' size='12' maxlength='30'></td>
        <td>&nbsp;<input name='gaveta' type='text' value='$gaveta' size='10' maxlength='30'></td>
        <td>&nbsp;<input name='pasta' type='text' value='$pasta' size='10' maxlength='30'></td>
    </tr>\n";
}    
@mysql_close();
    
?>
            </td>
            <td>&nbsp;</td>
            <td width="13%">&nbsp;</td>
            <td>&nbsp;</td>
            <td>&nbsp;</td>
            <td>&nbsp;</td>
            <td>&nbsp;</td>
          </tr>
        </table>
      <p>&nbsp;</p></td>
  </tr>
</table>
<div align="center"> </div>
<div align="center"> </div>
</BR>
<a href='hcb.php'> <strong>Voltar</strong> </a>

Editado por Walter Junior
Link para o comentário
Compartilhar em outros sites

6 respostass a esta questão

Posts Recomendados

  • 0

Para mostrar só um determinado número de registros por página use paginação, exemplo prático aqui.

Para fazer uma pesquisa não exata você deve utilizar o LIKE, por exemplo, nas pesquisa:

SELECT * FROM tabela WHERE coluna = 'Maria'
Ai ele só vai buscar os campos que forem iguais a Maria
SELECT * FROM tabela WHERE coluna LIKE '%Maria%'

Ai ele vai buscar tudo que tenha Maria/maria, por exemplo Sônia Maria/Sônia maria/Maria da Silva/maria da Silva, etc...

Link para o comentário
Compartilhar em outros sites

  • 0

Amigo, entre o seu post dizendo que ia ver e o dizendo que não conseguiu se passaram apenas 27 minutos, quantas vezes você tentou? Uma? Primeiro leia o script, depois entenda a lógica e só ai tente fazer o mesmo no seu, depois que fizer isso ai sim poderá ter sucesso, de qualquer maneira, já que você diz que não conseguiu, deve ter tentado pelo menos uma vez, coloque aqui para nós como ficou o script depois de modificado.

E mais um detalhe, utilize o botão EDITAR, pois postar seguidamente caracteriza flood.

Link para o comentário
Compartilhar em outros sites

  • 0

Amigo desculpa, a bagunça que fiz no post aqui, nem eu sei o que fiz, mais já quebrei a cabeça nesse formulario, ele ta aparecendo as paginas, mais ta buscando todos os resultados, não sei o que to aprontando aqui que ta errado, e as paginas estão aparecendo os numeros em cima, já tentei colocar em baixo, mais quanto mais mexo mais problema da, se puder me dar uma luz, agradeço. E desculpe de novo pela bagunça no post.

<?php
$codigo=$_GET['codigo'];
$cpf=$_GET['cpf'];
$nome=$_GET['nome'];
$servidor=$_GET['servidor'];
$gaveta=$_GET['gaveta'];
$pasta=$_GET['pasta'];
// Conectando, escolhendo o banco de dados
$link = mysql_connect('localhost', 'root', 'root')
    or die('Não foi possível conectar: ' . mysql_error());
//echo 'Conexão bem sucedida';
mysql_select_db('bd_hipercred') or die('Não foi possível selecionar o banco da dados');

// Executando a consulta SQL

//$query1 = "select * from servidor where servidor = '$servidor'";
$query1 = "select * from servidor where servidor ='$servidor'";

if ($nome != ''){
    $query1 .= " and nome_cli LIKE '%$nome%'";
}
if ($cpf != ''){
    $query1 .= " and cpf = '$cpf'";
}

$query = mysql_query($query1);

$result = mysql_query($query1) or die('A consulta falhou!: ' . mysql_error());
$query1 = "select * from servidor where servidor ='$servidor'";

$re = mysql_query("SELECT count(*) as total FROM servidor");
$total = mysql_result($re, 0, "total");

$pagina = 0;
if(isset($_GET["pagina"])) {

$pagina = $_GET["pagina"];

}

$limite = 10;
$paginas = ceil($total / $limite);

$inicio = $pagina * $limite; 

$sql = mysql_query("SELECT * FROM servidor LIMIT $inicio, $limite"); 

$conta = mysql_num_rows($sql);

while($l = mysql_fetch_array($sql)) {

$nome = $l["nome"];
echo $nome."<br>";

}

if($pagina > 0) {
   $menos = $pagina - 1;
   $url = $_SERVER["PHP_SELF"]."?pagina=".$menos;
   echo "<a href=\"$url\">Anterior</a>"; 
}
for($i = 1;$i < $paginas; $i++) { 
   $url = $_SERVER["PHP_SELF"]."?pagina=".$i;
   echo " | <a href=\"$url\">$i</a>";
}
if($pagina < $paginas) {
   $mais = $pagina + 1;
   $url = $_SERVER["PHP_SELF"]."?pagina=".$mais;

   echo " | <a href=\"$url\">Próxima</a>";

}

?>

<table width="100%" border="1"> 
<div align="center"> </div>
<div align="center"></div>
<INPUT type="hidden" name="codigo" value="<?=$codigo?>">
<table width="63%" height="284" border="0" align="center">
  <tr>
    <td height="280">
<table width="85%" border="1">
          <tr> 
            <td colspan="7"><img src="img/logo.jpg" width="776" height="150"></td>
          </tr>
          <tr> 
            <td width="3%"><div align="center"> </div></td>
            <td width="7%"> <div align="center"><strong></strong></div>
              <strong>C&oacute;digo</strong></td>
            <td width="13%"><div align="center"><strong>Nome</strong></div></td>
            <td width="8%"> <div align="center"><strong>CPF</strong></div></td>
            <td width="13%"><div align="center"><strong>GAVETA</strong></div></td>
            <td width="11%"><div align="center"><strong>PASTA</strong></div></td>
            <td width="45%">&nbsp;</td>
          </tr>
          <tr> 
            <td> 
              <?php
              
while($l = mysql_fetch_array($result)) {
    $codigo=$l['codigo'];
    $nome_cli=$l['nome_cli'];
    $cpf=$l['cpf'];
    $gaveta=$l['gaveta'];
    $pasta=$l['pasta'];
    
echo "
    <tr>
        <td><a href=\"editaview.php?codigo=$codigo\">[Editar]</a> <a href=\"excluir.php?codigo=$codigo\">[Excluir]</a></td>    
        <td>&nbsp;$codigo</td>
        <td>&nbsp;<input name='nome' type='text' value='$nome_cli' size='40' maxlength='40'></td>        
        <td>&nbsp;<input name='cpf' type='text' value='$cpf' size='12' maxlength='30'></td>
        <td>&nbsp;<input name='gaveta' type='text' value='$gaveta' size='10' maxlength='30'></td>
        <td>&nbsp;<input name='pasta' type='text' value='$pasta' size='10' maxlength='30'></td>
    </tr>\n";
}    
@mysql_close();

?>
            </td>
            <td>&nbsp;</td>
            <td width="13%">&nbsp;</td>
            <td>&nbsp;</td>
            <td>&nbsp;</td>
            <td>&nbsp;</td>
            <td>&nbsp;</td>
          </tr>
        </table>
      <p>&nbsp;</p></td>
  </tr>
</table>
<div align="center"> </div>
<div align="center"> </div>
</BR>
<a href='hcb.php'> <strong>Voltar</strong> </a>

Link para o comentário
Compartilhar em outros sites

  • 0

Vou te auxiliar com o maior prazer, só que no meu método de auxílio quem pensa é você, não eu.

Vamos as suas querys:

1 - $query1 = "select * from servidor where servidor ='$servidor'";

2 - $sql = mysql_query("SELECT * FROM servidor LIMIT $inicio, $limite");

Você disse que tá aparecendo todos os resultados, ok, mas me diz uma coisa, ali na query 2 (que é a usada para mostrar os resultados) não teria que ter um WHERE? Pois parando pra pensar durante 1/2 segundo se chega a conclusão de que tá pegando tudo que tem na tabela e não apenas o que você quer (que está contido na variável $servidor), não é mesmo? Solução? Adicionar o comando a cláusula WHERE nos mesmo moldes da query 1.

Quanto a aparecer em cima... é só olhar no código fonte... primeiro você tá mandando imprimir os números, depois você tá mandando imprimir os resultados...

E como eu disse entenda a lógica do script, pois você só copiou ele e alterou os dados da tabela, e sem entender o que tá fazendo fica difícil...

Link para o comentário
Compartilhar em outros sites

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,2k
    • Posts
      652k
×
×
  • Criar Novo...