This is probably something super basic...but I am using Magic parser to go thru an xml file and place into a database table. I am quering data out of a database (locationID, Lat,Long) and then dynamically placing into the xml url. Magic parser queries the first url (56 rows) but then when it needs to move to a new dynamic url..it fails with Cannot redeclare myrecordhandler()
<?php
do {
$LocationID=$row_buoy_info3['LocationID'];
$Latitude=$row_buoy_info3['lat'];
$Longitude=$row_buoy_info3['long'];
$rss = "http://www.worldweatheronline.com/feed/premium-weather-v2.ashx?key=XXXX&feedkey=XXXXXXX&format=xml&extra=utcDateTime,localObsTime,isDayTime&q=".$Latitude.",".$Longitude."";
?>
<?php
mysql_select_db($database_ConnSwell,$link);
function myRecordHandler($record)
{
global $counter;
global $link;
global $LocationID;
$hhtime=$record["UTCTIME"]+0000;
$dd=str_pad($hhtime,4,0,int);
$date=$record["UTCDATE"];
$sw1=''.$date.' '.$dd.'';
$timestamp = strtotime($sw1);
$sql = "INSERT INTO tblXXXXX SET
LOCATIONID ='".mysql_escape_string($LocationID)."'......
}
MagicParser_parse($rss,"myRecordHandler","xml|DATA/WEATHER/HOURLY/");
// MagicParser_parse($rss,"xml|DATA/WEATHER/HOURLY/");
?>
<?php
} while ($row_buoy_info3 = mysql_fetch_assoc($buoy_info3));
?>
Hi jp,
Make sure that your myRecordHandler function is outside the loop - that will be all it is!
<?php
function myRecordHandler($record)
{
global $counter;
global $link;
global $LocationID;
$hhtime=$record["UTCTIME"]+0000;
$dd=str_pad($hhtime,4,0,int);
$date=$record["UTCDATE"];
$sw1=''.$date.' '.$dd.'';
$timestamp = strtotime($sw1);
$sql = "INSERT INTO tblXXXXX SET
LOCATIONID ='".mysql_escape_string($LocationID)."'......
}
do {
$LocationID=$row_buoy_info3['LocationID'];
$Latitude=$row_buoy_info3['lat'];
$Longitude=$row_buoy_info3['long'];
$rss = "http://www.worldweatheronline.com/feed/premium-weather-v2.ashx?key=XXXX&feedkey=XXXXXXX&format=xml&extra=utcDateTime,localObsTime,isDayTime&q=".$Latitude.",".$Longitude."";
?>
<?php
mysql_select_db($database_ConnSwell,$link);
MagicParser_parse($rss,"myRecordHandler","xml|DATA/WEATHER/HOURLY/");
// MagicParser_parse($rss,"xml|DATA/WEATHER/HOURLY/");
?>
<?php
} while ($row_buoy_info3 = mysql_fetch_assoc($buoy_info3));
?>
Cheers,
David.
--
MagicParser.com