I may be wrong on this, but I doubt that the syntax you use
$result = mysql_query($query) or die(mysql_error) ;
will work.
Try
$result = mysql_query($query) or die(mysql_error()) ;
This should bring up the propper mysql error (if there is one).
Another thought that may increase efficiency:
say you name your checkboxes like this
<input type="checkbox" name="manufacturers[]" value="...">
you could easily generate a comma-separated list with all selected manufacturers using implode(), like this (mind the singlequotes)
$list="'".implode("','"$_POST['manufacturers'])."'";
and use it in just one sql query which would update all value that are not in the list at once:
$sql="UPDATE manuf SET show=0 WHERE manuf NOT IN ($list)";
mysql_query($sql) or die(mysql_error());