Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

piovezan

[Resolvido] copiar todos dados de tabela

Recommended Posts

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

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

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

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

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

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

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

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

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

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

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.