Per quanto riguarda i suggerimenti gia' te li ho dati nell'ultimo post. Stampa gli array e vedi come sono composti. in base a quello deciderai la strategia per la query.

Il foreach di cui sopra non ha granche' senso ti ripeto: hai un mixer tra l'uso di for e di foreach. Se scorri l'array sfrutta le peculiarita' di foreach.
codice:
foreach($_POST['id'] as $value) {
    mysql_query("DELETE FROM $table_name WHERE id='$value'", $db);
}
Per quanto riguarda gli aggiornamenti "multipli" dovresti mettere tutti i dati da modificare in un array multidimensionale e poi scorrere l'array con tanti foreach quanti sono i valori annidati. Quindi l'array $_POST dovra' presentarsi in questo modo:
codice:
Array
(
    [0] => Array
        (
            [id] => 123456
            [data] => 2005-03-29
            [tipo] => lungo
            [marca] => pippo
        )

    [1] => Array
        (
            [id] => 123457
            [data] => 2005-03-25
            [tipo] => pippo
            [marca] => lungo
        )

)
Quindi il primo foreach scorre l'indice numerico (0-1-2-3-ecc), i foreach annidati scorreranno i vari valori del singolo indice numerico ed eseguiranno la query.
codice:
foreach($_POST as $key => $value ) {

  foreach($_POST[$key] as $key1 => $value1) {
    if($key1 == 'id') $id = "$value1";
         foreach($_POST[$key] as $key1 => $value1) {
            if($key1 == 'data')  $data = "$value1";
               foreach($_POST[$key] as $key1 => $value1) {
                  if($key1 == 'tipo') $tipo = "$value1";
                     foreach($_POST[$key] as $key1 => $value1) {
                       if($key1 == 'marca') $marca = "$value1";
                     }
               }
        }
  }
 mysql_query("update tabella set data = '$data', tipo = '$tipo',
              marca = '$marca' where id = '$id'");
}