manolegal 12 Denunciar post Postado Setembro 16, 2015 Olá Amigos Preciso realizar um Update onde campos da tabela sejam iguais aos valores contidos em um array. Array ( [0] => 38 [1] => 35 ) Array ( [0] => 38 [1] => 35 ) Caso tenha selecionado, por exemplo 38 e 35 respectivamente, ao tentar update está gravando levando em consideração somente o menor valor (35). Meu código update: for($i=0; $i<count($meu_array); $i++) { $Sql = "UPDATE minha_tabela SET campo_atualizar WHERE minha_tabela.meu_id = '$meu_array[$i]'"; } Compartilhar este post Link para o post Compartilhar em outros sites
mau rs 37 Denunciar post Postado Setembro 16, 2015 Você quer fazer um update somente do 35 daí? Dá pra ordenar o array de forma crescente e pegar o primeiro valor. Compartilhar este post Link para o post Compartilhar em outros sites
manolegal 12 Denunciar post Postado Setembro 16, 2015 Na verdade haverá atualização de dados onde valor for 35 e também onde valor for 38. Compartilhar este post Link para o post Compartilhar em outros sites
Maykel-ctba 233 Denunciar post Postado Setembro 16, 2015 Imprima as consultas geradas. Se o mysql_query estiver fora do FOR, não vai funcionar mesmo. Além da SQL, o script que a executa deve estar dentro do for também. PS: Dizem as lendas que você pode executar as duas em uma consulta só também. Desta maneira, você executa uma consulta só para vários IDs. UPDATE tabela WHERE id IN (35, 38) * Não garanto que esta seja a sintaxe correta. Sei que existe, mas caso não funcione, você precisará pesquisar um pouco como é o funcionamento. Compartilhar este post Link para o post Compartilhar em outros sites
manolegal 12 Denunciar post Postado Setembro 17, 2015 Os scripts estão todos dentro do for. Em um update com 01 valor de comparação eu faria: UPDATE minha_tabela ... WHERE minha_tabela.meu_id = '$minha_variavel' Onde por exemplo, '$minha_variavel' recebe o valor de "35". O que preciso é atualizar minha tabela, sendo que a minha variável (array) recebe mais de 01 valor (exemplo 35, 38, 40, etc), ou seja atualizar todos os campos da tabela onde o id de cada linha da tabela é igual a qualquer um desses valores da array. Teoricamente falando seria: UPDATE minha_tabela ... WHERE minha_tabela.meu_id = '35' UPDATE minha_tabela ... WHERE minha_tabela.meu_id = '38' UPDATE minha_tabela ... WHERE minha_tabela.meu_id = '40' Tentei da seguinte forma, mas atualiza todos os campos levando em consideração SOMENTE um valor do array (menor valor). <td><select name="meu_array[]" id="meu_array[]" $Sql = "UPDATE minha_tabela SET campo_atualizar WHERE minha_tabela.meu_id = '$meu_array[$i]'"; Compartilhar este post Link para o post Compartilhar em outros sites
manolegal 12 Denunciar post Postado Outubro 3, 2015 O problema estava no Update. Fiz da seguinte forma e resolvi: for($i=0; $i<count($meu_array); $i++) { $Sql = "UPDATE minha_tabela SET campo_atualizar = $variavel_campo_atualizar WHERE id_controle_minha_tabela IN (SELECT id_controle_minha_tabela FROM minha_tabela WHERE minha_tabela.meu_id = '$meu_array[$i]')"; } Obrigado a todos pela ajuda. Problema Resolvido. Compartilhar este post Link para o post Compartilhar em outros sites