Ciao a tutti,

ho 3 tabelle per fare una relazione molti a molti in questo modo:

articoli:
- id_art
- nome_art

categorie:
- id_cat
- nome_cat

rel_art_cat (id_art + id_cat sono chiave unica):
id_rel
id_art
id_cat



nella pagina del sito dove inserisco l'articolo ho una serie di checkbox per ogni categoria possibile e l'utente deve scegliere a quale associarlo.

in fase di modifica dell'articolo faccio 3 query:
1 - aggiorno l'articolo
2 - per ogni categoria non selezionata faccio una query per eliminare le relazioni
3 - per ogni categoria selezionata faccio una query per aggiornare la tabella relazioni.


sql 1:
Codice PHP:
update articoli set nome_art 'articolo' where id_art '$id_art'
sql 2:
Codice PHP:
for($i=0;$i<count($localita_da_eliminare);$i++):
  
delete from rel_art_cat where id_art '$id_art' and id_cat $localita_da_eliminare[$i];
endfor; 
sql 3:

Codice PHP:
for($i=0;$i<count($localita_da_tenere);$i++):
  
delete from rel_art_cat where id_art 'id_art' and id_cat $localita_da_eliminare[$i];
INSERT INTO rel_art_catid_artid_loc )  VALUES ('$id_art''$localita_da_tenere[$i]'ON DUPLICATE KEY UPDATE id_art '$id_art'id_loc '$localita_da_tenere[$i]';
endfor; 

per funzionare funziona però mi sembra eccessivo fare tutte quelle query ogni volta.
ho cercato un po sia nel forum che su google ma non sono riuscito a fare meglio.
mi sembra molto strano che non ci sia un modo più veloce con un nomero inferiore di query, anche perchè in questo modo devo controllare gli errori di n query prima di essere sicuro che l'aggiornamento sia avvenuto correttamente.

qualcuno sa aiutarmi per favore?
anche se sapeste indicarmi qualche store provecure in mysql sarebbe grandioso.

grazie.

m.