Falberto 0 Denunciar post Postado Junho 24, 2007 Seguinte,estou tento dificuldade em criar uma página que vai atualizar todos os campos de uma tabela.Exemplo:na tabela de medicamentos preciso listar 3 campos para atualização.ficando assim: SELECT COD_MEDICAMENTO_ID, COD_REGISTRO_MEDICAMENTO, NOM_COMERCIAL, NOM_PRINCIPIO_ATIVO FROM T_MEDICAMENTO' WHERE UPPER(NOM_PRINCIPIO_ATIVO) LIKE '.chr(39).'%'.$nom_comercial.'%'.chr(39); Monto um WHILE trazendo os medicamento while ($linha = mysql_fetch_object($query)) { print('<tr class="descricao" onmouseover="this.className='.chr(39).'muda'.chr(39).'" onmouseout="this.className='.chr(39).chr(39).'"> '."\n"); print('<td class="tabela_descricao"><input type="text" name="'.$linha->COD_MEDICAMENTO_ID.'" value="'.$linha->COD_REGISTRO_MEDICAMENTO.'"size="20" /></td> '."\n"); print('<td class="tabela_descricao"><input type="text" name="'.$linha->COD_MEDICAMENTO_ID.'" value="'.$linha->NOM_COMERCIAL.'"size="60" />'."\n"); print('<td class="tabela_descricao"><input type="text" name="'.$linha->COD_MEDICAMENTO_ID.'" value="'.$linha->NOM_PRINCIPIO_ATIVO.'"size="60" />'."\n"); print('<input type="hidden" name="'.$linha->COD_MEDICAMENTO_ID.'" value="'.$linha->COD_MEDICAMENTO_ID.'" />'."\n"); print('</tr> '."\n"); } print('</table> '."\n"); só que na hora de atualizar, não estou conseguindo associar os campos, "COD_REGISTRO_MEDICAMENTO", "NOM_COMERCIAL", "NOM_PRINCIPIO_ATIVO", ao ID do medicamento COD_MEDICAMENTO_ID .na hora de gravar ele está trazendo apenas o ultimo valor do campo.para melhor entendimento, segue o linkwww.ciezo.org.br/sms-cmj/atualizacaoAcredito que a chave seja na hora que coloca o atributo 'name' no input. Compartilhar este post Link para o post Compartilhar em outros sites
hinom 5 Denunciar post Postado Junho 25, 2007 falbertoa atribuição de valores funciona em cascata ( de cima pra baixo )veja a diferença entre esses dois scripts: <?phpif( isset( $_POST['acao'] ) ){ while( list( $k, $v ) = each( $_POST ) ){ echo "<br />"; echo $k; echo ": "; echo $v; }}?><form action=posts.php method=POST><input type=hidden name=acao value=1><br /><input type=text name=254 value=teste1><br /><input type=text name=253 value=teste2><input type=submit value=enviar></form> <?phpif( isset( $_POST['acao'] ) ){ while( list( $k, $v ) = each( $_POST ) ){ echo "<br />"; echo $k; echo ": "; echo $v; }}?><form action=posts.php method=POST><input type=hidden name=acao value=1><br /><input type=text name=254 value=teste1><br /><input type=text name=254 value=teste2><input type=submit value=enviar></form>no seu caso, são 3 campos que pertencem a um mesmo ID, sendo que são vários registros.para esse caso é simples, basta formatar a nomenclatura dos campos de entrada:<br /><input type=text name=nome[254] value="Fulano da Silva"><br /><input type=text name=idade[254] value=50><br /><input type=text name=ocupacao[254] value="pedreiro"><br /><br /><input type=text name=nome[255] value="Beltrano Pereira"><br /><input type=text name=idade[255] value=27><br /><input type=text name=ocupacao[255] value="carpinteiro"> Compartilhar este post Link para o post Compartilhar em outros sites
pcdesign 0 Denunciar post Postado Junho 25, 2007 Não entendi muito o que você quer. você quer selecionar um dos campos na busca para atualizar seu registros. é isso? Os nomes de campo tem que identificar cada campo da tabela que no caso você deixou todos com o mesmo nome. você poderia fazer assim: COD_REGISTRO_MEDICAMENTO.$linha->COD_MEDICAMENTO_IDNON_COMERCIAL.$linha->COD_MEDICAMENTO_IDNON_PRINCIPIO_ATIVO.$linha->COD_MEDICAMENTO_IDCOD_MEDICAMENTO_ID.$linha->COD_MEDICAMENTO_IDOutro detalhes é que você vai atualizar a partir de uma busca e nesta busca poderá ter mais de um registro.então você terá que identificar qual registro será enviado para atualização. Pois o fomulário ele enviará todos da lista, e atualizara todos conforme id. Compartilhar este post Link para o post Compartilhar em outros sites
pcdesign 0 Denunciar post Postado Junho 25, 2007 Desculpa hinom,deixei a janela aberta e demorei a dar uma resposta que nem vi que ja havia respondido. Compartilhar este post Link para o post Compartilhar em outros sites
Falberto 0 Denunciar post Postado Junho 25, 2007 falbertoa atribuição de valores funciona em cascata ( de cima pra baixo )veja a diferença entre esses dois scripts: <?phpif( isset( $_POST['acao'] ) ){ while( list( $k, $v ) = each( $_POST ) ){ echo "<br />"; echo $k; echo ": "; echo $v; }}?><form action=posts.php method=POST><input type=hidden name=acao value=1><br /><input type=text name=254 value=teste1><br /><input type=text name=253 value=teste2><input type=submit value=enviar></form> <?phpif( isset( $_POST['acao'] ) ){ while( list( $k, $v ) = each( $_POST ) ){ echo "<br />"; echo $k; echo ": "; echo $v; }}?><form action=posts.php method=POST><input type=hidden name=acao value=1><br /><input type=text name=254 value=teste1><br /><input type=text name=254 value=teste2><input type=submit value=enviar></form>no seu caso, são 3 campos que pertencem a um mesmo ID, sendo que são vários registros.para esse caso é simples, basta formatar a nomenclatura dos campos de entrada:<br /><input type=text name=nome[254] value="Fulano da Silva"><br /><input type=text name=idade[254] value=50><br /><input type=text name=ocupacao[254] value="pedreiro"><br /><br /><input type=text name=nome[255] value="Beltrano Pereira"><br /><input type=text name=idade[255] value=27><br /><input type=text name=ocupacao[255] value="carpinteiro"> Maravilha, entendi perfeitamente,agora estou com outro problema, como eu vou pegar os valores na proxima página? dentro de um for? Compartilhar este post Link para o post Compartilhar em outros sites
hinom 5 Denunciar post Postado Junho 25, 2007 pcdesign, tudo bem isso é normal acontecerfalberto,apenas reaproveite o exemplo que passei while( list( $k, $v ) = each( $_POST ) ){echo "<br />";echo $k;echo ": ";echo $v;}a estrutura de repetição fará um loop em cada índice do array $_POSTpara o seu caso, os índices do array $_POST são por sua vez, array tambémlogicamente você deverá fazer um loop neles também. Compartilhar este post Link para o post Compartilhar em outros sites
Falberto 0 Denunciar post Postado Junho 25, 2007 pcdesign, tudo bem isso é normal acontecerfalberto,apenas reaproveite o exemplo que passei while( list( $k, $v ) = each( $_POST ) ){echo "<br />";echo $k;echo ": ";echo $v;}a estrutura de repetição fará um loop em cada índice do array $_POSTpara o seu caso, os índices do array $_POST são por sua vez, array tambémlogicamente você deverá fazer um loop neles também.aqui que está meu problema, estou até agora batendo cabeça e não consigo montar um SQL de update em cima dessa condição, pois ele pegar um item por item para colocar na array, entao não consigo atualizar os 3 campos de uma vez Compartilhar este post Link para o post Compartilhar em outros sites
Falberto 0 Denunciar post Postado Junho 25, 2007 Finalmente consegui resolver!!o que eu precisava era montar uma array com os elemtos em ordem, então varri todos os POST de uma vez assim hó! for( ;list(, $cod_registro_medicamento ) = each( $_POST["cod_registro_medicamento"] ), list(, $nome_comercial ) = each( $_POST["nome_comercial"] ), list(, $nome_ativo ) = each( $_POST["nome_ativo"] ), list(, $cod_medicamento_id ) = each( $_POST["cod_medicamento_id"] );) {$sql = 'UPDATE T_MEDICAMENTO '."\n". ' SET COD_REGISTRO_MEDICAMENTO = '.chr(39).$cod_registro_medicamento.chr(39).', '."\n". ' NOM_COMERCIAL = '.chr(39).$nome_comercial.chr(39).', '."\n". ' NOM_PRINCIPIO_ATIVO = '.chr(39).$nome_ativo.chr(39).', '."\n". ' COD_USUARIO_ID = '.$cod_usuario_id."\n". ' WHERE COD_MEDICAMENTO_ID = '.$cod_medicamento_id;} Compartilhar este post Link para o post Compartilhar em outros sites
hinom 5 Denunciar post Postado Junho 26, 2007 hheheehaí, tá vendo ?só colocar a cabeça oca pra funcionar Compartilhar este post Link para o post Compartilhar em outros sites