Es un problema de programación, no de SQL. Tienes que hacer una construcción dinámica de las sentencias, lo que significa que debes elegir de dónde viene el valor para incluir ese sólo ese campo como origen del dato.
En tocas palabras, no puedes construir en una sola línea de PHP ese UPDATE, sino que debes usar un
switch para evaluar cuál es el valor de combo elegido (supongo que eso sabes hacerlo) y agregar en consecuencia cuál es el campos de la tabla que lo pondrás para actualizar.
Normalmente esto deberías preguntarlo en el Foro de PHP, porque no es asunto de errores de sentencias o cosas que se puedan resolver por SQL, pero te daré un tip aproximado:
Código PHP:
Ver original$sql2 = "UPDATE articulos SET descripcion = '$final', ";
$sql2 .= "precio = '$prec[$i]', ";
switch ($select) {
case 0:
$sql2 .= "stk1 = stk1 + $can[$i] ";
break;
case 1:
$sql2 .= "stk2 = stk2 + $can[$i] ";
break;
case 2:
$sql2 .= "stk3 = stk3 + $can[$i] ";
break;
case 3:
$sql2 .= "stk4 = stk4 + $can[$i] ";
break;
}
$sql2 .= "WHERE arti_id = ".$art[$i];
¿Se entiende la idea?
Obviamente, para hacer esto necesitas un parámetro que te indique cuál fue la selección realizada, que en este caso estoy suponiendo que se puso en
$select