Ir para conteúdo

POWERED BY:

Arquivado

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

jmurilof

Erro no update em Em duas tabelas Relacionadas

Recommended Posts

Galera,

Possuo duas Tabelas, a imagem e a slide

 

Descrição de Cada Tabela:

 

-----> Imagem: id_imagem, caminho imagem, nome_imagem

UPDATE slide SET nome_slide='nome', url_slide='url', efeito_slide='random' WHERE id_slide='1'

 

-----> slide: id_imagem(foreign key), nome_slide, url_slide, efeito_slide

 

UPDATE imagem SET nome_imagem = 'nome' WHERE id_imagem='?';

 

O que tenho que fazer para mostrar que o id da tabela imagem é igual o id_imagem da tabela slide?

 

Obg pela atenção.

 

Obs: Sou Novato.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então Cara, eu tinha feito desse jeito:

 

UPDATE imagem SET nome_imagem='testado' WHERE id_imagem=(SELECT s.id_imagem FROM slide AS s, imagem AS i WHERE i.id_imagem=s.id_imagem AND s.id_slide='8');

 

só que aparece o seguinte erro sql: Error Code: 1093. You can't specify target table 'imagem' for update in FROM clause

No que estou errando?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Voce nao pode especificar uma tabela alvo numa clausula from.

 

A tabela do select não pode ser a do update.

 

Em Oracle resolvo isto fazendo um bloco PLSQL em MySql não sei, talvez a solução seja:

Fazer o select e jogar o resultado numa variavel

Fazer o UPDATE em cima desta variavel.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Deu certo, eu fiz assim!

 

 

$sql_imagem_slide = mysql_query("SELECT i.id_imagem 
                                        FROM slide AS s, imagem AS i 
                                        WHERE i.id_imagem=s.id_imagem 
                                        AND s.id_slide='$id'");

 

depois usei mysql_fetch_array:

 

 

while($res_imagem=  mysql_fetch_array($sql_imagem_slide)){
                 $id_imagem_slide = $res_imagem[0];

depois chamei o meu $id_imagem_slide na update:

 

 

$alterar = mysql_query("UPDATE imagem SET nome_imagem='$nome_final' WHERE id_imagem='$id_imagem_slide'");}

 

 

Muito obrigado!

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.