Tralasciando la form, la parte rilevante di quello che chiedi è la gestione di MySQL.
La prima imprecisione che vedo è l'uso di addslashes(): i dati da inviare a MySQL devono passare per mysql_escape_string() (o meglio mysql_real_escape_string() se hai la risorsa connessione), non da addslashes(). Inoltre, i dati che ricevi dai post possono essere già slashati se la direttiva 'magic_quotes_gpc' è on, per cui scriverei una funzione preventiva:
Codice PHP:
function prepareSqlText(&$gpc) {
get_magic_quotes_gpc() && $gpc = stripslashes($gpc);
$gpc = mysql_escape_string($gpc);
}
Il secondo errore è che tratti i dati come entità unica mentre in realtà sono vettori (se la form è corretta), quindi:
Codice PHP:
function prepareSqlVar(&$var) {
if (is_array($var)) {
array_walk($var, 'prepareSqlVar');
} else {
prepareSqlText($var);
}
}
Terzo, usi il comando SQL errato per "inserire" i dati: UPDATE serve per modificarli (o sovrascriverli, come dici tu):
Codice PHP:
// Prepara TUTTI i post per MySQL
prepareSqlVar($_POST);
// Questi i campi da inserire nella tabella
$fields = array('id', 'marca', 'mod', 'col', 'orig', 'disp', 'prezzo', 'prezzoaz', 'prezzoriv');
// Questi i valori
for ($n = 0; $n < count($_POST['id']); ++ $n) {
foreach ($fields as $field) {
$row[$field] = $_POST[$field][$n];
}
$values[$n] = '(' . implode(',', $row) . ')';
}
// Questa la query
$query = 'INSERT INTO tbl_prodotti (' . implode(',', $fields) . ') VALUES ' . implode(',', $values);
// Questo per vedere come è fatta la query insert con più righe
echo "<pre>$query</pre>";
// Esecuzione della query
mysql_query($query) || die(mysql_error());