PDA

Просмотр полной версии : Помогите с mysql+php+xml+as3


mdimaas
08.09.2010, 19:25
Здравствуйте!

У меня такая задача я сделал флэш видео плеер с плейлистом, плейлист загружаю из бд через php в xml и во флэш, при такой загрузке у меня выдает ошибку:

TypeError: Error #1088: Разметка в документе, следующим за корневым элементом, должна быть в правильном формате.
at flv_player_finish_fla::MainTimeline/dataLoaded()
at flash.events::EventDispatcher/dispatchEventFunction()
at flash.events::EventDispatcher/dispatchEvent()
at flash.net::URLLoader/onComplete()

а если создаю файл сам ручками то все нормально работает:confused:

вот код каторым я создаю xml
check.php:
<?php

header ( "Content-type: text/xml" );

include("db.php");

$query = mysql_query("SELECT * FROM video ORDER BY id DESC LIMIT 0, 5");
$check = mysql_fetch_array($query);


$xml_create = "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n";
$xml_create .= "<videos>\n";
do {
$xml_create .= "\t<video_path>".$check['url']."</video_path>\n" ;
$xml_create .= "\t<video_title>".$check['title']."</video_title>\n";
$xml_create .= "\t<date_d>".$check['date']."</date_d>\n\n" ;
}
while ($check = mysql_fetch_array($query));
$xml_create .= "</videos>";

echo $xml_create;

?>


а вот что пишу во фэше:

var xmlURLLoader:URLLoader = new URLLoader();
var xmlURLRequest:URLRequest = new URLRequest("check.php");
xmlURLLoader.load(xmlURLRequest);
xmlURLLoader.addEventListener(Event.COMPLETE,dataLoaded);


function dataLoaded(event:Event):void{
var theXMLData:XML = new XML(xmlURLLoader.data);
theXMLData.ignoreWhite = true;
var a:Number = theXMLData.video_path.length();

while(b<a){
videoList.push(theXMLData.video_path[b]);
titleList.push(theXMLData.video_title[b]);
dateList.push(theXMLData.date_d[b])

with(holder){
var vidTemp = new bgk();
vidTemp.x = 0;
vidTemp.y = b*72;

vidTemp.titleBox.text = titleList[b];
vidTemp.dateBox.text = dateList[b];

vidTemp.flvPathVar = videoList[b];

addChild(vidTemp);
}

b= b+1;
}
flvControl.source = videoList[videoIndex];
artistVar = titleList[videoIndex]
scroller.source = holder;

}

Уже несколько дней мучаюсь :(

Подскажите пожалуйста в чем заключается ошибка??? Заранее большое спасибо!!!

e_gamer
08.09.2010, 21:59
Рекомендую такую конструкцию:

while ($row = mysql_fetch_assoc($result)) {
........блок выполнения
}


Так же советую применять классы для работы с XML (DOM-модель).

mdimaas
08.09.2010, 23:21
Так же советую применять классы для работы с XML (DOM-модель).

Вы имеете ввиду, вместо этого:
videoList.push(theXMLData.video_path[b]);
titleList.push(theXMLData.video_title[b]);
dateList.push(theXMLData.date_d[b])

писать вот так:
videoList.firstChild.ChildeNotes.valueof

что типа такого?

etc
08.09.2010, 23:30
Для начала неплохо было бы вывести в трейс xmlURLLoader.data.

e_gamer
09.09.2010, 03:47
Небольшая справка (http://phpclub.ru/detail/article/2003-05-12)

mdimaas
09.09.2010, 17:53
Для начала неплохо было бы вывести в трейс xmlURLLoader.data.


Спасибо, я сделал, оказывается надо было указать полный адрес к пхп:)