Visualizzazione dei risultati da 1 a 4 su 4

Discussione: Xml E Update

  1. #1

    Xml E Update

    Ciao a tutti
    Sto facendo una lettura di un file XML e man mano che scorro FACCIO 1 UPDATE
    L'update di per sè è "leggero"
    update tabella name set campo = "valorenumerico" WHERE altro campo = "valorenumerico"

    per cui... non faccio una query di update troppo pesante, attualmente però mi trovo a veder la rotellina girare girare girare girare........ per troppo tempo....

    il mio file XML è composto da 9917 righe che creano di conseguenza 9917 non mi pare un numero eccessivo

    Il web server non ha la versione 5 di php e non devo sperare in 1 upgrade, per cui....questo è il codice

    codice:
    			$file = '../UPLOADTEST/ESIST_0.XML';
    			$xml_parser = xml_parser_create();
    			$fp = fopen($file, "r");
    			$data = fread($fp, filesize($file));
    			fclose($fp);
    			xml_parse_into_struct($xml_parser, $data, $vals, $index);
    			xml_parser_free($xml_parser);
    		
    		
    		foreach ($vals as $xml_elem){
    		if ($xml_elem['tag'] == "Z:ROW" && $xml_elem['type'] == "complete" && $xml_elem['level'] == 3){				
    		//QUERY DI UPDATE
    	
    		//$Sql = mysql_query("UPDATE TABELLA SET miocampo = ".$xml_elem['attributes']['ESIST']." WHERE miocodice = ".$xml_elem['attributes']['CODICE']."");
    		//QUERY DI UPDATE
    		}}

    a vostro parere come è possibile ottimizzare la cosa?
    Tanto...lo fanno tutti... posso farlo anche io vero?

  2. #2
    Utente di HTML.it
    Registrato dal
    Jun 2012
    Messaggi
    37
    Se invece di eseguire 1 query alla volta crei un'unica query impiega solo pochi secondi

    Codice PHP:

    $Sql 
    "";

    foreach (
    $vals as $xml_elem)
    {
          if (
    $xml_elem['tag'] == "Z:ROW" && $xml_elem['type'] == "complete" && $xml_elem['level'] == 3)
          {    
          
    $Sql .= "UPDATE TABELLA SET miocampo = ".$xml_elem['attributes']['ESIST']." WHERE miocodice = ".$xml_elem['attributes']['CODICE'].";";
          }
    }

    mysql_query$Sql ); 

  3. #3
    Uhmm interessante

    Io devo aggiornare delle quantità per articolo per cui man mano la mia query è un COSA tipo

    update tabella set quantita = numero passato da XML WHERE CODICEArt = 'codice passato da XML'

    come posso impostare 1 unica query per titti i codici e relative QTA?
    è fattibile?
    Tanto...lo fanno tutti... posso farlo anche io vero?

  4. #4
    Utente di HTML.it
    Registrato dal
    Jun 2012
    Messaggi
    37
    Si. Ti ho messo il codice nel messaggio precedente.

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.