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

(Resolvido) como fazer busca no banco?


misterviralata

Pergunta

Ola Amigos!

Estou com um problema que está esquentando minha cabeça.

em uma tabela tabela tenho um campo com o nome de codigo e nela tenho cerca de 5000 registros.

exemplo:

$sql=mysql_query("SELECT * FROM TABELA");

$x=0;
while($row=mysql_fetch_array($sql){
echo 'valor do campo'.$x.'= '.$row['codigo'].'<br>';
$x++;
}

/*imprime
valor do campo1= 1#5#9#20#6
valor do campo2= 26#9#53#35
valor do campo3= 2#65#2#1
valor do campo4= 5#9
valor do campo5= 8#7#6#2
etc ....
*/
O Primeiro Problema! Como fazer uma busca neste campo?
$sql=mysql_query("SELECT * FROM TABELA WHERE codigo=2");

No primeiro exemplo deveria retornar o campo 3 e 5.

O segundo problema!

Depois que conseguir uma forma de trazer os resultados correspondente a busca, como saber a posição dele? exemplo

O campo5 = 8#7#6#2 ( posição do numero 2 é 4)

O campo3 = 2#65#2#1 ( posição do numero 2 é 1 e 2)

Já tentei de varias formas e não conseguir ter sucesso, não sei mais o que fazer!

Caso alguém puder me ajudar, fico muito grato!

Link para o comentário
Compartilhar em outros sites

9 respostass a esta questão

Posts Recomendados

  • 0

Ola M@luco Belez@!

Caso eu utilize o LIKE %2%, imagine se fizer uma busca pelo numero 2.

ele vai me retornar

valor do campo1= 1#5#9#20#6

valor do campo2= 26#9#53#35

valor do campo3= 2#65#2#1

valor do campo5= 8#7#6#2

mas eu preciso dos campos que tenha o valor exato no caso campo3 e campo5

Link para o comentário
Compartilhar em outros sites

  • 0

Ola cassianooliver

valor do campo1= 1#5#9#20#6

valor do campo2= 26#9#53#35

valor do campo3= 2#65#2#1

valor do campo4= 5#9

valor do campo5= 8#7#6#2

Usando o Like não ta dando certo

$sql=mysql_query("SELECT * FROM TABELA WHERE codigo LIKE '%#2#%'")

Desta forma ele trás todos os registros que tem o numero 2 e não é isso que quero.

Eu quero que traga só o registro que tenha o numero 2 entre os #

exemplo o terceiro registro (valor do campo3= 8#65#2#1) da certo por que o numero 2 está entre os # (#2#).

no caso do quinto registro 8#7#6#2, não da certo por que o numero 2 está no final (#2)

Se tiver outro registro começando com o numero 2 (2#5#200#36) também não daria certo porque o numero 2 Não está entre os # (2#)

Entendeu? Isto é um log de acesso, só que não fui eu quem criou as tabelas, só estou tentando exibir os logs, e não tenho permisão para alterar os registros

Link para o comentário
Compartilhar em outros sites

  • 0

cassianooliver

foi como eu disse, eu estou apenas exibindo os registros e não tenho permissão para altera-los

como vou localizar um registro que tenha o 2 no inicio 2#52#8#7 ou que tenha o 2 no final 5#6#3#2

com o like '%#2#%' ele só localiza registros que tem o 2 no meio! 4#2#3#5!

Pensei em fazer assim:

$sql=mysql_query("SELECT * FROM TABELA WHERE CAMPO LIKE '%#2#%' OR CAMPO LIKE '%#2%' OR  CAMPO LIKE '%2#%'");

mas também não deu por que se tiver um registro assim: ele retorna 5#3#32#8

Link para o comentário
Compartilhar em outros sites

  • 0

Oi 'misterviralata'!

Seu select seria assim:

SELECT  * FROM TABELA WHERE SUBSTRING(CAMPO, 1,2) = '2#' OR SUBSTRING(CAMPO, LENGTH(CAMPO), 2) = '#2' OR CAMPO LIKE '%#2#%';

Sempre leia o manual (mysql). A solução está lá.

Link para o comentário
Compartilhar em outros sites

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