Traté de simular tu código poniendo 340 checkbox y lo único que tuve que cambiar fue el órden de los parámetros en la función mysql_query, pero de resto todo funciona bien. Aquí te dejo el código que usé y funciona bien:
Código PHP:
Ver original<?php
$mysqli = new mysqli("localhost", "root", "", "prueba");
?>
<?php
if (isset($_POST['enviar'])) {
foreach($_POST['chkocultar'] as $codigo)
{
echo $codigo."<br>";
$result = mysqli_query($mysqli, "UPDATE prueba SET kpasivo=1 WHERE codigo='{$codigo}'"); }
}
?>
<html>
<head></head>
<body>
<form action="" method="post">
<?php
for ($i=1;$i<=340;$i++)
{
echo "<input type='checkbox' name='chkocultar[]' value='{$i}'>{$i}<br>";
}
?>
<input type="submit" name = "enviar" value="Enviar">
</form>
</body>
</html>
Como ves, no hay problema con el número de checkbox.
Corrijo el código. Ya la costumbre de usar mysqli. Así es como debe quedar. Y no hay que cambiar el órden en mysql_query:
Código PHP:
Ver original<?php
?>
<?php
if (isset($_POST['enviar'])) {
foreach($_POST['chkocultar'] as $codigo)
{
echo $codigo."<br>";
$result = mysql_query("UPDATE prueba SET kpasivo=1 WHERE codigo='{$codigo}'",$mysql); }
}
?>
<html>
<head></head>
<body>
<form action="" method="post">
<?php
for ($i=1;$i<=340;$i++)
{
echo "<input type='checkbox' name='chkocultar[]' value='{$i}'>{$i}<br>";
}
?>
<input type="submit" name = "enviar" value="Enviar">
</form>
</body>
</html>