Ir para conteúdo
Fórum Script Brasil
  • 0

Copiar um campo de uma tabela para outra tabela


AWD

Pergunta

Olá!

Eu estou querendo "clonar" apenas os dados do campo chamado ultimo da tabela kairos par a tabela fotos.

Mas não consigo.

Tentei adaptar um código sql mas não deu muito certo hehe

$sqlcopia = "UPDATE fotos, kairos SET fotos.ultimo = kairos.ultimo WHERE fotos.ultimo != $nada";

$comandocopia = mysql_query($sqlcopia, $conexao) or die("Erro no comando copia!");

Se alguém souber como posso copiar os dados que tem no campo ultimo da tabela kairos para o campo ultimo da tabela fotos me ajudaria muito.

Muito Obrigado!!

Link para o comentário
Compartilhar em outros sites

8 respostass a esta questão

Posts Recomendados

  • 0

Então.

Tem que usar subquery pra fazer isso:

$sqlcopia = "UPDATE fotos, kairos SET fotos.ultimo =(select kairos.ultimo) WHERE fotos.ultimo != $nada";

tenta isso.

mas pensando bem, não sei se isso vai te dar o resultado desejado.

Não seria melhor você selecionar os dados..e na hora de corre-los no WHILE, você atualiza?

Link para o comentário
Compartilhar em outros sites

  • 0

Não funcionou também,

já tentei por while, tipo:

while ($linha = mysql_fetch_array($limite))

{

$num=$num+1;

$id = $linha["ID"];

$ultimo = $linha["ultimo"];

if ($num == 1)

{

echo "";

}

else

{

$sqlcopia = "update fotos set ultimo='$num'";

$comandocopia = mysql_query($sqlcopia, $conexao) or die("Erro no comando copia!");

}

}

Mas ai eu atualizo o campo ultimo da tabela fotos com os dados que tiverem no ultimo campo do ultimo campo ultimo da tabela kairos.

To nisso direto minha cabeça n consgue mais pensa numa lógica hehe

Link para o comentário
Compartilhar em outros sites

  • 0

É q preciso do campo ultimo da tabela kairos fique igual a da tabela fotos;

SHOW CREATE TABLE kairos:

CREATE TABLE `kairos` (\n `ultimo` int(11) NOT NULL auto_increment,\n PRIMARY KEY (`ultimo`)\n) ENGINE=MyISAM AUTO_INCREMENT=4 DEFAULT CHARSET=latin1

SHOW CREATE TABLE fotos:

CREATE TABLE `fotos` (\n `ID` int(11) NOT NULL auto_increment,\n `titulo` varchar(200) NOT NULL default '',\n `corpo` longtext NOT NULL,\n `categoria` varchar(200) NOT NULL,\n `imagen` varchar(100) NOT NULL,\n `ultimo` int(11) NOT NULL,\n PRIMARY KEY (`ID`)\n) ENGINE=MyISAM AUTO_INCREMENT=19 DEFAULT CHARSET=latin1

Link para o comentário
Compartilhar em outros sites

  • 0

Brother,

Veja a logica da coisa

<?php

function max_kairos()
{
    $sql        = "SELECT MAX(ultimo) AS maximo FROM kairos;";
    $r          = mysql_query($sql);
    $reg        = mysql_fetch_assoc($r);
    $maximo     = $reg['maximo'];
    if(!$maximo)
        $maximo = 1;
    return $maximo;
}

function atualizar_kairos()
{
    $maximo     = max_kairos();
    $maximo++;
    $sql        = "UPDATE kairos SET ultimo = $ultimo;";
    mysql_query($sql);
}

$ultimo         = max_kairos();
$sqlcopia       = "UPDATE fotos SET fotos.ultimo = $ultimo WHERE fotos.ultimo != $nada";
$comandocopia   = mysql_query($sqlcopia, $conexao) or die("Erro no comando copia!");


atualizar_kairos();

?>

Abraços

Editado por ursolouco
Link para o comentário
Compartilhar em outros sites

  • 0

Olá!

Muito Obrigado pelo código, mas ele me retorna $maximo=1, indicando que a variável máximo esta vazia, sinceramente não entendo porque, se puder me ajudar novamente ficaria muito grato :)

Ah e mudei a linha

$sqlcopia = "UPDATE fotos SET fotos.ultimo = $ultimo WHERE fotos.ultimo != $nada";

para:

$sqlcopia = "UPDATE fotos SET fotos.ultimo = $ultimo WHERE fotos.ultimo != '$nada'";

porque sem as aspas simples dava erro de comando.

Vlw!

Link para o comentário
Compartilhar em outros sites

  • 0

Aee valeu pessoal! Consegui fazendo uma gambiarra, mas se alguém quiser pegar o código ta aí:

$primeiro = "DELETE FROM kairos";

mysql_query($primeiro) or die(mysql_error());

$segundo = "ALTER TABLE banco.kairos AUTO_INCREMENT = 0";

mysql_query($segundo) or die(mysql_error());

$terceiro = "update fotos set ultimo='NULL' where ID != '$nada'";

mysql_query($terceiro) or die(mysql_error());

$busca = "insert into kairos (select * from fotos)";

$comando2 = mysql_query($busca, $conexao) or die("Erro no comando2");

$first = "DELETE FROM fotos";

mysql_query($first) or die(mysql_error());

$second = "ALTER TABLE banco.fotos AUTO_INCREMENT = 0";

mysql_query($second) or die(mysql_error());

$search = "insert into fotos (select * from kairos)";

$comando3 = mysql_query($search, $conexao) or die("Erro no comando3");

Editado por AWD
Link para o comentário
Compartilhar em outros sites

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,5k
×
×
  • Criar Novo...