Jump to content
Juninho

Sistema de busca interna no site !

Recommended Posts

Olá, pessoal.Preciso de um sistema de busca interna em PHP para colocar no meu site. Sei que existem códigos "prontos" na net e gostaria de saber se algum de vocês já utilizou em algum site seus e coloquem exemplos de urls para eu visualizar.Preciso disso urgente... só falta colocar o sistema de busca interna pro site ir pro ar e eu não sei nada de PHP. Gostaria que vocês me ajudassem.Obrigado.Juninho

Edited by Mário Monteiro
Retirada a palavra "URGENTE" do Titulo ou Descrição

Share this post


Link to post
Share on other sites

Cara, geralmente os sites quando tem busca eles fazem consultas nas tabelas...Tem outros sites que você escolhe sobre o assunto (tabelas da base relacionanda a determinado assunto) e ele faz soh sobre akela tabela... tipo...Eh bem simples de fazer um sistema de busca de site...Tipo se precisar de ajuda eh soh posta ai a estrutura da sua tabela e os campos que querem que seja feito essa busca...

Share this post


Link to post
Share on other sites

O site conterá uma seção onde serão publicados artigos (textos), outra onde serão colocadas leis.Preciso disponibilizar um campo de busca para o usuário que queira saber sobre "corrupção", por exemplo, possa achar o texto relacionado; ou o usuário que queira a lei 8078/90 que a encontre no site.Obrigado.Juninho

Share this post


Link to post
Share on other sites

Cara, isso é facil...

 

Numa tabela você tem por exemplo:

 

- id

- nome

- noticia

 

Na busca você faz assim:

 

PHP

[*]$string = "corrupção"// Aqui usa o $_POST do formulário pra resgatar a palavra digitada

[*]

[*]$busca = mysql_query("SELECT * FROM tabela WHERE nome LIKE '%" . $string . "%' OR noticia LIKE '%" . $string . "%' ORDER by nome ASC");

[*]

[*]while($dados = mysql_fetch_array($busca)){

[*]$nome = $dados["nome"];

[*]

[*]echo"$nome" . "<br>";

[*]

 

Este foi só um exemplo bem básico mesmo, mas a base será isso, não tem muito segredo...

Share this post


Link to post
Share on other sites

Oi. Será que vcs têm o código pronto para me passar e ensinar como implantá-lo?Não sei nada de PHP nem programação, entretanto sei trabalhar com o dreamweaver.É urgente... porque preciso desse sistema de busca pro meu site de qq forma.Obrigado, pessoal.Juninho

Share this post


Link to post
Share on other sites

Tipo o se site tem alguma coisa colcoada em banco de dados????Se tiver. posta ai a estrutura da tabela que você queira fazer a busca de informação...

Share this post


Link to post
Share on other sites

Não tem nada em banco de dados não, porque eu não sei criar um.O que eu quero é o seguinte: o usuário manda um texto pra mim, dai eu publico na seção respectiva, por exemplo: manda um texto com o título "Contrato de compra e venda", que é matéria de Direito Civil, então tenho que colocá-lo na seção Direito Civil. Daí quero que o usuário que estiver navegando no site possa digitar no campo de busca "compra e venda" e achar esse texto. Todos os texto publicados estarão numa tabela, onde a primeira célula consta o título do texto, nome da seção e nome do autor e a segunda o texto em si.Estilo a busca que tem no site "www.jus.com.br".Como eu faço isso? Tem código já pronto na net? Porque eu não sei programação.Muito obrigado.Juninho

Share this post


Link to post
Share on other sites

Infelizmente sem um banco de dados você naum vai conseguir fazer essa busca no seu site.... Pois as buscas saum feitas em informações dentro de um banco...Esse site que você flw faz as busca dentro do banco de dados deles...

Share this post


Link to post
Share on other sites

da pra faze busca sem banco de dados sim, mas o processo n eh tao simples, eu vo posta um exemplo aki, e você deve estudar as funcoes usadas no www.php.net

 

o exemplo c baseia em procurar conteudo em arquivos .html (sem conteudo dinamico) numa pasta conteudo, dentro do site:

 

PHP

[*]$busca = "palavra";

[*]

[*]$pasta = "conteudo";

[*]$dir = opendir($pasta);

[*]

[*]$find = array();

[*]

[*]while($arq = readdir($dir)) {

[*] $buff = file_get_contents($pasta . "/" . $arq);

[*] if(preg_match("/.*($busca).*/i", $buff)) {

[*] $find[] = $arq;

[*] }

[*]}

[*]

[*]if(count($find)) {

[*] echo "Sua busca obteve sucesso nas seguintes paginas:<br />";

[*] foreach($find as $v) {

[*] echo "<a href='{$pasta}/{$v}'>{$v}</a><br />";

[*] }

[*]} else {

[*] echo "Sua busca nao retornou nenhum resultado";

[*]}

 

c você precisar buscar conteudo em paginas que sao geradas dinamicamente (q usam PHP) você me fala q eu posto um jeito pra faze nelas ;)

