我想从XML文件中获取信息,但无法使其工作。 这里是我的代码:检索并解析与MySQL结果相关的XML记录
$xml = simplexml_load_file('http://www.website.de/file.xml');
$query = "SELECT * FROM table WHERE shop='name' and datum='' LIMIT 5";
$result = mysql_query($query) or die("Error: " . mysql_error());
$db_erg = mysql_query($query);
while ($inhalt = mysql_fetch_array($db_erg, MYSQL_ASSOC))
{
$i = $inhalt['name'];
$name = $xml->record[$i]->PRODUCT_NAME;
$link = $xml->record[$i]->PRODUCT_LINK;
$preis = $xml->record[$i]->PRICE;
$versand = $xml->record[$i]->SHIPPING_COST;
$ean = $xml->record[$i]->PRODUCT_CODE;
$bild = $xml->record[$i]->PRODUCT_IMAGE_URL;
$datum = time();
$id = $inhalt['id'];
echo "<p>".$id." geaendert.</p>";
}
我每次运行它给我的错误的脚本...
Trying to get property of non-object in...
...在线路从$name
到$bild
。所以我想这与$i
有关,但我不明白为什么这不起作用。 我将不胜感激。
P.S:我知道这不是使用MySQL的安全方式。完成的网站上的脚本将只使用mysqli预准备语句。
这里是我操纵XML文件:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<csv_data_records source="/var/www/network/domains/webservice/public_html/partner/functions/../../../../../tmp/productdata_cf45f01cb623aa26d26b25d362e11b56.tmp" datetime="2014-10-29T19:31:38+01:00" >
<record>
<PRODUCT_ID>9868.1</PRODUCT_ID>
<PRODUCT_CODE>4032314007020</PRODUCT_CODE>
<PRODUCT_CODE_TYPE>EAN</PRODUCT_CODE_TYPE>
<PRODUCT_NAME>Luposan Kräuterkraft 30 Pulver - 1000 g</PRODUCT_NAME>
<BRAND>Luposan</BRAND>
<PRICE>22.99</PRICE>
<PRICE_OLD>26.99</PRICE_OLD>
<PRICE_CURRENCY>EUR</PRICE_CURRENCY>
<CATEGORY>Hund > Spezialfutter & Nahrungsergänzungen > Haut & Fell > Luposan</CATEGORY>
<PRODUCT_IMAGE_URL>http://marketing.net.zooplus.de/ts/i3101179/tsv?tst=!!!TIME_STAMP!!!&amc=aff.zooplus.20478.24084.8290&rmd=1&trg=http%3A%2F%2Fmedia.zooplus.com%2Fbilder%2F1%2F400%2F9868_luposan_kraeuterkraftb_1.jpg</PRODUCT_IMAGE_URL>
<PRODUCT_LINK>http://marketing.net.zooplus.de/ts/i3101179/tsc?tst=!!!TIME_STAMP!!!&amc=aff.zooplus.20478.24084.8290&rmd=1&trg=http%3A%2F%2Fwww.zooplus.de%2F-306243%2Fshop%2F%252B10PRFDEAFF%2Fhunde%2Fhundefutter_ergaenzung%2Fhaut_haare%2Fluposan%2F9868</PRODUCT_LINK>
<AVAILABILITY>in stock</AVAILABILITY>
<SHIPPING_COST>0.00</SHIPPING_COST>
<PRODUCT_UNIT_PRICE>22.99</PRODUCT_UNIT_PRICE>
<PRODUCT_UNIT_MEASURE>1</PRODUCT_UNIT_MEASURE>
<PRODUCT_UNIT_BASE_VALUE>kg</PRODUCT_UNIT_BASE_VALUE>
</record>
'$ xml'没有在你的代码的任何地方定义。所以,正如PHP所说的那样。你试图访问一个非对象的属性(例如一个未定义的变量没有属性)。 – 2014-10-29 20:46:29
@marc我知道,我忘了在网站上显示这个。但它在我的脚本中。我现在把它添加到上面的代码中。抱歉。 – Dennis 2014-10-29 20:47:23
@Dennis如果我们不知道文件中的XML结构,或者$ inhalt ['name']'是什么,我们就不能提供任何帮助。打印'$ inhalt ['name']'的值来检查它是什么你认为它是什么,并将XML文件的片段添加到你的问题。 – 2014-10-29 20:48:52