perchè salvi le id in un array?

se le metti in una semplice stringa dovresti aver finito.

qualcosa del tipo:

codice:
 $stringa_id = "";
 foreach($_POST as $key => $value){ 
   $controllo = split("_", $key); 
   if($controllo[0]=='check'){ 
      $stringa_id = $stringa_id."id = ".$controllo[1]." OR "; 
      $i++; 
   } 
 }
alla fine $stringa_id contiene la condizione da aggiungere al WHERE.

adattalo un pò al tuo caso e se hai problemi scrivi.

perchè usi $controllo[1]? non dovresti passare i al posto di 1?