2016-07-06 15 views
0

Wie macht man eine foreach-Schleife mit einem String und/oder ext/dom XML-Daten ausgeben, die Werte aus einer msql-Datenbank erhält? EDITED: Neueste ArbeitWie man Foreach-Schleife mit dem ext/dom XML ausgeben

<?php 
#Programmer: Moses Byanyuma 

require('./.env'); 


// Opens a connection to a mySQL server 
try { 
    $db = new PDO('mysql:host=' . DB_HOST . ';dbname=' . DB_NAME. ';charset=utf8', DB_USERNAME, DB_PASSWORD); 
} catch (PDOException $e) { 
    echo "An Error occured, could not connect!"; 
} 

$statement = $db->query('SELECT * FROM markers'); 

$xml = new DOMDocument("1.0"); 
$xml->formatOutput = true; 

$markers = $xml->createElement('markers'); 
$markers = $xml->appendChild($markers); 

while ($row = $statement->fetch(PDO::FETCH_ASSOC)) { 

    $marker = $xml->createElement('marker'); 
    $markers->appendChild($marker); 

    $marker->setAttribute('name', $row['name']); 
    $marker->setAttribute('lat', $row['lat']); 
    $marker->setAttribute('lng', $row['lng']); 
    $marker->setAttribute('address', $row['address']); 
    $marker->setAttribute('type', $row['type']); 

} 


echo "<xmp>".$xml->saveXML()."</xmp>"; 

?> 
+0

Was haben Sie versucht? Ich habe in Ihrer vorherigen Frage einen Link zu einem DOM-Beispiel gepostet. – ThW

+0

@ThW hat gerade diesen Post bearbeitet, ich habe ein wenig Fortschritte gemacht, aber ich kämpfe um die Werte aus der Datenbank in die XML zu bekommen, siehe meine foreach-Schleife –

+0

@ThW zum Beispiel habe ich versucht: $ name = $ xml- > createAttribute ('Name', $ Zeile ['Name']); aber im Browser bekomme ich eine Fehlermeldung, dass createAttribute nur einen Parameter erwartet und es muss nur eine Zeichenkette sein. Dann habe ich versucht, createAttribute mit getAttribute zu ersetzen, aber das hat total nicht funktioniert, bekam einen undefinierten Funktionsfehler, idk was zu tun ist:/ –

Antwort

0

DOMDocument::createAttribute() hat kein zweites Argument. Ich schlage vor, DOMElement::setAttribute() zu verwenden. Aber Sie können das Attribut als ein Knoten erstellen, wenn Sie möchten:

+0

danke für das Feedback. Ich habe gerade diesen Beitrag bearbeitet. Ich machte Fortschritte, aber ich habe ein großes Problem: –

+0

Es ist kein vollständiges XML in dem Sinne, dass es wie reiner Text aussieht. Auf meiner index.html Datei werden die Datenpunkte nicht auf der Karte angezeigt, da die Werte nicht aus der .php Datei gezogen werden. Ich weiß nicht warum –

+0

Ich habe gerade versucht meinen eigenen Beitrag zu bearbeiten und habe ihn versehentlich bearbeitet, mein Fehler. aber ja, das ist die Ausgabe, die in meinem Browser zeigt, außer es ist einfach nur schwarzer Text, so dass ich nicht denke, es ist eine tatsächliche XML-Ausgabe, warum die Koordinaten nicht auf der Karte zeigen, bitte helfen:/ –