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

Busca com varredura avançada


Phil Santos

Pergunta

Olá colegas,

Venho com mais um post pedindo a ajuda dos colegas, lembrando sempre que não sou programador, estou aprendendo e fazendo as aplicações que preciso as quais estão sendo possíveis com a ajuda de vocês.

O que ocorre nesta dúvida é que eu tenho sisteminha de busca que inclusive os colegas em um outro post já me ajudaram a fazer uma modificação que me ajudou muito, foi eficaz, mas eu percebi que para a aplicação deste caso eu vou precisar que a busca seja feita de forma diferente da que está funcionando por alguns motivos que eu vou descrever abaixo junto com uma explicação sobre a minha aplicação para que fique bem explicado para os colegas poderem me ajudar.

Eu percebi que, possivelmente, não é certeza, mas eu precisarei usar mais de uma tabela no meu banco e eu até prefiro que seja assim, pois fica mais orgaizado para eu encontrar e lançar os assuntos nas tabelas.

Outra coisa é que eu não gostaria de utilizar nenhuma outra tecnologia ou plataforma que não seja PHP e MySQL porque como eu disse eu não sou programador e fica muito corrido para eu estudar outras tecnologias para implementar, portanto, se possível, eu peço aos colegas que me ajudem com uma possível solução em PHP mesmo e MySQL.

Quanto à busca eu preciso trabalhar com várias tabelas e várias categorias.

Um esboço:

Eu tenho a categoria alimentos dentro dela preciso de várias sub-categorias, frutas, verduras, legumes, cereais, grãos, sementes, ervas, temperos, etc e dentro de cada uma os respectivos alimentos e dentro de cada alimento, por exemplo:

Categoria 1("tabela1") - Alimentos
Categoria 2("tabela2") dentro de alimentos - Frutas
Categoria 3("tabela3") dentro de frutas - cítricas, ácidas, claras, vermelhas, 
Categoria 4("tabela4") dentro de cítricas - ricas em  flavonóides, ricas em vitamina C, ricas em ferro
Categoria 5("tabela5") dentro de ácidas -  ricas em  flavonóides, ricas em vitamina C, ricas em ferro
Categoria 6("tabela6") dentro de vermelhas - ricas em  flavonóides, ricas em vitamina C, ricas em ferro

Daí em uma outra parte do site:

Tratamentos

Categoria 1("tabela1") - Tipos de tratamentos com frutas, com legumes, com verduras, com sucos, com proteínas, com lipídeos
Categoria 2("tabela2") dentro de legumes - abóbora, mandioca, etc

O que eu realmente preciso:

Que o script que eu já tenho faça a busca de cada coisa na sua tabela porque eu coloquei um id como chave primária no index da tabela e o problema é que quando eu vou inserir as coisas fica tudo bagunçado, por exemplo as entradas estão lá co seus id's daí passa um tempo eu preciso incluir um alimento novo e um tratamento novo ele fica lá embaixo de tudo com id sei lá 978 vamos dizer quando o resto ta lá no topo da tabela, fica tratamento misturado com remédios, misturado com alimentos, misturado com todas coisas.

Outra coisa muito importante é o seguinte, vejam:

Tenho títulos e explicações dentro de uma página .php ...

<h5 class="content_h5_1">Acologia</h5>
<p class="content_text_1">Parte da medicina que trata dos remédios</p>
<br />
<h5 class="content_h5_1">Acidentologia</h5>
<p class="content_text_1">Ciência que estuda os acidentes, os seus nexos de causalidade e dinâmicas</p>
<br />
<h5 class="content_h5_1">Acropatologia</h5>
<p class="content_text_1">Estudo das doenças que afetam as extremidades</p>
<br />

Se eu digitar na busca, por exemplo, a palavra "nexos" que está dentro do ítem com o título "Acidentologia" ele trás a página .php inteira com os outros ítens. Eu pensei em colocar todos na página .php, mas no banco colocar cada íntem em uma linha da tabela com um id, só que aí que entra a questão lá do começo deste post que é como fazer que a busca seja feita no meu script em várias tableas do banco.

Abaixo segue o código do meu script de busca:

 

<?php
    $db = @mysql_connect("meu host", "meu banco", "minha senha") or die("Erro de conexão: ".mysql_error());
    @mysql_select_db("meu banco", $db) or die("Erro de seleção do DB: ".mysql_error());
?>
<?php
    if(isset($_POST['botao'])){
    $busca = $_POST['busca'];
    if($busca == "" or $busca == " "){
    header('location:http://www.meudominio.com.br/digitealgoparaabusca.php'); 
    }else{
    $busca_dividida = explode(' ',$busca);
    $quant = count($busca_dividida);
    $id_mostrado = array("");
    for($i=0;$i<$quant;$i++){
    $pesquisa = $busca_dividida[$i];
    $sql = mysql_query("SELECT * FROM busca WHERE conteudo REGEXP '".str_replace(' ','|',$busca)."'");
    $quant_campos = mysql_num_rows($sql);
    if($quant_campos == 0){ 
    header('location:http://www.meudominio.com.br/nenhumresultado.php'); 
    }else{
    while($linha = mysql_fetch_array($sql)){
    $id = $linha['id'];
    $titulo = $linha['titulo'];
    $conteudo = $linha['conteudo'];
    if(!array_search($id, $id_mostrado)){
    echo "<div class='resultado'>
    <p>".$conteudo."</p>
    </div>
    <br />
    ";    
    array_push($id_mostrado, $id);
    }
    }//do while
    }//do else
    //for($i;$i<count($id_mostrado);$i++){
    //echo $id_mostrado[$i]."<br />";
    //}
    }//do for
    }//so else campo vazio
    }//do if botão pressionado
    ?>
 

Obrigado!

Phil

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

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