Share this post


Link to post
Share on other sites

Como que eu faço um banco de dados pra colocar os textos... tudo dividido por seção, organizado... e pra pagína buscar nele?Abraço e obrigado.Desculpa a ignorância mas é pq eu não sei programação, PHP, MySQL não.Juninho

Share this post


Link to post
Share on other sites

Olá Juninho,

 

 

Todo sistema de busca é baseado em banco de dados pelo fato de; uma busca é apenas uma comparação entre os dados inseridos pelo usuário com sua base de dados.

 

No caso que você não possui "uma" ligada a interface de seu site, é algo IMPOSSÍVEL buscar dados em um site sem "armazenamento de dados".

 

Para que você faça uma base de dados para seu site, seria legal, ao ver, que você confeccione novamente seu site, pois não justifica ter um com um banco por trás e você não guardar nada nele. . .

 

Bom, maiores detalhes, posta aí que ajudamos a você NA PARTE LÓGICA! ;)

 

Abraço!

 

DEUS Abençõe!!! http://forum.imasters.com.br/public/style_emoticons/default/joia.gif

Share this post


Link to post
Share on other sites
No caso que você não possui "uma" ligada a interface de seu site, é algo IMPOSSÍVEL buscar dados em um site sem "armazenamento de dados".

 

Cara, impossível não é... só é trabalhoso. Pois você tem que montar uma rotina para buscar nos diretórios e subdiretórios arquivos HTML ou PHP, abrí-los, limpar as tags e o código PHP, e fazer uma buscar no que sobrou através de expressões regulares e ir salvando as ocorrências. Eu já fiz um negócio desses... é um trampo, sem dúvida que fica mais fácil se você tiver todo o conteúdo do site num banco de dados.

 

Abraços.

Share this post


Link to post
Share on other sites

Como que eu construo o site pra ter essa base de banco de dados ai que você mencionou?Como que eu vou ter que fazer o site, que programa vou ter que usar, como que faz?Obrigado.Juninho

Share this post


Link to post
Share on other sites

galera, calma, faze sem banco de dados n eh esse seculo todo n... aki mesmo (no meu outro post) eu fiz um script de exemplo pra isso... vejam q n eh tao grande assim... agora, c quizer fazer em paginas PHP excluindo tags, você faz o conexao de socket com o proprio site, e assim ja vem o HTML direto, sem PHP, mas parece q o pessoal nem viu q eu postei um script... pode olhar ali em cima, eh ateh simples

Share this post


Link to post
Share on other sites

Como que eu faço pra construir o banco de dados (mysql) e o site em php?Partindo do zero e sendo leigo.É que td que vcs disseram até agora, pra mim que sou leigo, não adiantou nada.Obrigado.

Share this post


Link to post
Share on other sites

É possível realizar a busca sim em diretórios e sem banco de dados. Uma das grandes vantagens é que a atualização é automática. Simplesmente você indica a quantidade de diretórios e quais são esses diretórios, havendo portanto a necessidade de simplesmente informar o caminho. Caso queiram ver o script rodando basta acessar www.edumedeiros.com. Inclusive o resultado traz o nome do arquivo. Estou pesquisando para que saia o título da página para que facilite para o visitante. Caso alguém tenha como apresentar o título ou queira esse script de busca interna nos diretórios sem banco de dados é só solicitar.Edu Medeiros.com ®www.edumedeiros.com

Share this post


Link to post
Share on other sites

Olá amigo, já passei pela sua situação e entendo perfeitamente como esta sentindo ehehehe

 

primeiro, você vai precisar de um servidor de testes configurado no seu pc:

 

http://www.imasters.com.br/artigo.php?cn=271&cc=44

 

 

 

Instalando o PHPMyAdmin:

 

