Salve ragazzi ho questo codice che esegue questo cilco foreach (come logica) 2 volte.

Il mio problema che eseguendo il ciclo 2 volte m'inserisce i dati nel database 2 volte, però se non eseguo il foreach non prelevo i dati che m'interessano, come posso fare?

Ecco il codice:

Codice PHP:
//prelevo il file
$xml simplexml_load_file("articoli.xml");

//eseguo il ciclo su tutti i prodotti per prelevare il codice dei prodotti
  
foreach($xml->Products->Product as $product)
    {
     
$codice $product->Code;

//eseguo il ciclo sul nodo più basso "Variant" di ogni prodotto
      
foreach($xml->xpath("Products/Product[Code = '".(string)$product->Code."']/Variant") as $variant)
    {
//prelevo i dati taglia e colori
     
$taglia $variant->Size;
     
$colore $variant->Color;

//prelevo l'id della taglia 
$sql "SELECT * FROM products_options_values WHERE products_options_values_name = '$taglia'";
$rows $db->query($sql);
  while (
$r $db->fetch_array($rows)){
      
$p_att$r[products_options_values_id];
}

//prelevo l'id del prodotto
$sql "SELECT * FROM products WHERE products_model = '$codice'";
$rows $db->query($sql);
  while (
$r $db->fetch_array($rows)){
      
$pid$r[products_id];
}

//inserisco i dati nel database
$query "INSERT INTO products_attributes (products_id, options_id,  options_values_id) VALUES ('$pid', '1', '$p_att')";
$insert mysql_query($query);
   if(!
$insert) die(mysql_error());



}
    

Come potete notare il codice viene eseguito perfettamente, però non mi da il risultato sperato visto che m'inserisce ogni prodotto 2 volte nel database. Come potrei ovviare questa situazione?

Spero di essere stato abbastanza chiaro.

Grazie