ffgghh Posted November 2, 2006 Report Share Posted November 2, 2006 (edited) Klau tauta iesakiet vienkāršāko un ātrāko veidu kā ne mazāk kā 100Mb liela xml faila saturu ielādēt MySQL datubāzē? XML failā ir tikai viena līmeņa dati resp XML faila rinda = MySQL tabulas rinda ;) Edited November 2, 2006 by ffgghh Link to comment Share on other sites More sharing options...
Delfins Posted November 2, 2006 Report Share Posted November 2, 2006 1.) gzip tavs_fails.xml un tad liec iekšā 2.) Kāpēc jāliek iekš DB? Nepietiek ar atsauci? Link to comment Share on other sites More sharing options...
ffgghh Posted November 2, 2006 Author Report Share Posted November 2, 2006 1.) gzip tavs_fails.xml un tad liec iekšā2.) Kāpēc jāliek iekš DB? Nepietiek ar atsauci? 1.) drusku nesapratu kapēc gzip ? 2.) šajā fails ir ļoti lielas datubāzes atsevišķu datui apkopojums kas obligāti ir jāieliek MySQL vai jebkādā citā PHP pieejamā datubāzē lai varētu normāli izmantot webā. Piekam šis fails atjaunojas reizi diennaktī!!! Link to comment Share on other sites More sharing options...
andrisp Posted November 2, 2006 Report Share Posted November 2, 2006 - http://lv2.php.net/manual/en/function.fread.php - http://lv2.php.net/manual/en/control-structures.while.php - http://lv2.php.net/manual/en/ref.xml.php - http://lv2.php.net/manual/en/ref.mysql.php :) Link to comment Share on other sites More sharing options...
v3rb0 Posted November 2, 2006 Report Share Posted November 2, 2006 (edited) var parsēt un ar ciklu insert into table.. vai, ja xml, tad xml, ņem db kas domāta xmlam: http://berkleydb.com/downloads/releasehistorybdbxml.html un ar php slēdzies pie tās http://phpdbxml.4641.org/doku.php Edited November 2, 2006 by v3rb0 Link to comment Share on other sites More sharing options...
Delfins Posted November 2, 2006 Report Share Posted November 2, 2006 Ah tad tu gribi ieimpotēt datus (XML->table)... Nākošreiz izvēlies attiecīgos terminus. Ja tur tik tiešām ir primitīvs XML, tad ar fread + while + preg_match pietiks. XML DOM lasīšana strādās tik pat lēni, kā šis variants, bet ir ērtāks.. Protams, var arī uzstādīt XMLElement reader handlerus iesetot pa taisno... PS: skaties XML DOM referenci iekš PHP manuāļa tur ir piemēri. Link to comment Share on other sites More sharing options...
Gundars Posted November 2, 2006 Report Share Posted November 2, 2006 http://www.php.net/manual/en/ref.xml.php ŠIs ļauj pārsēt pa faila gabaliem un noparsetas rindas attiecīgi var iemest uzraiz DB. Bez iekraushans visa 100Mb atminjaa. Link to comment Share on other sites More sharing options...
GedroX Posted November 2, 2006 Report Share Posted November 2, 2006 Man gan liekās, ka vajaga iztikt bez PHP. Ar kādu labu teksta redaktoru uztaisi regular expresion replace csv formā un grūd iekšā izmantojot LOAD DATA INFILE. Link to comment Share on other sites More sharing options...
ffgghh Posted November 2, 2006 Author Report Share Posted November 2, 2006 Ah tad tu gribi ieimpotēt datus (XML->table)... Nākošreiz izvēlies attiecīgos terminus. Ja tur tik tiešām ir primitīvs XML, tad ar fread + while + preg_match pietiks. XML DOM lasīšana strādās tik pat lēni, kā šis variants, bet ir ērtāks.. Protams, var arī uzstādīt XMLElement reader handlerus iesetot pa taisno... PS: skaties XML DOM referenci iekš PHP manuāļa tur ir piemēri. Delfins: Vai nevari iedot kādu piemēru. ps. manuāli es arī noteikti izlasīšu! Link to comment Share on other sites More sharing options...
Delfins Posted November 2, 2006 Report Share Posted November 2, 2006 Manuālī viss ir. Link to comment Share on other sites More sharing options...
andrisp Posted November 2, 2006 Report Share Posted November 2, 2006 Gūglē var daudz piemērus/tutoriāļus atrast: http://www.google.lv/search?hl=lv&q=parsing+xml+php Link to comment Share on other sites More sharing options...
ffgghh Posted November 3, 2006 Author Report Share Posted November 3, 2006 Tutoriāļi, manuāli - tas viss ir fufelis... Tiko taisu load lielajam failam viss pisec - mašīna burtiski nomirst līdz php script timeoutam. Bet jautājums bija - > Kā visoptimālāk un visātrāk transferēt lielāku par 100Mb XML => MySQL ??? 1na XML rinda = 1na MySWL tabulas rinda - viens pret vienu - mez jebkādām izmaiņam Iesakiet konkrētu tehnoloģiju lūdzu>? $dom = new DomDocument(); $dom->load("xml.xml"); $titles = $dom->getElementsByTagName("TagName"); foreach($titles as $wresult) { $x1s = $wresult->getElementsByTagName("x1"); $x1 = $x1s->item(0)->nodeValue; $x2s = $wresult->getElementsByTagName("x2"); $x2 = $x2s->item(0)->nodeValue; $x3s = $wresult->getElementsByTagName("x3"); $x3 = $x3s->item(0)->nodeValue; echo '<b>'.$x1.'</b><br>'.$x2.'<br>'.$x3.'<br>'; //Šeit var itkā likt mysql query kas uploado datus } LŪDZU IESAKIET KAUTKO ĀTRĀKU PAR ŠO... Link to comment Share on other sites More sharing options...
v3rb0 Posted November 3, 2006 Report Share Posted November 3, 2006 izmēģini šito http://www.engageinteractive.com/mambo/ind...mp;Itemid=10159 Link to comment Share on other sites More sharing options...
Delfins Posted November 3, 2006 Report Share Posted November 3, 2006 Es tev saku - taisi ar handleriem nevis DOM!!!... DOM nozīmē to, ka fails tiks turēts atmiņā... A handleri, - tas ir lineārs parseris... Link to comment Share on other sites More sharing options...
Gundars Posted November 3, 2006 Report Share Posted November 3, 2006 ....LŪDZU IESAKIET KAUTKO ĀTRĀKU PAR ŠO... Vai nu taisi pats izmantojot sho... http://www.php.net/manual/en/ref.xml.php vai arī n ls zobos, xml.DB strukturu un pie kāda codera ciemos:))) Link to comment Share on other sites More sharing options...
Recommended Posts