http://www.imasters.com.br/artigo.php?cn=3507&cc=239

 

 

 

Iniciando:

 

http://www.imasters.com.br/artigo.php?cn=270&cc=44

http://www.imasters.com.br/artigo.php?cn=62&cc=2

 

 

e então você comeca a desenvolver o site:

 

http://www.imasters.com.br/artigo.php?cn=650&cc=2

 

 

PS: Tudo isso q lhe passei foi o que procurei no site da iMasters, basta procurar na internet ou aqui mesmo no fórum e você logo acha tudo q está procurando.

 

Taum, mãos a obra... Vamos Estudar!!!

 

Abraço!

Share this post


Link to post
Share on other sites

Olá! Estou precisando fazer o mesmo esquema, tenho só algumas páginas de produtos que não terão alterações tão cedo.

Então está tudo fixo, sem banco de dados. Mas precisa de uma busca que procura no conteúdo e lista os links das páginas encontradas

Estou tentando usar seu código Wilker, vcs podem me dar um help sobre como adaptar? http://forum.imasters.com.br/public/style_emoticons/default/blush.gif

 

Fiz um teste assim:

no arquivo da busca usei o form:

 

<form id="form1" name="form1" method="post" action="busca.php">

<input name="palavra" type="text" id="palavra" />

<input type="submit" name="Submit" value="Submit" />

</form>

 

e no busca.php copiei seu código, só alterei a variável busca recebendo $palavra e a pasta onde estão os arquivos:

 

<?

$busca = "$palavra";

echo $busca;

 

$pasta = "produtos";

$dir = opendir($pasta);

 

$find = array();

 

while($arq = readdir($dir)) {

$buff = file_get_contents($pasta . "/" . $arq);

if(preg_match("/.*($busca).*/i", $buff)) {

$find[] = $arq;

}

}

 

if(count($find)) {

echo "Sua busca obteve sucesso nas seguintes paginas:<br />";

foreach($find as $v) {

echo "<a href='{$pasta}/{$v}'>{$v}</a><br />";

}

} else {

echo "Sua busca nao retornou nenhum resultado";

}

?>

 

 

Dentro da pasta produtos, criei 2 arquivos com algumas palavras. Busque a palavra "um" que estava em um dos arquivos e o busca.php exibiu este erro:

 

PHP Warning: file_get_contents(produtos/.) [function.file-get-contents]: failed to open stream: Permission denied in E:\home\azpa\Web\aligera\busca.php on line 11 PHP Warning: file_get_contents(produtos/..) [function.file-get-contents]: failed to open stream: Permission denied in E:\home\azpa\Web\aligera\busca.php on line 11

 

Sabem o que preciso mudar???

brigadinhaaa :D

Ju

 

 

 

 

 

 

 

 

 

 

da pra faze busca sem banco de dados sim, mas o processo n eh tao simples, eu vo posta um exemplo aki, e você deve estudar as funcoes usadas no www.php.net

 

o exemplo c baseia em procurar conteudo em arquivos .html (sem conteudo dinamico) numa pasta conteudo, dentro do site:

 

<!--php1--><div class='phptop'>PHP</div><div class='phpmain'><!--ephp1--><link href = "style_images/css_php.css" rel = "stylesheet" type = "text/css">

  • $busca = "palavra";
  • $pasta = "conteudo";
  • $dir = opendir<span style=' color: green;'>($pasta)</span>;
  • $find = array<span style=' color: green;'>()</span>;
  • while($arq = readdir<span style=' color: green;'>($dir)</span>) {
  • $buff = file_get_contents<span style=' color: green;'>($pasta . "/" . $arq)</span>;
  • if(preg_match("/.*<span style=' color: green;'>($busca).*/i"</span>, $buff)) {
  • $find<span style=' color: green;'>[]</span> = $arq;
  • }
  • }
  • if(count<span style=' color: green;'>($find)</span>) {
  • echo "Sua busca obteve sucesso nas seguintes paginas:<br />";
  • foreach<span style=' color: green;'>($find as $v)</span> {
  • echo "<a href='{$pasta}/{$v}'>{$v}</a><br />";
  • }
  • else {
  • echo "Sua busca nao retornou nenhum resultado";
  • }
<!--php2--></div><!--ephp2-->

 

c você precisar buscar conteudo em paginas que sao geradas dinamicamente (q usam PHP) você me fala q eu posto um jeito pra faze nelas ;)

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.