Guest --Fabio -- Postado Fevereiro 22, 2007 Denunciar Share Postado Fevereiro 22, 2007 Olá pessoal, preciso montar um codigo que faça o seguinte :Tenho um banco de dados em MySQL chamado "BANCO_SISTEMA",nele tem uma tabela : "Clientes" com os campos( Nome, Endereço, Cidade, Estado, CLI_CEP )e um outra tabela : " CEPS " com ( Nome_da_rua, Cidade, estado, CEP ) na Tabela " clientes " todos estão sem CEPS, e na tabela " CEPS ", tem os CEPS de todas as ruas, então preciso o seguinte :Pegue o " endereço " e a " cidade " na tabela " Clientes "pegue estes valores, compare na tabela " CEPS "encontre o CEP da determinada rua e grave no campo CLI_CEPS da tabela clientes.eu poderia fazer isso manualmente se fosse poucos porem são mais de 6 mil.Acho que a logica seria :1 - pegue o nome da rua + cidade da tabela " CLIENTES ".2 - va ate na tabela " CEPS " localize a cidade e localize o nome da rua.3 - na tabela " CLIENTES " set no campo CLI _CEP o CEP obtido.set no cliCEP acho que seria com comandos SELECT e UPDATESPorem como comecei agora não sei como montar esta SQL.Poderia me ajudar a montar este codigo por favor. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 tiagopassos Postado Fevereiro 23, 2007 Denunciar Share Postado Fevereiro 23, 2007 Bom...vou tentar explicar como você pode fazer:// Isso vai selecionar os registros de todos os clientes $query = "SELECT * FROM `tabela`"; $result = mysql_query ($query); while ($row = mysql_fetch_array($result)) { $nome = $row[Nome]; $rua = $row[endereco]; // Dentro dessa query, você faz outra, que vai procurar na outra tabela $query2 = "SELECT * FROM `CEPS` WHERE `Nome_da_rua` = '$rua'"; $result2 = mysql_query ($query2); while ($row2 = mysql_fetch_array($result2)) { $id = $row2[id]; $cep = $row2[endereco]; // Você vai precisar isolar o nome da rua do resto do endereço // para que a busca seja feita com sucesso // Você pode fazer isso usando a função explode() - http://br.php.net/explode if ($CLI_CEPS != $null) { $query3 = "UPDATE `clientes` SET `CLIP_CEP` = '$cep' WHERE `nome` = '$nome' LIMIT 1"; $result3 = mysql_query ($query3); } } } }Bem...é basicamente isso, mas não copie e cole direto, é mais pra você ter uma noçãode como fazer... Lembre-se que este script criará um tráfego imenso no servidor,uma vez que se você tiver 1000 clientes e 6000 ceps, ele fará até 6 milhões de consultasem um tempo curtíssimo.Existe uma função chamada sleep que dá um delay entre uma consulta e outra...Você pode endendê-la em http://br.php.net/sleepÉ recomendável que você faça um backup do banco de dados antes de executar o script,porque se der pau em alguma coisa, você não perde tudo.Também recomendo que você utilize um "id" pra cada linha nas duas tabelas,ou seja, um código para cada registro de cliente e um código para cada registro de CEP.Se você tiver como mudar o banco de dados, faça isso, poderá te ajudar muito futuramente. Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Guest --Fabio --
Olá pessoal, preciso montar um codigo que faça o seguinte :
Tenho um banco de dados em MySQL chamado "BANCO_SISTEMA",
nele tem uma tabela : "Clientes" com os campos( Nome, Endereço, Cidade, Estado, CLI_CEP )
e um outra tabela : " CEPS " com ( Nome_da_rua, Cidade, estado, CEP )
na Tabela " clientes " todos estão sem CEPS, e na tabela " CEPS ", tem os CEPS de todas as ruas, então preciso o seguinte :
Pegue o " endereço " e a " cidade " na tabela " Clientes "
pegue estes valores, compare na tabela " CEPS "
encontre o CEP da determinada rua e grave no campo CLI_CEPS da tabela clientes.
eu poderia fazer isso manualmente se fosse poucos porem são mais de 6 mil.
Acho que a logica seria :
1 - pegue o nome da rua + cidade da tabela " CLIENTES ".
2 - va ate na tabela " CEPS " localize a cidade e localize o nome da rua.
3 - na tabela " CLIENTES " set no campo CLI _CEP o CEP obtido.
set no cliCEP
acho que seria com comandos SELECT e UPDATES
Porem como comecei agora não sei como montar esta SQL.
Poderia me ajudar a montar este codigo por favor.
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.