Jump to content


Photo

Comparação De Campos Mysql Php


  • Faça o login para participar
10 replies to this topic

#1 rebortec.com

rebortec.com

    Novato no fórum

  • Usuários
  • 19 posts
  • Sexo:Masculino
  • Localidade:Portugal

Posted 02/01/2012, 17:29

Boas Pessoal,

Estou aqui com uma dúvida, estou a criar um site/motor de busca e necessito de comparar campos para optimizar a base de dados.

Tenho o Script que lê os sites dos cliente e exporta a informação e escreve na base de dados, mas a base de dados assim fica pesada, o que queria era por exemplo:

Criar uma tabela marcas e quando importar os dados compara por exemplo a marca Intel verifica na tabela marcas e escreve o id equivalente a marca.

Consegui compara os valores novo e usado mas são apenas dois e as marcas são muitas não dá para fazer um if para 8542 marcas.

Obrigado.

Edição feita por: rebortec.com, 02/01/2012, 17:29.

www.rebortec.net - web & marketing | www.rebortec.com - Consultancy

#2 Goku Jr

Goku Jr

    Nilson

  • Usuários
  • 3757 posts
  • Sexo:Masculino

Posted 02/01/2012, 19:08

nossa pra q montar um if assim? pq vc não valida o valor dentro do banco de dados? se tiver grava se não, sei la trata de outra maneira

if case when etc...
-----------------------------------------------------------------------
PALMEIRAS - Primeiro campeão do mundo em 1951

#3 rebortec.com

rebortec.com

    Novato no fórum

  • Usuários
  • 19 posts
  • Sexo:Masculino
  • Localidade:Portugal

Posted 03/01/2012, 09:23

nossa pra q montar um if assim? pq vc não valida o valor dentro do banco de dados? se tiver grava se não, sei la trata de outra maneira

if case when etc...

 if ( $cond == 'Novo' ){
    $cond_n = '1';

} elseif ( $cond == 'Usado' ) {

    $cond_n = '2';

} else {

    $cond_n = '0';

}


Estou com problemas agora nesta função porque na base de dados tenho Mercedes-Benz e alguns clientes enviam apenas mercedes e não consigo associar.
O já pense em fazer expload também não consegui, alteres a query a base de dados fazendo um like e até mesmo com indices fulltext e também não consigo.

Obrigado

Edição feita por: rebortec.com, 03/01/2012, 09:32.

www.rebortec.net - web & marketing | www.rebortec.com - Consultancy

#4 Fernando_Ramos

Fernando_Ramos

    Fernando Ramos

  • Usuários
  • 728 posts
  • Sexo:Não informado

Posted 03/01/2012, 09:39

Não sei como vc definiu a sua base de dados.... mas se os indices estiverem corretos.... vc não "deveria" conseguir incluir uma marca que não existe....

E no momento que vc cadastra uma marca... vc poderia usar o UNIQUE do banco.... e tratar o erro.... é uma opção.... Ou fazer um select antes...
--
www.ramosinformatica.com
contato@ramosinformatica.com | @rinformatica

Hospedagem de site | Desenvolvimento de Sistemas | Informática em Geral

#5 rebortec.com

rebortec.com

    Novato no fórum

  • Usuários
  • 19 posts
  • Sexo:Masculino
  • Localidade:Portugal

Posted 03/01/2012, 09:44

Não sei como vc definiu a sua base de dados.... mas se os indices estiverem corretos.... vc não "deveria" conseguir incluir uma marca que não existe....

E no momento que vc cadastra uma marca... vc poderia usar o UNIQUE do banco.... e tratar o erro.... é uma opção.... Ou fazer um select antes...


Concordo com a sua sugestão, mas toda a informação que é inserida no banco de dados chega através de um XML pelo que alguns enviam Mercedes, outros enviam Mercedes-Benz, mas pretendo utilizar o máximo de strings possiveis na tabela de modo a consegui melhor performance, assim criei uma tabela marcas para fazer comparação e associar um id ao qual irá subtituir o nome da marca na tabela principal.

Imagine que alguem faz uma pesquisa por Mercedes, sei que a marca mercedes tem o ID 44 irei procurar todos os anuncios que conteem o id 44 na marca, será muito mais rápido e leve.
www.rebortec.net - web & marketing | www.rebortec.com - Consultancy

