2017-01-23 8 views
-1

私は、サプライヤのXMLデータフィードを製品データベースに追加するためにPHPファイルを作成しようとしていますが(うまくいけばそれを後でcronジョブにすることもできます)仕事:(..それは私がxmlファイルには出力持っていたんでしたが、それはデシベル任意の助けが本当にPHPをMySQLにインポートする

<?xml version="1.0"?> 
 
<rss version="2.0"> 
 
\t <channel> 
 
    <language>en-au</language> 
 
    <title> Item Data Feed</title> 
 
    <description> item data feed</description> 
 
    <pubDate>Mon, 23 Jan 2017 16:00:41 GMT</pubDate> 
 
    <item StockCode="AT-CHARGERSTATION-45"> 
 
     <CategoryCode>CB</CategoryCode> 
 
     <CategoryName>Cables</CategoryName> 
 
     <SubcategoryID>0</SubcategoryID> 
 
     <SubcategoryName/> 
 
     <StockCode>AT-CHARGERSTATION-45</StockCode> 
 
     <BarCode>9320301002659</BarCode> 
 
     <Weight>0.3400</Weight> 
 
     <ManufacturerSKU>AT-CHARGERSTATION-45</ManufacturerSKU> 
 
     <pubDate>Mon, 23 Jan 2017 16:00:41 GMT</pubDate> 
 
     <ProductName>Astrotek USB Charging Station Charger Hub 3 Port 5V 4A with 1.5m Power Cable White for iPhone Samsung iPad Tablet GPS</ProductName> 
 
     <WarrantyLength>12</WarrantyLength> 
 
     <Manufacturer>Astrotek</Manufacturer> 
 
     <DBP>26.0000</DBP> 
 
     <DBP5>22.0000</DBP5> 
 
     <RRP>47.0000</RRP> 
 
     <StandardRRP>47.0000</StandardRRP> 
 
     <AvailabilityTotal>>5</AvailabilityTotal> 
 
     <AvailabilityAdelaide>>5</AvailabilityAdelaide> 
 
     <AvailabilityBrisbane>>5</AvailabilityBrisbane> 
 
     <AvailabilitySydney>>5</AvailabilitySydney> 
 
     <AvailabilityMelbourne>>5</AvailabilityMelbourne> 
 
     <AvailabilityPerth>>5</AvailabilityPerth> 
 
     <ImageUrl>NDAURL</ImageUrl> 
 
     <WebsiteUrl/> 
 
     <ImageFilename/> 
 
     <DescriptionLink>NDAURL</DescriptionLink> 
 
\t </item>

をいただければ幸いに挿入する必要はありません。問題はないXMLファイルを読み込み、

<?php 
 

 
// read XML data string 
 
// Set File Read or URL READ HERE 
 

 
\t $context = stream_context_create(array('http' => array('header' => 'Accept: application/xml'))); 
 
\t $url = 'NDA URL HERE'; 
 
\t 
 
\t $xml = file_get_contents($url, false, $context); 
 
\t $xml = simplexml_load_string($xml) or die("ERROR: Cannot create SimpleXML object"); 
 
\t $complete = 'XML Import Completed'; 
 
\t print_r($complete); 
 

 
// open MySQL connection 
 
\t include ("include/sqlopen.php"); 
 
\t \t \t // sqlopen.php has the following 
 
\t \t \t //$conn = mysqli_connect('localhost', 'USER', 'PASS', 'DATABASE') or die ("ERROR: Cannot connect"); 
 

 
// process node data 
 
// create and execute INSERT queries 
 
\t foreach ($xml->item as $item) { 
 
\t \t 
 
\t $StockCode = mysqli_real_escape_string($conn, $item->StockCode); 
 
\t $CategoryCode = mysqli_real_escape_string($conn, $item->CategoryCode); 
 
\t $CategoryName = mysqli_real_escape_string($conn, $item->CategoryName); 
 
\t $SubcategoryID = mysqli_real_escape_string($conn, $item->SubcategoryID); 
 
\t $SubcategoryName = mysqli_real_escape_string($conn, $item->SubcategoryName); 
 
\t $BarCode = mysqli_real_escape_string($conn, $item->BarCode); 
 
\t $Weight = mysqli_real_escape_string($conn, $item->Weight); 
 
\t $ManufacturerSKU = mysqli_real_escape_string($item, $ManufacturerSKU->ManufacturerSKU); 
 
\t $ProductName = mysqli_real_escape_string($conn, $item->ProductName); 
 
\t $WarrantyLength = mysqli_real_escape_string($conn, $item->WarrantyLength); 
 
\t $Manufacturer = mysqli_real_escape_string($conn, $item->Manufacturer); 
 
\t $DBP = mysqli_real_escape_string($conn, $item->DBP); 
 
\t $DBP5 = mysqli_real_escape_string($conn, $item->DBP5); 
 
\t $RRP = mysqli_real_escape_string($conn, $item->RRP); 
 
\t $StandardRRP = mysqli_real_escape_string($conn, $item->StandardRRP); 
 
\t $AvailabilityTotal = mysqli_real_escape_string($conn, $item->AvailabilityTotal); 
 
\t $AvailabilityAdelaide = mysqli_real_escape_string($conn, $item->AvailabilityAdelaide); 
 
\t $AvailabilityBrisbane = mysqli_real_escape_string($conn, $item->AvailabilityBrisbane); 
 
\t $AvailabilitySydney = mysqli_real_escape_string($conn, $item->AvailabilitySydney); 
 
\t $AvailabilityMelbourne = mysqli_real_escape_string($conn, $item->AvailabilityMelbourne); 
 
\t $AvailabilityPerth = mysqli_real_escape_string($conn, $item->AvailabilityPerth); 
 
\t $ImageUrl = mysqli_real_escape_string($conn, $item->ImageUrl); 
 
\t $WebsiteUrl = mysqli_real_escape_string($conn, $item->WebsiteUrl); 
 
\t $ImageFilename = mysqli_real_escape_string($conn, $item->ImageFilename); 
 
\t $DescriptionLink = mysqli_real_escape_string($conn, $item->DescriptionLink); 
 

 
// SQL Query INSERT 
 
\t $sql = "INSERT INTO ProductsXMLTest (StockCode, CategoryCode, CategoryName, SubcategoryID, SubcategoryName, BarCode, Weight, ManufacturerSKU, ProductName, WarrantyLength, Manufacturer, DBP, DBP5, RRP, StandardRRP, AvailabilityTotal, AvailabilityAdelaide, AvailabilityBrisbane, AvailabilitySydney, AvailabilityMelbourne, AvailabilityPerth, ImageUrl, ImageFilename, DescriptionLink) VALUES ('$StockCode', '$CategoryCode', '$CategoryName', '$SubcategoryID', '$SubcategoryName', '$BarCode', '$Weight', '$ManufacturerSKU', '$ProductName', '$WarrantyLength', '$Manufacturer', '$DBP', '$DBP5', '$RRP', '$StandardRRP', '$AvailabilityTotal', '$AvailabilityAdelaide', '$AvailabilityBrisbane', '$AvailabilitySydney', '$AvailabilityMelbourne', '$AvailabilityPerth', '$ImageUrl', '$ImageFilename', '$DescriptionLink')"; 
 
\t mysqli_query($conn, $sql) or die ("ERROR: " .mysqli_error($conn) . " (query was $sql)"); 
 
\t } 
 

 
// close connection 
 
\t mysqli_close($conn); 
 
?>

+0

と帽子エラーになると考えられています? –

+0

全くエラーはありません。データベースには何も追加されません。 –

+0

これは単なる不可能なことです。エラーがなければ、ループは繰り返し実行されないか、間違ったデータベースで結果がチェックされます。両方のケースであなたの質問を話題から外します。 –

答えて

1

ループが入力されていませんでした正しく

foreach ($xml->channel->item as $item) {} 

正しいループ初期化

はちょうど私が包みソリューションを設置したい他の誰かがあなたが得るこの間違い

関連する問題