Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    Eseguire foreach una volta

    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

  2. #2
    Non capisco una cosa: come mai estrai i dati da un xml e poi fai un ciclo per estrarre dei dati che usi una volta sola?
    Limite mio. Potresti spiegarmi il procedimento logico?
    Ce l'ho fatta! - ItalianPixel -

  3. #3
    Allora premettendo che questa è la prima volta che estraggo dei dati da xml, non ho mai lavorato prima con un file xml.

    Ho questo file:

    codice:
    - <Products>
    - <Product>
      <Code>0021</Code> 
      <Description>prova</Description> 
      <Um>pz</Um> 
      <AvailableQty>5</AvailableQty> 
    - <Variant>
      <Size>XXS</Size> 
      <Color>BIANCO</Color> 
      </Variant>
    - <Variant>
      <Size>XS</Size> 
      <Color>BIANCO</Color> 
      </Variant>
    - <Variant>
      <Size>S</Size> 
      <Color>BIANCO</Color> 
      </Variant>
      </Product>
      </Products>
    - <Product>
      <Code>0014</Code> 
      <Description>REGGISENO BALCONCINO CON FERRETTO</Description> 
      <Um>pz</Um> 
      <AvailableQty>5</AvailableQty> 
    - <Variant>
      <Size>1</Size> 
      <Color>BIANCO</Color> 
      </Variant>
    - <Variant>
      <Size>2</Size> 
      <Color>BIANCO</Color> 
      </Variant>
    - <Variant>
      <Size>3</Size> 
      <Color>BIANCO</Color> 
      </Variant>
    - <Variant>
      <Size>1</Size> 
      <Color>NERO</Color> 
      </Variant>
    - <Variant>
      <Size>2</Size> 
      <Color>NERO</Color> 
      </Variant>
    - <Variant>
      <Size>3</Size> 
      <Color>NERO</Color>
      </Variant>
      </Product>
      </Products>
    Ora devo prelevare i dati di ogni prodotto ed eventualmente se presenti le varianti.

    ho usato questo codice, che ho inserito nel post precedente, ma mi scrive i dati 2 volte nel database.
    Se conosci il modo per leggere file xml, potresti spiegarmelo perfavore, perchè sto quasi per gettare la spugna.

    Grazie

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.