Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   AS3 обрабатывает PHP запрос 1 раз... В чем проблема? (http://www.flasher.ru/forum/showthread.php?t=145142)

masterok87 30.09.2010 12:15

AS3 обрабатывает PHP запрос 1 раз... В чем проблема?
 
Очень прошу помощи! Уже 2 дня ищу ответ и не могу решить проблему...
Есть AS3 клиент, который отсылает и принимает данный от MySQL через PHP и вроде все правильно, но AS3 обрабатывает лишь один запрос за сессию работы программы, т.е. если я принимаю данные с БД, что-то в ней меняю и не перезапуская клиента делаю запрос, изменения не отображаются... Что это может быть?

PHP проверял в браузере, т.е. если давать такой-же запрос через браузер, и меняя БД обновлять страничку все отображается корректно...
Кстати с добавлением данных то-же самое, через AS3 ток 1 раз, а в браузере все ок


PHP код:

<?php
$hostname 
"localhost";
$username "root";
$password "mypassword"
$dbName "xo";

mysql_connect($hostname,$username) OR DIE("... ");
mysql_select_db($dbName) or die(mysql_error());

mysql_query("SET NAMES 'utf8'");
mysql_query("SET CHARACTER SET 'utf8'");


if (
$_GET['act'] == 'AddTable')
{
$query "SELECT * FROM tables";

$res mysql_query($query) or die(mysql_error());

$num mysql_num_rows($res);

$query "INSERT INTO tables VALUES($num+1)";

mysql_query($query) or die(mysql_error());
}


if (
$_GET['act'] == 'getTables')
{
$query "SELECT * FROM tables";

$res mysql_query($query) or die(mysql_error());

while(
$rows mysql_fetch_array($res))
{
echo 
$rows["tables"];
echo 
'_';
}
}

?>

Вывод из БД:

Код AS3:

        reqest = new URLRequest(xo.SERVER + '?act=getTables');
                loader = new URLLoader();
                //reqest.method = URLRequestMethod.GET;
                loader.addEventListener(Event.COMPLETE, tablesLoaded);
                loader.load(reqest);
 
 
                }
 
                private function tablesLoaded(e:Event):void
                {
                        trace (e.target.data);
                }

Добавление в БД:
Код AS3:

 
                uloader = new URLLoader();
                        reqest = new URLRequest(xo.SERVER + '?act=AddTable');
                        uloader.load(reqest);

Помогите пожжжжалуйста!!!

Bgg 30.09.2010 12:43

К запросу каждый раз добавлять случайный параметр пробовали?
Код AS3:

reqest = new URLRequest(xo.SERVER + '?act=AddTable' + "&timestamp="+Math.round(Math.random() * 10000)).toString());


masterok87 30.09.2010 13:34

ДААААА СПАСИБО!!! Надо ведь какая мелочь, а в образцах и уроках не указывается нигде! Благодарю от все души! ))

alatar 30.09.2010 18:00

Цитата:

а в образцах и уроках не указывается нигде!
Потому, что это костыль. Достаточно отправить с сервера заголовок запрещающий кэширование этих данных.

iillyyaa 30.09.2010 18:14

первой строчкой в пхп добавьте вот это

PHP код:

header("Pragma: no-cache"); 

ну и на всякий случай передавайте случайное значение параметра...

лишним не будет :)

gloomyBrain 30.09.2010 18:20

Цитата:

Достаточно отправить с сервера заголовок запрещающий кэширование этих данных.
Или сделать POST запрос с клиента - они не кешируются


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

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