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.
La cosa mi sembra poco ortodossa e vi chiedoCodice 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 == 0 ) {
$associazione = "
INSERT
INTO tabella_elementi_associati
(
id_elemento_principale,
id_elemento_associabile
)
VALUES(
'$id_elemento_principale',
'$id_elemento_associabile'
)
";
}
}
se la faccenda può essere risolvibile tramite sql
senza dover fare cicli.
grazie