<?php
/**
 * Значения в массиве должны совпадать с названиями полей в таблице БД
 */
$fields = array ('table_field_a', 'table_field_b', 'table_field_c', /* ... */ 'table_field_n');
$sql = '';
if ($_SERVER['REQUEST_METHOD'] == 'POST') { // Выполнять только для запросов типа POST
    $sql_set = array ( ); // Сюда будем кидать значения полей БД
    $settings = array ( ); // Тут будут значения, взятые из формы
    
    if (!empty ($_POST['settings'])) { // Если отмечен хотя-бы 1 чекбокс, формировать массив значений
        $settings = $_POST['settings'];
    }
    
    // обрабатываем каждое поле
    foreach ($fields as $field) {
        if (empty ($settings[$field])) { // Если чекбокс с указанным идентификатором не выбран - пишем 0
            $sql_set[] = 't.' . $field . ' = 0';
        } else { // если выбран - 1
            $sql_set[] = 't.' . $field . ' = 1';
        }
    }
    
    // Формируем запрос
    $sql = sprintf ('UPDATE `my_table` AS t SET %s WHERE ...', implode (', ', $sql_set));
}
?>
<html>
    <head>
        <meta charset="utf-8" />
        <title>Test</title>
    </head>
    <body>
        <form action="/index.php" method="post">
            <p><input name="settings[table_field_a]" type="checkbox" value="1" /> Значение A</p>
            <p><input name="settings[table_field_b]" type="checkbox" value="1" /> Значение B</p>
            <p><input name="settings[table_field_c]" type="checkbox" value="1" /> Значение C</p>
            ...
            <p><input name="settings[table_field_n]" type="checkbox" value="1" /> Значение N</p>
            
            <p><input name="submit" type="submit" value="Применить" /></p>
        </form>
        
        <?=$sql ? '<p>SQL: '. $sql . '</p>' : '';?>
    </body>
</html>