xml php import

PHP programming forum. Ask questions or help people concerning PHP code. Don't understand a function? Need help implementing a class? Don't understand a class? Here is where to ask. Remember to do your homework!

Moderator: General Moderators

Post Reply
djnu_tron
Forum Newbie
Posts: 1
Joined: Mon Dec 04, 2006 9:33 am

xml php import

Post by djnu_tron »

I am having problems making this script accept the first tag and then repeat over all the tags inside

it works, however it only shows me the data in the last tag

the script imports xml data into mysql

grateful for any help :)

Code: Select all

<?php
    include 'library/config.php';
    include 'library/opendb.php';
$file = "my-xml.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 section ( ";
$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.= "','');";
  }
  $query=trim($sql);
  echo $value;
if (mysql_query($sql)){
echo "success in table creation.";
} else {
echo "no table created.";
}
echo mysql_error();
  echo $sql;
?>
Post Reply