ok por que es el mismo codigo de empresa en el where, por eso va cambiando el valor en todo los registros con el codigo de empresa, por eso en un ejemplo puse los hidden de los cod de grupo para que con eso identificaras cual valor va en determinado registro y where quedaria cod_grupo= al hidden que se recibe dinamicamente AND el codigo de empresa asi:
Código PHP:
$res=mysql_query("select * from grupo WHERE codigo_empresa like'$codigo'", $link);
$cont=1;//crea un contador
while($grup=mysql_fetch_array($res)) { ?>
<tr><td><input type="text" name="valor<?php echo $cont; ?>" size="33" maxlength="20" value="<? echo $grup['grupo']; ?>">
<input type="hidden" name="codigo<?php echo $cont; ?>" value="<? echo grup['codigo_grupo']; ?>" /></td></tr>
<?
$cont++;
}?>
<input type="hidden" name="cantidad" value="<? echo $cont; ?>" />//ahora mete el valor final de ese contador en un hidden para tener la cantidad final
y ya cuando recibes haz un for para el update
Código PHP:
$codigo=$_SESSION[codigo_empresa];
for($i=1;$i<$_POST["cantidad"]+1;$i++)
{
mysql_query("update grupo set grupo = '".$_POST["valor".$i]."' WHERE codigo_grupo='".$_POST["codigo".$i]."' AND codigo_empresa=$codigo", $link);
}