Jump to content


Photo

Duvida Com Pesquisa De Cadastro


  • Faça o login para participar
2 replies to this topic

#1 nico_maluco

nico_maluco

    Novato no fórum

  • Usuários
  • 6 posts
  • Sexo:Não informado

Posted 12/06/2008, 21:37

Olá! Galera to fazendo um script simples de busca de cadastro: segue ae o código:


<?
include "config.php"; //inclui o arquivo de configurações

$db   = mysql_connect ($host, $login_db, $senha_db); //conecta ao mysql
$basedados = mysql_select_db($database); //conecta a base de dados

$confirmacao = mysql_query("SELECT * FROM `$tabela` WHERE Nome LIKE '%$Nome%' OR RG = '$RG' OR Endereco = '$Endereco' OR Telefone = '$Telefone' " , $db); //pesquisa por um dos parametros
$contagem = mysql_num_rows($confirmacao); //traz o resultado da pesquisa acima


	while ($row = mysql_fetch_array($confirmacao)) { // listar os dados cadastrados
	$Nome = $row["Nome"]; //adiciona a variavel $Nome o Nome do usuario
$Endereco = $row["Endereco"]; //adiciona a variavel $Endereco o end do usuario
	$Telefone = $row["Telefone"]; //adiciona a variavel $Telefone o Telefone do usuario
	$RG = $row["RG"]; // Adiciona a variavel $RG o RG do usuario

	
	echo "	//imprime os dados na tela.
	Nome: $Nome</br>
	Endereço: $Endereco </br>
	Telefone: $Telefone </br>
	RG: $RG </br></br>";
	}


if ( $contagem == 0 ) {
echo "RG não encontrado. <a href=busca.php>Clique aqui para nova busca.</a>"; //se a senha está incorreta mostra essa mensagem
}
?>

Os dados sao recolhidos em um formulario que eu criei...

O meu problema é que quando eu mando fazer a pesquisa, mesmo que eu não insira nada no Campo Nome a pesquisa retorna todos os dados do banco de dados.

Se eu tirar o LIKE e colocar o = ae ele retorna a pesquisa porém ele retorna apenas se o que for digitado no Campo for igual ao que está gravado no Banco.

Alguem sabe como resolver para que eu consiga fazer uma pesquisa com a Inicial de um nome por exemplo sem que liste todos os usuarios cadastrados no banco quando o campo Nome for deixado em branco?

Não postei o formulario por achar desnecessario, mas precisando eu posto tb....

#2 Paulo André

Paulo André

    Why so serious?

  • Ex-Admins
  • 5114 posts
  • Sexo:Masculino
  • Localidade:Belo Horizonte - MG
  • Interesses:O.Q.F.J.?

Posted 12/06/2008, 22:47

Acredito que antes de tudo, você deve verificar se este campo foi preenchido ou não, porque o LIKE irá se comportar desta maneira mesmo.

Acho que um if ali antes da query resolveria o problema.

Flws...
(ok2)Até mais
Paulo André G Rodrigues,
ex-administrador Fórum WMO.


www.CanalDev.com.br

#3 Squall Robert

Squall Robert

    Mr. Squall - Mais Carne do que Osso (hihi)

  • Usuários
  • 507 posts
  • Sexo:Masculino
  • Localidade:Curitiba
  • Interesses:Php ... Php...Php

Posted 13/06/2008, 14:30

e ai man....
e tranquilo isso....

vc pode fazer uma checagem em javascript.... impossibilitando de enviar sem que alguma coisa seja posta do form ou
vc pode verificar se exites valores nas variaveis e fazer uma query concatenando os intes que vai concidindo com os if

e bem tranquilo....

outra coisa ... vc esta usando mysql_fetch_array....

isso te retorna registros com Indice numerio e associativo... depedendo do numero de registro tende a ficar lento

se vc usa indice associativo use mysql_fetch_assoc , e se usar somente o numerico use mysql_fetch_row

ok ... qualquer duvida poste ai
<?php

$squall = new Squall();

$squall->Ajudando("você");

$resultado = $squall->solucao();  ?>




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq