Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Серверные технологии и Flash (http://www.flasher.ru/forum/forumdisplay.php?f=62)
-   -   Как лучше сделать связь MySQL+PHP+XML+Flash (http://www.flasher.ru/forum/showthread.php?t=111196)

Zorro_13 18.04.2008 01:08

Как лучше сделать связь MySQL+PHP+XML+Flash
 
Есть база MySQL!
PHP-скрипт берет из неё данные и что потом?
Он делает строчку состоящую из XML атрибутов и тэгов -
echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n";
PHP код:

echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n";
echo 
"<products>\n";

while(
$line = mysql_fetch_assoc($results)) {
    echo 
"<item>" . $line["product"] . "</item>\n";
}

echo 
"</products>\n";

Или как лучше сделать?

Заранее спасибо.

Zorro_13 18.04.2008 15:25

Ответьте пожалуйста, хоть кто-нибудь, по теме естественно.

etc 18.04.2008 16:21

Плюс за ап.

sangle 18.04.2008 18:14

Я за WebORB.
Когда-то свой первый проект начинал писать используя HTTPService, данные гнал в XML, создавая классы на PHP, методы которых возвращали свои данные в массивах, чтобы был единый интерфейс для формирования результатов в XML ("делая ручками через циклы и echo"). Сейчас все делаю, используя WebORB. Очень удобно.
С использованием его твой код превращается в
Код:

$result = array();
while($line = mysql_fetch_assoc($results)) {
    $result[] =  $line["product"];
}
return $result;

Причем можно и расширить...
Код:

$result = array();
while($line = mysql_fetch_assoc($results)) {
    $result[] =  array('name'=>$line["product"], 'id'=>$line["product_id"]); // и так далее.
}
return $result;

На клиенте используется RemoteObject(). К пример, обработчик на получение
Код:

protected function onLoad(event: ResultEvent): void {
    var myList: Object = event.result;
    for each (var item: Object in myList) {
        Alert.show('имя='+item.name+', id='+item.id);
    }
}

Причем можно возвращать переменные, ассоциативные массивы любой вложенности, объекты...
Например, если возвращать из PHP array('name'=>'Какое-то имя', 'address'=>array('bldg'=>'какой-то дом', 'street'=>'какая-то улица', 'city'=>'какой-то город')), то на клиенте доступ будет удобный:
Код:

  var data: Object = event.result;
  var name: String = data.name;
  var building: String = data.address.bldg;
  var street: String = data.address.street;
  var city: String = data.address.city;

В общем, серьезная гибкость.


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

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