Просмотр полной версии : Генерация хмл каталога с помощью пхп
Cherry Twist
01.02.2006, 14:07
Очень нужна ПОМОЩЬ.
Мне нужно с помощью пхп сгенерировать хмл каталог.
Тоесть сконвертировать мой каталог интернет магазина
в хмл формат с условиями:
<item id="50456">
<name>Холодильник ARDO AY 230</name>
<url>http://provider.com.ua/backet/?pid=50456&c_id=45</url>
<price>210</price>
<categoryId>235</categoryId>
<vendor>ARDO</vendor>
<image>http://provider.com.ua/img/50456.jpg</image>
<description>Высота (cм), 141,2 Ширина (cм), 50 Глубина (cм), 58 Масса НЕТТО (кг), 47,3</description>
</item>
Вот такой у меня есть скрипт:
(но чтото не получается)
<?
include_once './const.php';
function to_xml($str)
{
return htmlspecialchars($str);
}
Header("Content-Type: \"text/xml\"; charset=windows-1251");
?><?='<?'?>xml version="1.0" encoding="windows-1251"<?='?>'?>
<price date="<?=date('Y-m-d H:i')?>">
<name>YourShop</name>
<url>http://yourshop.com.ua/</url>
<currency code='UAH'/>
<region>Украина</region>
<catalog><?
foreach ($categories as $row) {
echo '<category id="', $row['id'], '" parentID="', $row['parentID'], '">', to_xml($row['name']), '</category>';
}
?></catalog>
<items>
<?
$res = mysql_query("SELECT id,name,catalogID,description,image_path,extern_url,price_uah price, vendor FROM price WHERE price_uah!=0 ORDER BY RAND() LIMIT 20");
while($o = mysql_fetch_object($res))
{
?><item id="<?=$o->id?>">
<name><?=to_xml($o->name)?></name>
<price><?=$o->price?></price>
<categoryId><?=$o->catalogID?></categoryId>
<description><?=to_xml($o->description)?></description>
<url><?=to_xml($o->extern_url)?></url>
<image><?=to_xml($o->image_path)?></image>
<vendor><?=to_xml($o->vendor)?></vendor>
</item>
<?
}
?>
</items>
</price>
в лом читать товарисчЪ. что нетак-то?
Cherry Twist
02.02.2006, 13:55
Вобщем так.
Я купил рекламу у одной фирмы(www.bigmir.net), после чего оказалось что в договоре было указано что нужно писать код самому для индексации.
Робота у них нет для индексации сайтов, и по этому мне надо подкоректировать пхп код чтоб он сгенерировал хмльку каталога моего интернет магазина.
код вот:
<?
include_once './const.php';
function to_xml($str)
{
return htmlspecialchars($str);
}
Header("Content-Type: \"text/xml\"; charset=windows-1251");
?><?='<?'?>xml version="1.0" encoding="windows-1251"<?='?>'?>
<price date="<?=date('Y-m-d H:i')?>">
<name>YourShop</name>
<url>http://yourshop.com.ua/</url>
<currency code='UAH'/>
<region>Украина</region>
<catalog><?
foreach ($categories as $row) {
echo '<category id="', $row['id'], '" parentID="', $row['parentID'], '">', to_xml($row['name']), '</category>';
}
?></catalog>
<items>
<?
$res = mysql_query("SELECT id,name,catalogID,description,image_path,extern_ur l,price_uah price, vendor FROM price WHERE price_uah!=0 ORDER BY RAND() LIMIT 20");
while($o = mysql_fetch_object($res))
{
?><item id="<?=$o->id?>">
<name><?=to_xml($o->name)?></name>
<price><?=$o->price?></price>
<categoryId><?=$o->catalogID?></categoryId>
<description><?=to_xml($o->description)?></description>
<url><?=to_xml($o->extern_url)?></url>
<image><?=to_xml($o->image_path)?></image>
<vendor><?=to_xml($o->vendor)?></vendor>
</item>
<?
}
?>
</items>
</price>
буду очень благодарен.
Повторю вопрос предыдущего оратора - что не так в коде ? Читать неоформлненный код будут только любители этого дела под этим делом...
Cherry Twist
02.02.2006, 14:37
Он генерирует не так хмл каталог как им надо(рекламщикам).
вот как они хотят что бы выглядел хмл файл
Сами товары описываются в элементе <items>
Каждая товарная позиция представляется в следующем виде
<item id="50456">
<name>Холодильник ARDO AY 230</name>
<url>http://moy-dom.com.ua/backet/?pid=50456&c_id=45</url>
<price>210</price>
<categoryId>235</categoryId>
<vendor>ARDO</vendor>
<image>http://moy-dom.com.ua/img/50456.jpg</image>
<description>Высота (cм), 141,2 Ширина (cм), 50 Глубина (cм), 58 Масса НЕТТО (кг), 47,3</description>
</item>
Ну а на выходе скрипта что получается ?
Cherry Twist
02.02.2006, 15:12
<?xml version="1.0" encoding="windows-1251"?>
<price date="2006-02-02 13:10">
<name>YourShop</name>
<url>http://moy-dom.com.ua/</url>
<currency code='UAH'/>
<region>???????</region>
<catalog>
<br />
<b>Warning</b>: Invalid argument supplied for foreach() in <b>/home/moydom/public_html/const.php</b> on line <b>19</b><br />
</catalog>
<items>
<br />
<b>Warning</b>: mysql_query(): Access denied for user: 'moydom@localhost' (Using password: NO) in <b>/home/moydom/public_html/const.php</b> on line <b>26</b><br />
<br />
<b>Warning</b>: mysql_query(): A link to the server could not be established in <b>/home/moydom/public_html/const.php</b> on line <b>26</b><br />
<br />
<b>Warning</b>: mysql_fetch_object(): supplied argument is not a valid MySQL result resource in <b>/home/moydom/public_html/const.php</b> on line <b>27</b><br />
</items>
</price>
Ошибка тут:
foreach ($categories as $row) {
echo '<category id="', $row['id'], '" parentID="', $row['parentID'], '">', to_xml($row['name']), '</category>';
}
Ноги ее растут скорее всего из Access denied for user: 'moydom@localhost' (Using password: NO)
Тобишь конфигурация доступа к mysql отсутствует напрочь.
Cherry Twist
02.02.2006, 15:42
Cпасибо Skubent :)
Cherry Twist
02.02.2006, 16:06
даже после создания пользователя и пороля:
<?xml version="1.0" encoding="windows-1251"?>
<price date="2006-02-02 14:03">
<name>YourShop</name>
<url>http://moy-dom.com.ua/</url>
<currency code='UAH'/>
<region>???????</region>
<catalog>
<br />
<b>Warning</b>: Invalid argument supplied for foreach() in <b>/home/moydom/public_html/const.php</b> on line <b>19</b><br />
</catalog>
<items>
<br />
<b>Warning</b>: mysql_connect(): Access denied for user: 'user_some@localhost' (Using password: YES) in <b>/home/moydom/public_html/const.php</b> on line <b>26</b><br />
<br />
<b>Warning</b>: mysql_query(): Access denied for user: 'moydom@localhost' (Using password: NO) in <b>/home/moydom/public_html/const.php</b> on line <b>27</b><br />
<br />
<b>Warning</b>: mysql_query(): A link to the server could not be established in <b>/home/moydom/public_html/const.php</b> on line <b>27</b><br />
<br />
<b>Warning</b>: mysql_fetch_object(): supplied argument is not a valid MySQL result resource in <b>/home/moydom/public_html/const.php</b> on line <b>28</b><br />
</items>
</price>
Не те логин и пароль...
Access denied for user: 'user_some@localhost' (Using password: YES)
Cherry Twist
02.02.2006, 16:39
<?
include_once './const.php';
function to_xml($str)
{
return htmlspecialchars($str);
}
Header("Content-Type: \"text/xml\"; charset=windows-1251");
?><?='<?'?>xml version="1.0" encoding="windows-1251"<?='?>'?>
<price date="<?=date('Y-m-d H:i')?>">
<name>YourShop</name>
<url>http://moy-dom.com.ua/</url>
<currency code='UAH'/>
<region>Украина</region>
<catalog>
<?
foreach ($categories as $row) {
echo '<category id="', $row['id'], '" parentID="', $row['parentID'], '">', to_xml($row['name']), '</category>';
}
?>
</catalog>
<items>
<?
$db = mysql_connect("localhost","nobody ","");
$res = mysql_query("SELECT id,name,catalogID,description,image_path,extern_ur l,price_uah price, vendor FROM price WHERE price_uah!=0 ORDER BY RAND() LIMIT 20");
while($o = mysql_fetch_object($res))
{
?><item id="<?=$o->id?>">
<name><?=to_xml($o->name)?></name>
<price><?=$o->price?></price>
<categoryId><?=$o->catalogID?></categoryId>
<description><?=to_xml($o->description)?></description>
<url><?=to_xml($o->extern_url)?></url>
<image><?=to_xml($o->image_path)?></image>
<vendor><?=to_xml($o->vendor)?></vendor>
</item>
<?
}
?>
</items>
</price>
Cherry Twist
02.02.2006, 16:42
<?xml version="1.0" encoding="windows-1251"?>
<price date="2006-02-02 14:40">
<name>YourShop</name>
<url>http://moy-dom.com.ua/</url>
<currency code='UAH'/>
<region>???????</region>
<catalog>
<br />
<b>Warning</b>: Invalid argument supplied for foreach() in <b>/home/moydom/public_html/const.php</b> on line <b>19</b><br />
</catalog>
<items>
<br />
<b>Warning</b>: mysql_fetch_object(): supplied argument is not a valid MySQL result resource in <b>/home/moydom/public_html/const.php</b> on line <b>28</b><br />
</items>
</price>
foreach ($categories as $row)
$categories - не массив. Подозреваю, там вообще пусто.
$res = mysql_query("SELECT id,name,catalogID,description,image_path,extern_ur l,price_uah price, vendor FROM price WHERE price_uah!=0 ORDER BY RAND() LIMIT 20");
while($o = mysql_fetch_object($res))
Запрос к БД не выполняется.
Cherry Twist
02.02.2006, 16:50
А какой же выход?
проверять наполнение файла
'./const.php';
Cherry Twist
06.02.2006, 17:30
не получается ничего.
абсолютно. :(
Пользуйтесь тегами [рhр][/рhр]
ответы такой
нанять програмиста что б он разобрался чтои к чему.
Cherry Twist
06.02.2006, 18:03
вот бред покупать раскрутку и дополнительно платить программисту чтоб он еще разбирался с ихней индексацией???
я лучше бабки заберу обратно.
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.