Ошибка:
TypeError: Error #1009: Не удается вызвать свойство или метод со ссылкой на объект "null".
at record_fla::MainTimeline/frame1()
Я, как новичок, решила попробовать на основе источника проверить доступ к MySQL. На сайте ссылки недоступны на скачивания файлов. Чуток изменила я в программе, т.к. не раз выдавали ошибки после компиляции... дело в dataGrid - item. Почему данные из БД не выводятся... Что не так сделала я?
Источник:
http://rad-line.blogspot.ru/2009/03/as3-mysql-php.html
Код AS3:
import fl.controls.DataGrid;
function readRecord():void
{
var readRequest:URLRequest = new URLRequest();
var readLoader:URLLoader = new URLLoader();
readRequest.url='records.php'+'?command=readRecord&'+Math.random();
readLoader.addEventListener(Event.COMPLETE, allLoad);
readLoader.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
function ioErrorHandler(e:IOErrorEvent):void
{
trace("Ошибка чтения");
}
var myXML:XML;
function allLoad(e:Event):void
{
var tempLoader:URLLoader=URLLoader(e.target);
myXML=new XML(tempLoader.data);
if (myXML!="")
{
for each (var item:XML in myXML.record)
{
trace("Имя:"+item.name); trace("Очки:"+item.points);//выводим данные
}
}
else
{
trace("Нет данных");
}
}
readLoader.load(readRequest);
}
function writeRecord(name:String, points:int):void
{
var saveRequest:URLRequest = new URLRequest();
var saveLoader:URLLoader = new URLLoader();
saveRequest.url='records.php'+'?command=writeRecord&name='+name+'&points='+points;
saveLoader.addEventListener(Event.COMPLETE, allSave);
saveLoader.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
function ioErrorHandler(e:IOErrorEvent):void
{
trace("Ошибка записи");
}
function allSave(e:Event):void
{
trace("Информация сохранена");
}
saveLoader.load(saveRequest);
}
var gridRecord:DataGrid = new DataGrid;
var i: uint;
gridRecord.columns=["Место","Имя","Очки"];
//Добавление полей
//gridRecord.addItem({Место:i, Имя:item.name, Очки:item.points});
var item:Object = {Место:i, Имя:item.name, Очки:item.points};
gridRecord.addItem(item);
//Удаление всех полей
gridRecord.removeAll();
addChild(gridRecord);
PHP код:
<?php
header("Content-Type: text/xml");
/*
//////Connect to MySQL//////
mysql_connect("localhost", "root", "") or die (mysql_error()); //Открывает соединение с сервером MySQL
mysql_select_db("record_table") or die (mysql_error()); //Выбирает базу данных MySQL
mysql_query("SET NAMES 'utf8'"); //Посылает запрос MySQL
*/
$command = isset($_GET['command']) ? $_GET['command'] : "";
$name = isset($_GET['name']) ? $_GET['name'] : "";
$points = isset($_GET['points']) ? $_GET['points'] : "";
$servername="localhost";// ваш сервер - обычно localhost
$user="root"; //ваш_пользователь
$password=""; //ваш_пароль
$dbname="record_table"; //ваша_база_данных
$dbserver = mysql_connect($servername, $user, $password);
mysql_select_db($dbname, $dbserver);
mysql_query("SET NAMES utf8");
if($command=="readRecord")
{
$query = "SELECT * FROM record ORDER BY points DESC LIMIT 0, 8";
$result = mysql_query($query);
echo '<?xml encoding="utf-8" version="1.0" ?><records>';
while($myrow = mysql_fetch_array($result))
{
echo '<record>';
echo '<name>'.$myrow['name'].'</name>';
echo '<points>'.$myrow['points'].'</points>';
echo '</record>';
}
echo '</records>';
}
if($command=="writeRecord")
{
$query="INSERT INTO record (name, points) VALUES ('$name', '$points')";
$result = mysql_query($query);
}
mysql_close($dbserver);
?>
Код:
<?xml version="1.0" encoding="utf-8"?>
<records>
<record>
<name>Нина</name>
<points>1232</content>
</record>
<record>
<name>Инна</name>
<points>1029</content>
</record>
<record>
<name>Вера</name>
<points>863</content>
</record>
</records>