per creare delle associazioni molti-a-molti utilizzo le seguenti
tabelle:

tabella_elementi_principali
- id_elemento_principale
...

tabella_elementi_associabili
- id_elemento_associabile
...

tabella_elementi_associati
- id_elemento_associato
- id_elemento_principale
- id_elemento_associabile

allo script che inserisce le associazioni invio i
seguenti dati:

$id_elemento_principale
$array_id_elementi_associabili

il problema è che nell'array contenente gli id degli
elementi associabili ci possono essere degli elementi
già associati e devo evitare il loro re-inserimento.

per fare questo, mi sono inventato un ciclo sull'array
e controllo una x una se esistono già delle
corrispondenze con gli id dell'elemento principale e
quello associabile.
Codice PHP:
foreach($array_id_elementi_associabili 
as $id_elemento_associabile) {

   
# controllo elementi già associati
   
$conteggio_elementi_associati mysql_query("
   SELECT COUNT(*) AS totale
   FROM  tabella_elementi_associati
   WHERE id_elemento_principale = 
$elemento_principale
   AND   id_elemento_associabile = 
$id");
   
$conteggio mysql_fetch_array($conteggio_elementi_associati);
   
$numero_elementi_associati $conteggio['totale'] ;

   if ( 
$numero_elementi_associati == ) {

         
$associazione "
         INSERT
         INTO tabella_elementi_associati
         (
         id_elemento_principale,
         id_elemento_associabile
         )
         VALUES(
         '
$id_elemento_principale',
         '
$id_elemento_associabile'
         )
         "
;
      }

La cosa mi sembra poco ortodossa e vi chiedo
se la faccenda può essere risolvibile tramite sql
senza dover fare cicli.

grazie