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

Update...levando Em Consideracao Conteudo...


Halfar

Pergunta

Peguei no manual do Mysql estes dois tipos de updates. Nenhum funciona. Ocorre que o update ocorrerá na tabela A dependendo do conteudo de um campo da tabela B

Veja os codigos abaixo:

Codigo1:

$sql = "UPDATE UrlsAfiliados SET Ativacao = 'sim'"; 
$sql = $sql . "(SELECT SaldoCreditos, CodigoUsuario FROM SitesAfiliados WHERE SitesAfiliados.CodigoUsuario = UrlsAfiliados.CodigoUsuario and TotalCreditos > 0)";
$sql = $sql . "  and Repeticao = 0  and Ativacao = '".$xAtivacao."' and CodSite != $site limit 1";

Codigo 2:

$sql = "update UrlsAfiliados t1 ";

$sql = $sql . " join SitesAfiliados t2 on t1.CodigoUsuario = t2.CodigoUsuario";

$sql = $sql . "set t1.Ativacao = 'sim'";

$sql = $sql . " where t1.Repeticao = 0 and Ativacao = '".$xAtivacao." ' and CodSite != $site limit 1";

Nenhum deles funciona, dá erro de sintaxe...

Será que alguém entende bem isto aí...???

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0
Peguei no manual do Mysql estes dois tipos de updates. Nenhum funciona. Ocorre que o update ocorrerá na tabela A dependendo do conteudo de um campo da tabela B

Veja os codigos abaixo:

Codigo1:

$sql = "UPDATE UrlsAfiliados SET Ativacao = 'sim'"; 
$sql = $sql . "(SELECT SaldoCreditos, CodigoUsuario FROM SitesAfiliados WHERE SitesAfiliados.CodigoUsuario = UrlsAfiliados.CodigoUsuario and TotalCreditos > 0)";
$sql = $sql . "  and Repeticao = 0  and Ativacao = '".$xAtivacao."' and CodSite != $site limit 1";

Codigo 2:

$sql = "update UrlsAfiliados t1 ";

$sql = $sql . " join SitesAfiliados t2 on t1.CodigoUsuario = t2.CodigoUsuario";

$sql = $sql . "set t1.Ativacao = 'sim'";

$sql = $sql . " where t1.Repeticao = 0 and Ativacao = '".$xAtivacao." ' and CodSite != $site limit 1";

Nenhum deles funciona, dá erro de sintaxe...

Será que alguém entende bem isto aí...???

1ª coisa - para que você quer um codigo destes ?

2ª coisa - qual erro que da

Link para o comentário
Compartilhar em outros sites

  • 0

Ola,

Respondendo suas perguntas, quero um codigo destes para tornar mais rápida a execucao do programa, porque aqui estou dando um update trabalhando com duas tabelas.

Normalmente consultoria a tabelaA, dependendo do resultado daria um update na tabelaB.

Neste tipo de codigo, fica simplificado, não preciso de duas instrucoes sql.

Quanto ao erro que ocorre, no primeiro codigo, na realidade fiz uma adaptacao de um codigo que peguei no manual do Mysql:

UPDATE table1 SET table1field = (SELECT MAX(table2.table2field) FROM table2 WHERE table1.table1field = table2.table2field)
Note no codigo acima que o campo table1field receberá um update do select que está entre parenteses. Baseado neste codigo, tentei adaptar a minha necessidade:

No meu caso eu já seto o campo Ativacao com "sim", dependendo do retorno do select... se notar bem há uma diferenca entre os dois codigos.



O segundo codigo, que também peguei do manual do mysql:

update Table1 t1

join Table2 t2 on t1.ID=t2.t1ID

join Table3 t3 on t2.ID=t3.t2ID

set t1.Value=12345

where t3.ID=54321

Em ambos os codigos o erro é de sintaxe, veja o erro abaixo:

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 't1.Ativacao = 'sim' where t1.Repeticao = 0 and Ativacao = ' ' and CodSite != li' at line 1

Resumindo a questão, o que preciso é dar um update em uma tabelaA, dependendo do resultado de uma pesquisa na tabelaB

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.


  • Estatísticas dos Fóruns

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