2016-05-11 14 views
-2

Ich versuche, einen mxl Produkt-Feed mit PHP einzurichten, aber das ist alles neu für mich und ich hoffe, dass jemand helfen kann. Ich habe meinen aktuellen Code angehängt, der die Produkt-IDs enthält, die mehrere SKUs getrennt haben.Ich kann die foreach nicht herausfinden

Die Ausgabe sieht wie folgt aus:

Product_ID 1
SKU 1234
Product_ID1
SKU12345

ich versuche, ist, wie folgt aussehen mit der foreach

Produkt-ID 1
SKU 1234
12345 SKU

Hier ist meine aktuellen Code

while ($row = $st->fetch()) { 

    $xml .= "\t\t\t<Product_ID>".$row['product_id']."</Product_ID>\r\n"; 
    $xml .= "\t\t\t<Manufacture>".$row['manufactures_name']."</Manufacture>\r\n"; 
    $xml .= "\t\t\t<Product_Name>".$row['product_name']."</Product_Name>\r\n"; 
    $xml .= "\t\t\t<Product_Category>".$row['product_type']."</Product_Category>\r\n"; 
    $xml .= "\t\t\t<SKU>".$row['sku']."</SKU>\r\n"; 
    $xml .= "\t\t\t<UPC>".$row['upc']."</UPC>\r\n"; 
    $xml .= "\t\t\t<Base_Price>".$row['base_price']."</Base_Price>\r\n"; 
    $xml .= "\t\t\t<QtyAvailable>".$row['quantity']."</QtyAvailable>\r\n"; 

} 

Ich versuchte foreach hier hinzufügen, aber ich habe keine Ahnung.

while ($row = $st->fetch()) 

    $xml .= "\t\t\t<Product_ID>".$row['product_id']."</Product_ID>\r\n"; 
     foreach ('product_id' == 'product_id'); 
      $xml .= "\t\t\t<SKU>".$row['sku']."</SKU>\r\n"; 

    $xml .= "\t\t\t<Manufacture>".$row['manufactures_name']."</Manufacture>\r\n"; 
    $xml .= "\t\t\t<Product_Name>".$row['product_name']."</Product_Name>\r\n"; 
    $xml .= "\t\t\t<Product_Category>".$row['product_type']."</Product_Category>\r\n"; 
    $xml .= "\t\t\t<UPC>".$row['upc']."</UPC>\r\n"; 
    $xml .= "\t\t\t<Base_Price>".$row['base_price']."</Base_Price>\r\n"; 
    $xml .= "\t\t\t<QtyAvailable>".$row['quantity']."</QtyAvailable>\r\n"; 
} 
+1

'foreach' Syntax' foreach (array_expression als $ value) 'per http://php.net/manual/en/control-structures.foreach.php und nicht "Vergleich" '=='. –

+2

Ich glaube, das OP ist verwirrt darüber, wie man eine 'foreach' verwendet, weil man jedes Mal das nächste Element holen muss. Obwohl ich mir nicht sicher bin, was mit der Verwendung eines 'while's falsch ist, wie es üblicherweise verwendet wird, um Zeileninformationen aus einer Datenbank zu erhalten. –

+0

Ja, so benutzt man 'foreach' nicht. Mach 'var_dump ($ row) 'und füge das zu deiner Frage hinzu, damit wir die Daten sehen können, an denen du gerade arbeitest. Ziehen Sie auch die Verwendung von [simplexml] (http://php.net/manual/de/book.simplexml.php) in Betracht, um Ihr XML zu erstellen. Oder [DOMDocument] (http://php.net/manual/en/class.domdocument.php) – Machavity

Antwort

1

Wenn Sie versuchen, XML zu generieren, kann ich schlage vor, Sie SimpleXML Bibliothek von PHP verwenden, da es Ihnen viel mehr Flexibilität gibt und liest viel sauberer. Zur Dokumentation siehe http://php.net/simplexml.

Beispiel aus der Dokumentation:

<?php 

include 'example.php'; 

$sxe = new SimpleXMLElement($xmlstr); 
$sxe->addAttribute('type', 'documentary'); 

$movie = $sxe->addChild('movie'); 
$movie->addChild('title', 'PHP2: More Parser Stories'); 
$movie->addChild('plot', 'This is all about the people who make it work.'); 

$characters = $movie->addChild('characters'); 
$character = $characters->addChild('character'); 
$character->addChild('name', 'Mr. Parser'); 
$character->addChild('actor', 'John Doe'); 

$rating = $movie->addChild('rating', '5'); 
$rating->addAttribute('type', 'stars'); 

echo $sxe->asXML(); 

?> 
Verwandte Themen