xml -> sql

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • xml -> sql

    Servus,
    krieg es mit dem xml nicht auf die Reihe.
    Versuche mit folgendem script die Daten in die db zu schreiben.
    Bei der Ausgabe wird aber nur der letzte Datensatz angezeigt.
    Und er wird noch nicht einmal in die Tabelle eingefügt. Bin schon betriebsblind - vielleicht sieht einer mehr.
    PHP Code:
    <?
    $file = "2784_2005-03-31_02-02-13.xml";
    $feed = array();
    $key = "";
    $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($fp, 8192))
    !xml_parse($xml_parser, $data, feof($fp));
    xml_parser_free($xml_parser);

    $sql= "INSERT INTO `my_table` ( `";
    $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;
    ?>
    Last edited by Claus; 14-04-2005, 13:20.

  • #2
    nicht ohne die php-tags

    Comment


    • #3
      ...I'm so sorry

      Comment


      • #4
        beweise es

        Comment


        • #5
          ...jawohl boss

          Comment


          • #6
            wun-der-bar.

            was ist denn mit testausgaben? wo genau klappt's denn nicht?

            Comment


            • #7
              ... echo $sql am Ende gibt nur den letzten Datensatz der xml-Datei aus:

              INSERT INTO `energia_vital` ( `merchantcategory` , `cat` , `mappingcategories` , `mfname` , `mfpn` , `name` , `brand` , `description` , `promotiontext` , `parameter`....

              Scheint also an der Schleife zu hapern.
              Es sollte dann aber wenigstens der Datensatz eingetragen werden - macht er aber auch nicht.

              Comment


              • #8
                schonmal was von mysql_error() gehört?

                und meinste das funktioniert so wie du gedacht hast?
                PHP Code:
                  while ($data fread($fp8192))
                !
                xml_parse($xml_parser$datafeof($fp));
                xml_parser_free($xml_parser);

                $sql"INSERT INTO `my_table` ( `"
                mfg
                marc75

                <Platz für anderes>

                Comment


                • #9
                  ...mysql_error() sagt nichts

                  Und was das Andere betrifft: Siehst du was, was ich nicht sehe

                  go and get my glasses

                  Comment


                  • #10
                    PHP Code:
                    //kann mich irren aber die while wiederholt nur die erste zeile

                    while ($data fread($fp8192))
                    !
                    xml_parse($xml_parser$datafeof($fp));
                    xml_parser_free($xml_parser);
                    //mach hier mal eine Testausgabe, und schau selbst
                    echo 123//beispiel 
                    danach gehe zu php.net und schaue unter while
                    mfg
                    marc75

                    <Platz für anderes>

                    Comment


                    • #11
                      ...hab auch gerade gesehen, dass nach while die { fehlt.
                      Jetzt werden alle Datensätze angezeigt.

                      PHP Code:
                      INSERT INTO energia_vital ( `merchantcategory` , `cat` , ...'' )
                      VALUES ('Pflanzenextrakte''958''''''''Beschreibun€''''', ...'''http://....137.jpg''''6.95''',''
                      Dafür krieg ich jetzt ne Fehlermeldung
                      Warning: xml_parse(): 3 is not a valid XML Parser resource in
                      Und in die db wird auch nichts geschrieben - shit
                      Last edited by Claus; 14-04-2005, 14:13.

                      Comment


                      • #12
                        Und in die db wird auch nichts geschrieben
                        vielleicht bin ich ja blind, aber ich seh auch nirgends in deinem Code einen Versuch in eine DB zu schreiben

                        Comment


                        • #13
                          ...nein du bist nicht blind - habs gerade eingefügt

                          Comment

                          Working...
                          X