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

Como procurar um produto pela descrição parcial? [resolvido]


Frank K Hosaka

Pergunta

Ontem eu vi  a lista de produtos da Bling, eu digitei 417, e ele me retornou o produto correspondente.

O código que eu fiz busca o produto por descrição. Para procurar em outros campos, eu inventei um código baseado no primeiro caractere, tipo @417, só que ele retorna o produto do código 417 bem como o 1417 e outros produtos que contenham o 417 na descrição ou no código de barra.

Fiquei imaginando se é possível priorizar a busca pelo código do produto, e a Gemini me passou a instrução INSTR, assim:

<?php

// $produtos=$this->Conexao->select("* from tbprod where
            //    concat_ws(',',codprod,un,prod,codbar,loc,emb,cf,codforn) like '%$busca%'
            //    order by prod");
            
$produtos=$this->Conexao->select("* FROM tbprod WHERE INSTR(concat_ws(',', codprod, prod, codbar), 
           '$busca') > 0
           ORDER BY INSTR(concat_ws(',', codprod, prod, codbar), '$busca'), prod");

O código da Gemini é engenhoso, ele realmente prioriza o código que foi digitado, mas o resultado da Bling é fascinante. Ele só retorna o produto do código correspondente e não mostra mais nada.

Desconfio que o código da Bling seja assim:

1. pegar o que foi digitado no <input> e guarda em $busca.
2. se $busca é numérico e o seu valor for menor igual ao maior código dos produtos, então execute o comando "select * from produtos where codigoProduto = $busca".
3. se $busca é numérico e o seu valor for maior que o maior código dos produtos, então execute o comando "select * from produtos where codigoBarra = $busca".
4. se $busca não é numérico, então execute o comando "select * from produtos where descricaoProduto like '%busca%'".

O que mais me impressionou no motor de busca da Bling é o uso parcial na busca pela descrição do produto. Vamos supor que temos algo do tipo "cadeado trancatudo 20mm", eu posso buscar o produto na Bling usando como critério escrevendo assim "cadeado 20mm". Nesse caso o verbo like ou o INSTR não retornam coisa alguma.

Alguém tem alguma ideia de como é possível consultar um produto usando partes da descrição sem a necessidade dessas partes estarem na mesma posição?

Editado por Frank K Hosaka
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,1k
    • Posts
      651,8k
×
×
  • Criar Novo...