Xml To Mysql Db

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Xml To Mysql Db

    Folgendes Problem:
    Ich muss ein XML File auslesen und später in eine Mysql Datenbank schreiben.
    Dazu möchte ich einen Insert String basteln.
    Das funktioniert mit dem folgendem Code s.u. auch wunderbar.
    Jedoch liest er mir immer nur den ersten datensatz aus und
    setzt nicht fort.
    Wie muss ich die Schleife bauen um die weiteren Datensätze auch auszulesen?
    Danke schon mal im vorraus für eure Hilfe!



    PHP-Code:
    <?php
    $file 
    "myfile.xml";
    $feed = array();
    $key "Agencia";
    $info "";

    function 
    startElement($xml_parser,  $attrs ) {
      global 
    $feed;
       }

    function 
    endElement($xml_parser$name) {
      global 
    $feed,  $info;
       
    $key $name;
      
    $feed[$key] = $info;
      
    $info ""; }

    function 
    charData($xml_parser$data ) {
      global 
    $info;
      
    $info .= $data; }

    $xml_parser xml_parser_create();
    xml_set_element_handler($xml_parser"startElement""endElement");
    xml_set_character_data_handler($xml_parser"charData" );
    $fp fopen($file"r");
    while (
    $data fread($fp8192))
    !
    xml_parse($xml_parser$datafeof($fp));
    xml_parser_free($xml_parser);

    $sql"INSERT INTO `Agencias` ( `";
    $j=0;
    $i=count($feed);

    foreach( 
    $feed as $assoc_index => $value )
      {
      
    $j++;
      
    $sql.= strtolower($assoc_index);
      if(
    $i>$j$sql.= "` , `";
      if(
    $i<=$j) {$sql.= "` ) VALUES ('";}
      }
     
    $h=0;
    foreach( 
    $feed as $assoc_index => $value )
      {
      
    $h++;
      
    $sql.= utf8_decode(trim(addslashes($value)));
      if(
    $i-1>$h$sql.= "', '";
      if(
    $i<=$h$sql.= "','')";
      }
      
    $sql=trim($sql);
      echo 
    $sql;
    ?>
    Zuletzt geändert von quaigon; 15.06.2006, 18:50.

  • #2
    hat sich erledigt

    Kommentar

    Lädt...
    X