Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Galera estou com um problema, vou explicar o negócio do começo.
Inicialmente eu precisava pegar duas tabelas do banco de dados (que são quase idênticas, porém a tabela antiga tinha alguns dados e da tabela nova os campos estão vazios) e compará-las pelo email que são iguais nas duas tabelas, quando a comparação batesse eu dava um update na tabela nova inserindo alguns dados da tabela antiga.
O meu problema está justamente na forma de fazer, abaixo vai um pedaço do código:
<?php
$conecta = mysql_connect($host,$user,$pass);
$selecionaBase = mysql_select_db($db) or die (mysql_error());
$sql = 'SELECT * FROM gen_usuarios';
$bd_antigo = mysql_query($sql) or die(mysql_error());
$sql = 'SELECT * FROM v51ny_users';
$bd_atual = mysql_query($sql) or die(mysql_error());
while ($linhaBDatual = mysql_fetch_assoc($bd_atual)) {
$emailAtual = $linhaBDatual['email'];
$idAtual = $linhaBDatual['id'];
echo "1";
while ($linhaBDantigo = mysql_fetch_assoc($bd_antigo)) {
$emailAntigo = $linhaBDantigo['email'];
echo "2";
$cpfAntigo = $linhaBDantigo['cpf'];
$rgAntigo = $linhaBDantigo['rg'];
if ($emailAtual == $emailAntigo) {
$query = mysql_query("UPDATE v51ny_users SET cpf='$cpfAntigo', rg='$rgAntigo', ") or die(mysql_error());
}
}
}
?>Valeu pessoal =)
Olá,
Um Inner Join não resolve?
SELECT * FROM tabela1 INNER JOIN tabela2 ON tabela1.email = tabela2.email
>
Olá,
Um Inner Join não resolve?
SELECT * FROM tabela1 INNER JOIN tabela2 ON tabela1.email = tabela2.email
Acho que não funcionaria, pois eu teria que comparar, e se for igual o email tenho que inserir vários dados da tabela 1 na 2
<?php
$host = 'localhost';
$user = 'root';
$pass = 'xxxx';
$db = 'xxxx';
$cont = 0;
$conecta = mysql_connect($host,$user,$pass);
$selecionaBase = mysql_select_db($db) or die (mysql_error());
$sql = 'SELECT * FROM bd1';
$bd_antigo = mysql_query($sql) or die(mysql_error());
$sql = 'SELECT * FROM bd2';
$bd_atual = mysql_query($sql) or die(mysql_error());
while ($linhaBDatual = mysql_fetch_assoc($bd_atual)) {
$emailAtual = $linhaBDatual['email'];
$dadosBdAtual[$cont] = $emailAtual;
$cont++;
}
while ($linhaBDantigo = mysql_fetch_assoc($bd_antigo)) {
$emailAntigo = $linhaBDantigo['email'];
$cpfAntigo = $linhaBDantigo['cpf'];
$rgAntigo = $linhaBDantigo['rg'];
$crmAntigo = $linhaBDantigo['crm'];
$enderecoAntigo = $linhaBDantigo['endereco'];
$cidadeAntigo = $linhaBDantigo['cidade'];
$cepAntigo = $linhaBDantigo['cep'];
$ufAntigo = $linhaBDantigo['uf'];
$telefoneAntigo = $linhaBDantigo['telefone'];
$celularAntigo = $linhaBDantigo['celular'];
$endereco_cAntigo = $linhaBDantigo['endereco_c'];
$cidade_cAntigo = $linhaBDantigo['cidade_c'];
$cep_cAntigo = $linhaBDantigo['cep_c'];
$telefone_cAntigo = $linhaBDantigo['telefone_c'];
$tipo_cadAntigo = $linhaBDantigo['tipo_cad'];
$constarAntigo = $linhaBDantigo['constar'];
$matriculaAntigo = $linhaBDantigo['matricula'];
$estadocivilAntigo = $linhaBDantigo['estadocivil'];
$orgaoexpedidorAntigo = $linhaBDantigo['orgaoexpedidor'];
$datanascAntigo = $linhaBDantigo['datanasc'];
$naturalidadeAntigo = $linhaBDantigo['naturalidade'];
$nacionalidadeAntigo = $linhaBDantigo['nacionalidade'];
$maladiretaAntigo = $linhaBDantigo['maladireta'];
$bairro_residAntigo = $linhaBDantigo['bairro_resid'];
$bairro_comAntigo = $linhaBDantigo['bairro_com'];
$estado_comAntigo = $linhaBDantigo['estado_com'];
$ano_formaturaAntigo = $linhaBDantigo['ano_formatura'];
$instituicaoAntigo = $linhaBDantigo['instituicao'];
$expiredateAntigo = $linhaBDantigo['expiredate'];
$rgnAntigo = $linhaBDantigo['rgn'];
$usuario_rgnAntigo = $linhaBDantigo['usuario_rgn'];
$senha_rgnAntigo = $linhaBDantigo['senha_rgn'];
for ($i=0; $i < $cont; $i++) {
$dadoEmail = $dadosBdAtual[$i];
if ($dadoEmail == $emailAntigo) {
$query = mysql_query("UPDATE bd2 SET cpf='$cpfAntigo', rg='$rgAntigo', crm='$crmAntigo', endereco='$enderecoAntigo', cidade='$cidadeAntigo', cep='$cepAntigo', uf='$ufAntigo', telefone='$telefoneAntigo', celular='$celularAntigo', endereco_c='$endereco_cAntigo', cidade_c='$cidade_cAntigo', cep_c='$cep_cAntigo', telefone_c='$telefone_cAntigo', tipo_cad='$tipo_cadAntigo', constar='$constarAntigo', matricula='$matriculaAntigo', estadocivil='$estadocivilAntigo', orgaoexpedidor='$orgaoexpedidorAntigo', datanasc='$datanascAntigo', naturalidade='$naturalidadeAntigo', nacionalidade='$nacionalidadeAntigo', maladireta='$maladiretaAntigo', bairro_resid='$bairro_residAntigo', bairro_com='$bairro_comAntigo', estado_com='$estado_comAntigo', ano_formatura='$ano_formaturaAntigo', instituicao='$instituicaoAntigo', expiredate='$expiredateAntigo', rgn='$rgnAntigo', usuario_rgn='$usuario_rgnAntigo', senha_rgn='$senha_rgnAntigo' WHERE email='$dadoEmail'") or die(mysql_error());
}
}
}
?>
você pode resolver isso facilmente com uma query de update mesclada com um select.