Te está faltando el segmento de asignar la cadena " and arti_id='".$art[$i]."'" a la variable. Además no tiene ninguna utilidad ni sentido repetir un pedazo de la cadena en los
case. Si siempre está, ponla por fuera.
- Trata de revisar bien el código, especialmente el SQL creado con el PHP.
-
Usa un editor con analizador de sintaxis. Te hubieses ahorrado el error.
- El hecho de que puedas poner la sentencia escrita en varias líneas sin cortar la sentencia, no significa que
debas hacerlo. Trata de escribir código de modo en que puedas revisarlo bien, sin tener que recorrerlo de punta a punta.
- Cuando recibas un error de sintaxis de SQL, revisa primero qué es lo que realmente queda armado en la consulta antes que nada.
Código php:
Ver original$sql2="update articulos set pr1 = '".$final."', ";
$sql2 .= "pr2 = '".$final."',";
$sql2 .= "pr3 = '".$final."',";
$sql2 .= "pr4 = '".$final."',";
$sql2 .= "pr5 = '".$final."',";
$sql2 .= "pr6 = '".$final."',";
$sql2 .= "pr7 = '".$final."',";
$sql2 .= "pr8 = '".$final."',";
$sql2 .= "pr9 = '".$final."',";
$sql2 .= "pr10 = '".$final."',";
$sql2 .= "gar_art = '".$gar[$i]."',";
$sql2 .= "proce = '".$pro[$i]."',";
switch ($stk[$i]) {
case 'suc01':
$sql2 .= "stk1 = stk1 + $can[$i]";
break;
case 'suc02':
$sql2 .= "stk2 = stk2 + $can[$i]";
break;
case 'suc03':
$sql2 .= "stk3 = stk3 + $can[$i]";
break;
case 'suc04':
$sql2 .= "stk4 = stk4 + $can[$i]";
break;
case 'suc05':
$sql2 .= "stk5 = stk5 + $can[$i]";
break;
case 'suc06':
$sql2 .= "stk6 = stk6 + $can[$i]";
break;
case 'suc07':
$sql2 .= "stk7 = stk7 + $can[$i]";
break;
case 'suc08':
$sql2 .= "stk8 = stk8 + $can[$i]";
break;
case 'suc09':
$sql2 .= "stk9 = stk9 + $can[$i]";
break;
case 'suc10':
$sql2 .= "stk10 = stk10 + $can[$i]";
break; }
$sql2 .= " where arti_id='".$art[$i]."'";