Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Jessica SVP

Pesquisar/buscar no banco de dados

Recommended Posts

Olá, paz e bem queridos,

 

Tô precisando de ajuda numa página que estou fazendo.

Tenho uma tabela documentos com os seguintes campos:

id, dia, data, origem, documento, assunto, destino, endereco.

...Gostaria de poder buscar palavra/palavras por esses campos.

 

Exemplo: (estou a procura do campo origem: Porto Alegre)

Digito porto e seleciono que quero pesquisar como origem e clico em buscar. Daí verifica se tem algum campo origem com esse valor, se tiver mostra os campos que tem.

 

Brigadãooooo!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom Jessica, para buscar palavras dentro dos campos, utilizamos o LIKE no MYSQL.

 

Como no exemplo que você disse, você deseja buscar a palavra Porto Alegre no campo origem. Vamos a sintaxe:

 

SELECT * FROM documentos WHERE origem LIKE '%PORTO ALEGRE%';

Esta query irá buscar todos os campos que possuem PORTO ALEGRE como origem.

 

A base da sua busca é essa, agora basta implementar sua página e sua lógica de como deseja mostrar esses dados. Para obter ajuda nisso, abra um tópico na área da linguagem que você utilizará.

 

Para outras informações sobre o comando like, clique aqui para ir até o manual oficial do MYSQL.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Paz e beeeem!

 

Ah valeeeeeeuuu.

 

<?
$pesquisa = "PORTO ALEGRE";
$sql = "SELECT * FROM documentos WHERE origem LIKE '% . $pesquisa . %' ";
?>

Só corrige se estiver errado, se eu colocar uma variável ficaria assim??

 

Brigadão!!!!

 

Fiz assim...

 

	$palavra = "PORTO";
	$pesquisa = "%" . $palavra . "%";	
	
	$sql = "SELECT * FROM documentos WHERE assunto LIKE '$pesquisa' ";

Compartilhar este post


Link para o post
Compartilhar em outros sites

Paz e bem..

 

Tenho mais um probleminha.. eu quero pesquisar em todos os campos da minha tabela, não só no campo origem, mas em todos os campos da tabela que possuirem PORTO ALEGRE.

 

Tentei assim mas não funcionou:

	$palavra = $_POST["busca"];	
	$pesquisa = "%" . $palavra . "%";		
	$sql = "SELECT * FROM documentos WHERE * LIKE '$pesquisa' ";

Compartilhar este post


Link para o post
Compartilhar em outros sites

Paz e bem..

Valeeeu, muito boom!

 

Consegui assim, colocando campo por campo:

 

SELECT * FROM tabela WHERE id LIKE '$pesquisa' OR data LIKE '$pesquisa' OR origem LIKE '$pesquisa' OR tipo LIKE '$pesquisa' OR assunto LIKE '$pesquisa' OR destino LIKE '$pesquisa' OR endereco LIKE '$pesquisa' OR obs LIKE '$pesquisa';

 

:DD

 

Paz e bem pessoal, cada dia surge mais dúvidas.. heheheheh

Assim, como eu faço uma condição para quando o resultado da busca for vazio acontece algo.

Brigadão pela ajuda desde já!

Compartilhar este post


Link para o post
Compartilhar em outros sites

faz assim:

if(empty($palavra)){//o EMPTY verifica se o campo é vazio se for eu retorno a mensagem abaixo.
echo "o campo deve ser preenchido";
}else{//aqui ele vai executar somente se a condição de cima for falsa, no caso se o IF for falso ou seja se o campo nao estiver vazio.
$pesquisa = "%" . $palavra . "%"; 
SELECT * FROM tabela WHERE id LIKE '$pesquisa' OR data LIKE '$pesquisa' OR origem LIKE '$pesquisa' OR tipo LIKE '$pesquisa' OR assunto LIKE '$pesquisa' OR destino LIKE '$pesquisa' OR endereco LIKE '$pesquisa' OR obs LIKE '$pesquisa';
}
tem varias outras formas de se fazer mas todas vao te levar ao mesmo resultado e ai vai do seu gosto mesmo ta.. se quiser outras dicas de como fazer postaii.. t+

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá, paz e bem..

Acho que não me expressei bem, desculpem, o que eu queria saber é o seguinte..

Se eu executar a pesquisa e o select não encontrar nada, como faço para exibir uma mensagem do tipo: não foram encontrados resultados, etc...

Brigado!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá, paz e bem..

Acho que não me expressei bem, desculpem, o que eu queria saber é o seguinte..

Se eu executar a pesquisa e o select não encontrar nada, como faço para exibir uma mensagem do tipo: não foram encontrados resultados, etc...

Brigado!

 

então vamos la Jessica mãos a obra...

de qualquer forma seria bem interessante você verificar se o campo da consulta está vazio para evitar de ficar procurando coisa desnecessário no seu db.. então vamos lá.. você vai ter que percorrer o seu db e verificar através do MySQL_num_rows a quantidade de registro que essa informou, se o retorno for igual que 0 ai sim você exibe a mensagem.. caso contrário você mostra o resultado...

 

vou utilizar o código que eu avia lhe enviado antes. Observe apenas que eu acrescentei no SELECT do código uma variavel com o nome de $sql e acrescentei tb (" AQUI FICA O COMANDO DO SEU SELECT "); o nome dessa variavel é apenas sugestivo você pode utilizar qualquer nome que quiser só nao esqueca de acrescentar o ("").. entao vamos la..

 

<?
if(empty($palavra)){//o EMPTY verifica se o campo é vazio se for eu retorno a mensagem abaixo.
echo "o campo deve ser preenchido";
}else{//aqui ele vai executar somente se a condição de cima for falsa, no caso se o IF for falso ou seja se o campo nao estiver vazio.
$pesquisa = "%" . $palavra . "%"; 
$sql = ("SELECT * FROM tabela WHERE id LIKE '$pesquisa' OR data LIKE '$pesquisa' OR origem LIKE '$pesquisa' OR tipo LIKE '$pesquisa' OR assunto LIKE '$pesquisa' OR destino LIKE '$pesquisa' OR endereco LIKE '$pesquisa' OR obs LIKE '$pesquisa'");
}
//com no select acima você ja percorreu todo so seu db aqui você vai apenas perguntar para esse select se ele encontrou alguma coisa...
$numReg = mysql_num_rows($sql); // aqui no mysql_num_rows você jogoa a sua consulta e ele vai te retornar quantos registros encontrou. note que $numReg, é apenas mais um nome sugestivo de variavel você pode usar qualquer nome.

//pronto agora que nós ja temos a quantidade de registro que a busca retornou é só usar um if e perguntar se a variavel que está recebendo esses numeros de registro tem um valor mair que zero. porque se ela encontrar algum registro obiavemente o valor vai ser maior que zero.

if($numReg == 0){
  echo " a sua consulta por - ".$palavra." - não retornou nenhum resultado! Tente novamente";
}else{
 // AQUI VOCE LISTA O SEUS RESULTADOS SE  CONSULTA FOR BEM SUCEDIDA. note que ele só vai entrar nesse bloco de código aqui se a variavel que está rebendo os valores for maior que zero.
}
?>

Jessica espero ter ajudadado, desculpa se os exemplos que eu dou são muito grandes e detalhados é que quando eu entrava nos foruns e fazia uma perguta geralmente me respondiam de forma muito objetiva e resumida o que não é tão ruim assim pois estimula você a correr atrás do problema, mas por outro lado tem o lado de quem está começando e geralmente uma respa resumida so confundiria mais a cabeça da pessoa... de qualquer forma se encontrar dificuldades volte a postar que tentaremos te ajudar.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.