Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá,
Fiz um sistema de busca para preços, e a mesma será realizada em tags, porém como o conteúdo é estático e não há necessidade de segurança é gerado um json para não precisar consultar o DB toda hora, segue parte do código:
...
foreach ($data as $key => $value) {
if (strpos($value->$alvo, $valor) !== false) {
$array[] = [
...
];
}
}
...
O código é simples, é um foreach para percorrer o json e se encontrar a busca, cria um array com as informações, ok.
Mas queria uma busca com no mysqli, algo semelhante ao %LIKE%, existe alguma forma de eu fazer isso no php?
Porque da forma que fiz só funciona se digitar a palavra inteira na busca.
Ex:
Quero buscar "computador", não consigo digitar as 4 primeiras letras da busca: "comp", precisa ser "computador".
Obrigado.Opa,
Achei que teria alguma função que fizesse isso.
O que eu fiz foi manual mesmo, peguei os dígitos da busca, contei quantos caracteres tem e fiz a comparação só trecho de palavras.
Mas fica muita gambiarra, para uma coisa simples!
Obrigado.
Aí não teria como.... teria sim....
No caso se não fosse buscar pelo operador LIKE teria que criar toda um lógica você mesmo onde cada caractere forma um busca real (criar um algorítimo para a situação).
Acho desnessesário mediante ao aogoritimo nessessário a se criar buscasse algo viável no banco, o que daria no mesmo que usar o operador LIKE... então substuíndo ele pelo WHERE
Na questão se o vamos da busca se for comp e o operador for o LIKE mesmo que seja computador o resultado da busca será indiferentimente.
Ou seja mesmo criando uma lógica total o resultado é o mesmo usando o operador LIKE, tornando qualquer manobra para contornar totalmente desnecessário