piovezan 0 Denunciar post Postado Setembro 29, 2011 Olá Estou trabalhando com o código de outra pessoa e estou com o seguinte problema, Preciso selecionar todos as ocorências de uma tabela e depois inserir todos os dados em outra com a mesma estrutura. No código que eu tenho só grava uma ocorrência. Já tentei usar um for, mas ele insere dados repetidos. Segue abaixo o código. /////////////////////////////////// INICIO INSERT INTO TOMBO LIMPAS /////////////////////////////////////////// $query="SELECT * FROM limpas WHERE lrg ='$tombo_rg' "; $resultado = mysql_query($query) or die(mysql_error()); $cont= mysql_num_rows($resultado) or die (mysql_error()); while($row = mysql_fetch_array($resultado)) { $lrg= $row["lrg"]; $ocodata =$row["ocodata"]; $assunto =$row["assunto"]; $historico= $row["historico"]; } $sql = "INSERT INTO tombolimpas (lrg, ocodata, assunto,historico ) VALUES ('$lrg', '$ocodata', '$assunto', '$historico' )"; $result = mysql_query($sql) or die(mysql_error()); Se alguem puder me ajudar agradeço. Arilson Piovezan Compartilhar este post Link para o post Compartilhar em outros sites
hufersil 145 Denunciar post Postado Setembro 29, 2011 Nem precisa tanto. Com uma única instrução SQL você resolve: INSERT INTO tabela_nova (campo1, campo2, campo3) SELECT campo1, campo2, campo3 FROM tabela_velha WHERE campo1 = 'condicao'; Dessa forma, inclusive, será bem mais rápido o processo ;) @braços e fique com Deus! Compartilhar este post Link para o post Compartilhar em outros sites
piovezan 0 Denunciar post Postado Setembro 29, 2011 Nem precisa tanto. Com uma única instrução SQL você resolve: INSERT INTO tabela_nova (campo1, campo2, campo3) SELECT campo1, campo2, campo3 FROM tabela_velha WHERE campo1 = 'condicao'; Dessa forma, inclusive, será bem mais rápido o processo ;) @braços e fique com Deus! Obrigado pela atenção, mais ainda não deu. Fiz o seguinte: $qry= mysql_query (INSERT INTO tombolimpas (lrg, ocodata, assunto, historico) SELECT lrg, ocodata, assunto, historico FROM limpas WHERE lrg = '$tombo_rg';); e da este erro:Parse error: syntax error, unexpected T_STRING ... . Acho que não estou sabendo montar a query. Se puder me ajudar. Deus lhe abençõe ! Arilson Compartilhar este post Link para o post Compartilhar em outros sites
pixelrafael 7 Denunciar post Postado Setembro 29, 2011 $qry=mysql_query("INSERT INTO tombolimpas (lrg, ocodata, assunto, historico) SELECT lrg, ocodata, assunto, historico FROM limpas WHERE lrg = '$tombo_rg'"); Compartilhar este post Link para o post Compartilhar em outros sites
piovezan 0 Denunciar post Postado Setembro 29, 2011 Fiz conforme você fez e deu o seguinte erro: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'Resource id #9' at line 1 :wacko: :wacko: Arilson Compartilhar este post Link para o post Compartilhar em outros sites
pixelrafael 7 Denunciar post Postado Setembro 29, 2011 faz assim: <?php $sql = "INSERT INTO tombolimpas (lrg, ocodata, assunto, historico) SELECT lrg, ocodata, assunto, historico FROM limpas WHERE lrg = '$tombo_rg'"; $qry = mysql_query($sql)or die (mysql_error()); ?> E me fala o erro. Compartilhar este post Link para o post Compartilhar em outros sites
piovezan 0 Denunciar post Postado Setembro 29, 2011 Coloqei o código e deu este erro:Parse error: syntax error, unexpected '<' in Porém usei o código sem as tags do php e funcionou, mas teve um probleminha está duplicando os registros. abaixo todo o código desta parte do programa: /////////////////////////////////// LIMPAS /////////////////////////////////////////// /////////////////////////////////// LIMPAS /////////////////////////////////////////// $sql = mysql_query("SELECT * FROM limpas WHERE (lrg ='$tombo_rg')"); $limpas = mysql_num_rows($sql); if ( $limpas > 0 ) { /////////////////////////////////// INICIO INSERT INTO TOMBO LIMPAS /////////////////////////////////////////// $sql = "INSERT INTO tombolimpas (lrg, ocodata, assunto, historico) SELECT lrg, ocodata, assunto, historico FROM limpas WHERE lrg = '$tombo_rg'"; $qry = mysql_query($sql)or die (mysql_error()); ? $result = mysql_query($sql) or die(mysql_error()); /*////////////////////////////////// DELET CAD limpas -> /////////////////////////////////////////// */ if($result){ mysql_query("DELETE FROM limpas WHERE lrg= '$tombo_rg' "); echo '<td><font size="2" face="Arial, Helvetica, sans-serif">Plano de Chamada ( Limpas ) ...</font></td>'; echo '<td align="left"><font size="2" face="Arial, Helvetica, sans-serif">'; echo '<font color="#FF0000">Aguarde excluindo !!!</font></font><td></tr>'; } } Será que o problema de dulpicação é por ter duas variáveis $sql ? Obrigado Arilson Piovezan Compartilhar este post Link para o post Compartilhar em outros sites
hufersil 145 Denunciar post Postado Setembro 29, 2011 Esta inserção com consulta não duplica registros quando a tabela de inserção é diferente da tabela de consulta (que é o seu caso). Muito provavelmente é "lixo" de algum teste anterior ou alguma coisas está sendo chamada duas vezes. Para saber o que vai ser inserido, pegue a parte "SELECT ...." e teste em um terminal MySQL (MysqlAdmin da vida) para ver o resultado. O que você ver lá é o que vai ser inserido na outra tabela. @braços Compartilhar este post Link para o post Compartilhar em outros sites
piovezan 0 Denunciar post Postado Setembro 29, 2011 No PhpMyAdmin, testei a duas cláusulas select e em cada uma seleciona a quantidade certa de registros. A página tem diversos códigos, ta tudo confuso, vou olhar com mais cuidado as outras instruções sql que existem. Se alguém tiver idéia do que pode ser, posta ai. Agradeço a atenção de todos, Arilson Piovezan Compartilhar este post Link para o post Compartilhar em outros sites
marcosfj1 0 Denunciar post Postado Setembro 29, 2011 Olá Estou trabalhando com o código de outra pessoa e estou com o seguinte problema, Preciso selecionar todos as ocorências de uma tabela e depois inserir todos os dados em outra com a mesma estrutura. No código que eu tenho só grava uma ocorrência. Já tentei usar um for, mas ele insere dados repetidos. Segue abaixo o código. /////////////////////////////////// INICIO INSERT INTO TOMBO LIMPAS /////////////////////////////////////////// $query="SELECT * FROM limpas WHERE lrg ='$tombo_rg' "; $resultado = mysql_query($query) or die(mysql_error()); $cont= mysql_num_rows($resultado) or die (mysql_error()); while($row = mysql_fetch_array($resultado)) { $lrg= $row["lrg"]; $ocodata =$row["ocodata"]; $assunto =$row["assunto"]; $historico= $row["historico"]; } $sql = "INSERT INTO tombolimpas (lrg, ocodata, assunto,historico ) VALUES ('$lrg', '$ocodata', '$assunto', '$historico' )"; $result = mysql_query($sql) or die(mysql_error()); Se alguem puder me ajudar agradeço. Arilson Piovezan Cara vi que você se enrrolou ai com a instruçoes que o amigo de cima passou....entao faz assim, usa seu codigo que você tinha feito, ele esta certo o problema por inserir apenas um registro....acontece que você tem q colocar assim $query="SELECT * FROM limpas WHERE lrg ='$tombo_rg' "; $resultado = mysql_query($query) or die(mysql_error()); $cont= mysql_num_rows($resultado) or die (mysql_error()); while($row = mysql_fetch_array($resultado)) { $lrg= $row["lrg"]; $ocodata =$row["ocodata"]; $assunto =$row["assunto"]; $historico= $row["historico"]; $sql = "INSERT INTO tombolimpas (lrg, ocodata, assunto,historico ) VALUES ('$lrg', '$ocodata', '$assunto', '$historico' )"; $result = mysql_query($sql) or die(mysql_error()); } Repara que eu fechei o WHILE apos o processo de inserção....assim enquanto tiver registros ele fará a inserção Veja se assim da certo Valeu Compartilhar este post Link para o post Compartilhar em outros sites
piovezan 0 Denunciar post Postado Outubro 5, 2011 Bom Dia A solução que se adaptou as minhas necessidades foi esta: ... $sql = "INSERT INTO tombolimpas (lrg, ocodata, assunto, historico) SELECT lrg, ocodata, assunto, historico FROM limpas WHERE lrg = '$tombo_rg'"; ... Muito Obrigado a TODOS que me auxiliaram. Que o Senhor abençõe a todos :) Arilson Piovezan Compartilhar este post Link para o post Compartilhar em outros sites