XML werkt wel op MAC niet op PC

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Philippe

philippe

17/05/2009 20:13:00
Quote Anchor link
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

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
<?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
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
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 Bruyre', 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 Carrires', 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 30C.\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);
 
PHP hulp

PHP hulp

29/11/2024 16:54:09
 
Emmanuel Delay

Emmanuel Delay

17/05/2009 20:32:00
Quote Anchor link
Kijk eens naar lijn 42
Daar heb je meerdere argumenten voor parseToXML. Dat hoort niet.
Dat zou fouten moeten geven.
 
Philippe

philippe

17/05/2009 21:35:00
Quote Anchor link
ik heb de 2 argumenten eruit gehaald, maar 't werkt nog altijd ni
 

17/05/2009 22:14:00
Quote Anchor link
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 simplexml of dom, 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.
 
Jelmer -

Jelmer -

17/05/2009 22:19:00
Quote Anchor link
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 '<?xml version="1.0"?>' aan het begin van je uitvoer.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.