#6 Fernando_Ramos

Fernando_Ramos

    Fernando Ramos

  • Usuários
  • 728 posts
  • Sexo:Não informado

Posted 03/01/2012, 09:47

Sim... mas acho (Minha opinião) que vc gravar 44 - Mercedes ... 45 - Mercedes Bens ... 46 - Mercedes-Bens .... isso nunca vai ter fim.....

Grave um... o mais completo... e use o LIKE.....
--
www.ramosinformatica.com
contato@ramosinformatica.com | @rinformatica

Hospedagem de site | Desenvolvimento de Sistemas | Informática em Geral

#7 rebortec.com

rebortec.com

    Novato no fórum

  • Usuários
  • 19 posts
  • Sexo:Masculino
  • Localidade:Portugal

Posted 03/01/2012, 09:53

Sim... mas acho (Minha opinião) que vc gravar 44 - Mercedes ... 45 - Mercedes Bens ... 46 - Mercedes-Bens .... isso nunca vai ter fim.....

Grave um... o mais completo... e use o LIKE.....



Bom Dia

É o que estou a fazer,

mas não está funcionando correctamente. Tenho apenas Mercedes-Benz na tabela marcas. Mas alguns clientes enviam Apenas Mercedes.
www.rebortec.net - web & marketing | www.rebortec.com - Consultancy

#8 Fernando_Ramos

Fernando_Ramos

    Fernando Ramos

  • Usuários
  • 728 posts
  • Sexo:Não informado

Posted 03/01/2012, 10:02


Sim... mas acho (Minha opinião) que vc gravar 44 - Mercedes ... 45 - Mercedes Bens ... 46 - Mercedes-Bens .... isso nunca vai ter fim.....

Grave um... o mais completo... e use o LIKE.....



Bom Dia

É o que estou a fazer,

mas não está funcionando correctamente. Tenho apenas Mercedes-Benz na tabela marcas. Mas alguns clientes enviam Apenas Mercedes.




SELECT * FROM marcas WHERE marca_descricao LIKE '%mercedes%'

deveria trazer qualquer coisa q contenha mercedes .....
--
www.ramosinformatica.com
contato@ramosinformatica.com | @rinformatica

Hospedagem de site | Desenvolvimento de Sistemas | Informática em Geral

#9 rebortec.com

rebortec.com

    Novato no fórum

  • Usuários
  • 19 posts
  • Sexo:Masculino
  • Localidade:Portugal

Posted 03/01/2012, 10:04



Sim... mas acho (Minha opinião) que vc gravar 44 - Mercedes ... 45 - Mercedes Bens ... 46 - Mercedes-Bens .... isso nunca vai ter fim.....

Grave um... o mais completo... e use o LIKE.....



Bom Dia

É o que estou a fazer,

mas não está funcionando correctamente. Tenho apenas Mercedes-Benz na tabela marcas. Mas alguns clientes enviam Apenas Mercedes.


Associa á Marca GSM:s

Tal como todos que não consegue associar outros consegue.



SELECT * FROM marcas WHERE marca_descricao LIKE '%mercedes%'

deveria trazer qualquer coisa q contenha mercedes .....


www.rebortec.net - web & marketing | www.rebortec.com - Consultancy

#10 Fernando_Ramos

Fernando_Ramos

    Fernando Ramos

  • Usuários
  • 728 posts
  • Sexo:Não informado

Posted 03/01/2012, 10:09

não entendi ...
--
www.ramosinformatica.com
contato@ramosinformatica.com | @rinformatica

Hospedagem de site | Desenvolvimento de Sistemas | Informática em Geral

#11 rebortec.com

rebortec.com

    Novato no fórum

  • Usuários
  • 19 posts
  • Sexo:Masculino
  • Localidade:Portugal

Posted 03/01/2012, 18:51

não entendi ...



Com o LIKE associa sempre o ID 127 a todas as marcas, já eliminei o ID 127 e associa na mesma esse ID


não entendi ...



Com o LIKE associa sempre o ID 127 a todas as marcas, já eliminei o ID 127 e associa na mesma esse ID

Resolvido, o tipo de campo na base de dados só permitia até 127... :S Falha minha peço desculpa
www.rebortec.net - web & marketing | www.rebortec.com - Consultancy




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq