Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Серверные технологии и Flash (http://www.flasher.ru/forum/forumdisplay.php?f=62)
-   -   Генерация хмл каталога с помощью пхп (http://www.flasher.ru/forum/showthread.php?t=74950)

Cherry Twist 01.02.2006 14:07

Генерация хмл каталога с помощью пхп
 
Очень нужна ПОМОЩЬ.
Мне нужно с помощью пхп сгенерировать хмл каталог.
Тоесть сконвертировать мой каталог интернет магазина
в хмл формат с условиями:

PHP код:

<item id="50456">
    <
name>Холодильник ARDO AY 230</name>
    <
url>http://provider.com.ua/backet/?pid=50456&amp;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> 

Вот такой у меня есть скрипт:
(но чтото не получается)
PHP код:

<?
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>


Usnul 02.02.2006 01:58

в лом читать товарисчЪ. что нетак-то?

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>
буду очень благодарен.

Skubent 02.02.2006 14:25

Повторю вопрос предыдущего оратора - что не так в коде ? Читать неоформлненный код будут только любители этого дела под этим делом...

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&amp;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>

Skubent 02.02.2006 14:57

Ну а на выходе скрипта что получается ?

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>

Skubent 02.02.2006 15:37

Ошибка тут:
Код:

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>


Часовой пояс GMT +4, время: 21:36.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.