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:
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 :crying:
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:
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 :crying: