PDA

Просмотр полной версии : Как лучше сделать связь MySQL+PHP+XML+Flash


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

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;

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