Olá pessoal. Já pesquisei em muitos lugares e ainda não consegui resolver meu problema...que está me atormentando. Tenho um <form> dinâmico, gerado com WHILE, o qual lista vários registros de acordo com o SELECT. Coloquei um checkbox ao lado de cada registro, para que somente os selecionados sejam atualizados (com uma data calculada a ser inserida em um campo data específico), ao clicar em "<submit>". O que acontece é que, ao selecionar os registro e submete-los para o update, só é atualizado o primeiro ou o último registro retornado da consulta no BD. Coloco a seguir os scripts: Formulário dinamico (traz vários registros com checkbox ao lado): <?php
include ("mysql_conecta.php"); ("ver_sessao.php");
$sel_max_os=mysql_query("SELECT MAX(num_os) as maxnum_os FROM tb_num_os ");
$ressel = mysql_fetch_assoc($sel_max_os);
$max=$ressel['maxnum_os'];
$sit_os=mysql_query("SELECT sit_os FROM tb_num_os WHERE num_os='$max' ");
$ressit = mysql_fetch_assoc($sit_os);
$sit_atual=$ressit['sit_os'];
$tudo=mysql_query("SELECT * FROM tb_num_os WHERE num_os='$max' ");
$res= mysql_fetch_array($tudo);
$data_os = $res['data'];
$area_aberta = $res['area'];
$empresa_aberta = $res['empresa'];
$num_os_aberta = $res['num_os'];
$sit_os = $res['sit_os'];
$empresa = $_POST['empresa'];
?>
<p align="left"><b><h3><p align="center">Formulário</p></h3></b>
<?php
if($sit_atual==0){echo "<fieldset>"."<font color='#FF0000'>"."Não há O.S. aberta a ser concluída"."</font>"."</fieldset>";}
else{
?>
<form action="mysql_os_fecha.php" method="post" enctype="multipart/form-data">
<?php
$sql = mysql_query("SELECT * FROM tb_dados WHERE empresa='$empresa' ORDER BY data_exec ",$conn)or die(mysql_error());
if($sql >= 0){
while ($row = mysql_fetch_assoc($sql)){
$ordem = $row['ordem'];
$area = $row['area'];
$cc = $row['cc'];
$conjunto = $row['conjunto'];
$tag = $row['tag'];
$equipamento= $row['equipamento'];
$tag_equip= $row['tag_equip'];
$pt_item= $row['pt_item'];
$item= $row['item'];
$dispositivo= $row['dispositivo'];
$lubrificante= $row['lubrificante'];
$norma= $row['norma'];
$servico= $row['servico'];
$freq= $row['freq'];
$tempo_exec= $row['tempo_exec'];
$qtde= $row['qtde'];
$un= $row['un'];
$sit= $row['sit'];
$data_ini= $row['data_ini'];
$data_final= $row['data_final'];
$key= $row['key'];
$hoje = strtotime($data_os);
$data_hoje = date('Y-m-d', $hoje);
$data_limup = $hoje + (7 * 24 * 60 * 60);
$data_limiteup = date('Y-m-d', $data_limup);
if(empty($data_final) OR $data_final='0000-00-00'){
$datai = strtotime($data_ini);
$data1 = $datai + ($freq * 24 * 60 * 60);
$data_exec = date('Y-m-d', $data1); }
else{
$dataf = strtotime($data_final);
$data2 = $dataf + ($freq * 24 * 60 * 60);
$data_exec = date('Y-m-d', $data2); }
if($data_exec <= $data_limiteup){
?>
<fieldset>
<input type="hidden" name="data_os" value="<?php echo $data_os;?>">
<input type="hidden" name="area_aberta" value="<?php echo $area_aberta;?>">
<input type="hidden" name="empresa_aberta" value="<?php echo $empresa_aberta;?>">
<input type="hidden" name="num_os_aberta" value="<?php echo $num_os_aberta;?>">
<input type="hidden" name="key" value="<?php echo $key;?>">
<input type="hidden" name="empresa" value="<?php echo $empresa;?>">
<input type="hidden" name="cc" value="<?php echo $cc;?>">
<input type="hidden" name="conjunto" value="<?php echo $conjunto;?>">
<input type="hidden" name="tag" value="<?php echo $tag;?>">
<input type="hidden" name="equipamento" value="<?php echo $equipamento;?>">
<input type="hidden" name="tag_equip" value="<?php echo $tag_equip;?>">
<input type="hidden" name="item" value="<?php echo $item;?>">
<input type="hidden" name="dispositivo" value="<?php echo $dispositivo;?>">
<input type="hidden" name="servico" value="<?php echo $servico;?>">
<input type="hidden" name="lubrificante" value="<?php echo $lubrificante;?>">
<input type="hidden" name="qtde" value="<?php echo $qtde;?>">
<input type="hidden" name="tempo_exec" value="<?php echo $tempo_exec;?>">
<input type="hidden" name="freq" value="<?php echo $freq;?>">
<input type="hidden" name="data_ini" value="<?php echo $data_ini;?>">
<input type="hidden" name="data_final" value="<?php echo $data_final;?>">
<input type="hidden" name="data_exec" value="<?php echo $data_exec;?>">
<b><font color="#000080">Data de execução</font></b>: <?php $d=date('d-m-Y',strtotime($data_exec));echo $d;?>
<b>Concluído?</b><input type="checkbox" name="exec[]" value="1"><br>
<h5>
<b><font color="#808080">Conjunto</b>: </font> <?php echo $conjunto;?>
<b><font color="#808080">Tag</b>: </font> <?php echo $tag;?>
<b><font color="#808080">Equipamento</b>:</font> <?php echo $equipamento;?>
<b><font color="#808080">Tag Equip</b>: </font> <?php echo $tag_equip;?>
<b><font color="#808080">Serviço</b>: </font> <?php echo $servico;?><br>
<b><font color="#808080">Item</b>: </font> <?php echo $item;?>
<b><font color="#808080">Dispositivo</b>:</font> <?php echo $dispositivo;?>
<b><font color="#800000">Lubrificante </font></b>: <?php echo $lubrificante;?>
<b><font color="#008000">Qtde Prevista </font></b>: <?php echo $qtde;?>
<b><font color="#000080">Tempo Previsto </font></b>: <?php $d=date('H:i',strtotime($tempo_exec));echo $d;?><br>
<b><font color="#800000">MNE </font></b>:<input type="textarea" size="38" name="comentario">
<b><font color="#800000">Lubr. Utiliz. </font></b>:<input type="text" size="5" name="lubr_uti">
<b><font color="#008000">Qtde Real </font></b>:<input type="text" size="1" name="qtde_real">
<b><font color="#000080">Tempo Real </font></b>:<input type="time" size="2" name="tempo_exec_real">
</h5>
</fieldset>
<?php
}}}
?>
<p align="right"><input type="submit" name="fechar_os" value=" Concluir O.S " /></p>
</form>
<?php
}
?>
Script para atualizar o BD (que atualiza só um registro, e não todos os selecionado no checkbox):
<?php
include ("mysql_conecta.php"); ("ver_sessao.php");
$data_os = $_POST['data_os'];
$area_aberta = $_POST['area_aberta'];
$empresa_aberta = $_POST['empresa_aberta'];
$num_os_aberta = $_POST['num_os_aberta'];
$empresa= $_POST['empresa'];
$comentario= $_POST['comentario'];
$key = $_POST['key']; //id
$cc= $_POST['cc'];
$conjunto= $_POST['conjunto'];
$tag= $_POST['tag'];
$equipamento= $_POST['equipamento'];
$servico= $_POST['servico'];
$dispositivo = $_POST['dispositivo'];
$tag_equip= $_POST['tag_equip'];
$item= $_POST['item'];
$lubrificante= $_POST['lubrificante'];
$freq= $_POST['freq'];
$tempo_exec= $_POST['tempo_exec'];;
$qtde= $_POST['qtde'];
$data_ini= $_POST['data_ini'];
$data_final= $_POST['data_final'];
$data_exec= $_POST['data_exec'];
//PROBLEMA!!
foreach($_POST['exec'] as $checked){
if($checked == 1){
$sql_datas=( //SE EU ESCREVER "mysql_query" dá erro e não executa...tem que ser sem mesmo...
"UPDATE tb_dados
SET data_final='$data_exec'
WHERE conjunto IN ('$_POST[conjunto]') AND tag IN ('$_POST[tag]') AND equipamento IN ('$_POST[equipamento]')
AND servico IN ('$_POST[servico]') AND dispositivo IN ('$_POST[dispositivo]') ");
if (!mysql_query($sql_datas))
{die('Error: ' . mysql_error());}
else
{echo "Serviços selecionados concluídos com sucesso. | Serviços não selecionados serão reabertos automaticamente."."<br />";}
}
}
?> Serei muuuuuito grato por sua ajuda!!!