Dit bestand maakt een XML van gegevens uit mijn DB om markers te tonen op google maps. op MAC (safari, firefox werkt het perfect(zie ik mijn markers)), maar op pc niet bij firefox en IE


<?php
require("googleDB.php");

function parseToXML($htmlStr) 
{ 
$xmlStr=str_replace('<','&lt;',$htmlStr); 
$xmlStr=str_replace('>','&gt;',$xmlStr); 
$xmlStr=str_replace('"','&quot;',$xmlStr); 
$xmlStr=str_replace("'",'&apos;',$xmlStr); 
$xmlStr=str_replace("&",'&amp;',$xmlStr); 
return $xmlStr; 
} 

// Opens a connection to a mySQL server
$connection=mysql_connect (localhost, $username, $password);
if (!$connection) {
  die('Not connected : ' . mysql_error());
}

// Set the active mySQL database
$db_selected = mysql_select_db($database, $connection);
if (!$db_selected) {
  die ('Can\'t use db : ' . mysql_error());
}

// Select all the rows in the markers table
$query = "SELECT * FROM duiklocatie WHERE 1";
$result = mysql_query($query);
if (!$result) {
  die('Invalid query: ' . mysql_error());
}

header("Content-type: text/xml");

// Start XML file, echo parent node
echo '<markers>';

// Iterate through the rows, printing XML nodes for each
while ($row = @mysql_fetch_assoc($result)){
  // ADD TO XML DOCUMENT NODE
  echo '<marker ';
  echo 'Plaatsnaam="' . parseToXML('&','&amp;', $row['Plaatsnaam']) . '" ';
  echo 'Straat="' . parseToXML($row['Straat']) . '" ';
  echo 'Nr="' . parseToXML($row['Nr']) . '" ';
  echo 'Postcode="' . parseToXML($row['Postcode']) . '" ';
  echo 'Gemeente="' . parseToXML($row['Gemeente']) . '" ';
  echo 'Lat="' . $row['Lat'] . '" ';
  echo 'Lng="' . $row['Lng'] . '" ';
  echo '/>';
}

// End XML file
echo '</markers>';

?>


SQL

CREATE TABLE `duiklocatie` (
  `Locatie_Id` tinyint(12) NOT NULL auto_increment,
  `Plaatsnaam` varchar(50) character set utf8 collate utf8_unicode_ci NOT NULL,
  `Lat` varchar(100) character set utf8 collate utf8_unicode_ci NOT NULL,
  `Lng` varchar(100) character set utf8 collate utf8_unicode_ci NOT NULL,
  `Straat` varchar(100) character set utf8 collate utf8_unicode_ci NOT NULL,
  `Nr` tinyint(4) NOT NULL,
  `Postcode` smallint(4) NOT NULL,
  `Gemeente` varchar(50) character set utf8 collate utf8_unicode_ci NOT NULL,
  `Provincies_id` tinyint(2) NOT NULL,
  `Parking` varchar(5) character set utf8 collate utf8_unicode_ci NOT NULL,
  `Max diepte` varchar(4) character set utf8 collate utf8_unicode_ci NOT NULL,
  `Douche` varchar(4) character set utf8 collate utf8_unicode_ci NOT NULL,
  `Prijs` varchar(10) character set utf8 collate utf8_unicode_ci NOT NULL,
  `Zuurstof` varchar(4) character set utf8 collate utf8_unicode_ci NOT NULL,
  `Kleedkamer` varchar(4) character set utf8 collate utf8_unicode_ci NOT NULL,
  `Vulmogelijkheid` varchar(4) character set utf8 collate utf8_unicode_ci NOT NULL,
  `Inlichtingen` varchar(100) character set utf8 collate utf8_unicode_ci NOT NULL,
  `Tekst` text character set utf8 collate utf8_unicode_ci NOT NULL,
  `Land_id` int(11) NOT NULL,
  `totaal_score` float default NULL,
  `aantal_stemmen` int(11) default NULL,
  PRIMARY KEY  (`Locatie_Id`)
)
INSERT INTO `duiklocatie` (`Locatie_Id`, `Plaatsnaam`, `Lat`, `Lng`, `Straat`, `Nr`, `Postcode`, `Gemeente`, `Provincies_id`, `Parking`, `Max diepte`, `Douche`, `Prijs`, `Zuurstof`, `Kleedkamer`, `Vulmogelijkheid`, `Inlichtingen`, `Tekst`, `Land_id`, `totaal_score`, `aantal_stemmen`) VALUES
(1, 'Opprebais', '50.68726', '4.80530', 'Rue de la Bruyère', 0, 1315, 'Opprebais', 6, 'matig', '28 m', 'neen', '4€', 'ja', 'ja', 'neen', 'Andre Josephe (DDT) 016/77.97.27', '  zoals een luchtklok op -15 meter en diverse wagens.\r\n\r\nRecht tegenover de instapplaats bevindt zich een mooie kruidentuin.\r\n', 1, 3, 2),
(2, 'Dongelberg', '50.69670', '4.81980', 'rue des Carrières', 0, 1370, 'Dongelberg', 6, 'ja', '40 m', 'neen', '4€', 'ja', 'ja', 'neen', 'Joseph Carlo: 0498/50.06.56', ' oktober 2008, toch is er al een beperkt visbestand aanwezig.', 1, 5, 5),
(3, 'Nemo 33', '50.79591', '4.31733', 'Stallestraat', 127, 1180, 'Ukkel', 11, 'ja', '33', 'ja', '20€', 'ja', 'ja', 'ja', 'John Beernaerts', 'Het zwembad heeft een oppervlak is 16m x 20m, bevat 2.500.000 liter water en wordt constant verwarmt tot minimaal 30°C.\r\n\r\nDe waterkwaliteit wordt met een computergestuurde microfilter op peil gehouden, vandaar dat er geen beestjes in leven.\r\n', 1, NULL, NULL);
Kijk eens naar lijn 42
Daar heb je meerdere argumenten voor parseToXML. Dat hoort niet.
Dat zou fouten moeten geven.
ik heb de 2 argumenten eruit gehaald, maar 't werkt nog altijd ni
philippe schreef op 17.05.2009 20:13
Dit bestand maakt een XML van gegevens uit mijn DB (...)

Nee, dat is geen xml. Dat is gewoon zelf inelkaar geflansde string die lijkt op xml. Gebruik liever [php]simplexml[/php] of [php]dom[/php], dan krijg je wel xml. Verder vraag ik me ook af of dat wel correcte xml is, maar als je zegt dat het op google maps werkt zal dat wel zo zijn.
Waar je voorbeeld staat weet ik ook niet.
In plaats van parseToXML kan je beter htmlentities($x, ENT_QUOTES) gebruiken volgens mij, die zal alle karakters die binnen XML als entities kunnen worden geschreven omzetten.

Volgens mij mis je ook nog een xml doctype, iets a la [ignore]'<?xml version="1.0"?>'[/ignore] aan het begin van je uitvoer.

Reageren