Basta un semplice ciclo foreach sull'array in cui sono memorizzati i dati (ad es. $_POST). Supponi ad es. che i tuoi checkbox abbiano tutti un prefisso nel nome, magari "sel_". Ora, quando invii il form, puoi recuperare quei valori in un array in questo modo:
codice:
$data = array(); // Definisco un array $data vuoto
foreach ($_POST as $key=>$value) { // Ciclo tutti i dati presenti in POST mantenendo l'associazione nome=valore
if (substr($key,0,4)=='sel_') { // Se il nome di un dato inizia con "sel_" significa che contiene il valore di un checkbox (utile per escludere altri dati, ad es. il nome del pulsante submit che viene inviato anch'esso e che non deve essere aggiunto all'array $data)...
$name = substr($key,4); // Estraggo la parte del nome successiva a "sel_"
$data[$name] = trim(stripslashes($value)); // Memorizzo in $data un elemento che ha per nome il nome del checkbox (privo del prefisso "sel_") e per valore il suo valore "depurato" da slash e da spazi a destra e a sinistra
}
}
/* A questo punto $data contiene una copia dei dati di $_POST esclusi quelli superflui.
Ogni dato è "depurato" da eventuali slash aggiunti automaticamente da PHP (se
magic_quotes_gpc è attiva nel php.ini) e da spazi prima e dopo. Quindi imposto la
query trasformando $data in due array: uno contenente le sole chiavi (con array_keys())
che saranno i nomi dei campi della tabella e l'altro contenente solo i rispettivi valori (con
array_values()) che saranno appunto i valori di quei campi. Eseguo implode() sui due array
in modo da trasformarli in stringhe i cui elementi sono separati da una virgola (per i nomi
dei campi) e dalla sequenza ',' per i valori */
$sql = "INSERT INTO nometabella (".implode(',',array_keys($data)).") VALUES('".implode('\\',\\'',array_values($data))."')";
die($sql); // Blocco lo script e stampo a video la query per verificare che si corretta
Ovviamente, se i nomi dei checkbox non hanno nulla a che fare coi nomi dei campi da popolare, ti basta scrivere i nomi dei campi a mano nella query, anziché usare array_keys(). Tieni presente comunque il loro ordine (che è lo stesso ordine con cui i checkbox sono presenti nel form).
Nota che se i tuoi checkbox hanno valori particolari, per es. stringhe complesse contenenti virgole, apici, ecc., sarebbe opportuno passare questi valori a mysql_real_escape_string() che si occupa di escapizzare i caratteri potenzialmente "pericolosi" per MySQL.
Spero di esserti stato d'aiuto.