Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 02.11.2011, 09:41
imena вне форума Посмотреть профиль Отправить личное сообщение для imena Найти все сообщения от imena
  № 1  
Ответить с цитированием
imena
[+1.3 07.12.11]

Регистрация: Feb 2011
Сообщений: 121
По умолчанию Прием данных из PHP

Всем привет!

Объясните пожалуйста, как отсортировать полученные данные из PHP.

Код AS3:
 
loader.dataFormat = URLLoaderDataFormat.VARIABLES; 
request.url = "http://127.0.0.1/php.php?"+Math.random(); 
request.method = URLRequestMethod.POST; 
request.data = variables; 
 
................................................................................
 
 
private function completeListener(e:Event):void {
 		trace(loader.data.firstName); 			
    		trace(loader.data.lastName); 			
}
PHP код:

    $id
=$HTTP_POST_VARS[id];
    
$link mysql_connect("localhost""root","tttt") or die("Could not connect");
    if( !
$link ) die( mysql_error() );
    
    
mysql_select_db('sampdb'$link);
    
$res mysql_query("select * from users;");
    if(!
$res)
    {
        echo 
"db is empty";
        
mysql_close($link);
        exit();
    }
    
    
$rows mysql_num_rows($res);
    
    for(
$i 0$i $rows$i++)
    {
        
$row mysql_fetch_array($res);
        echo 
"firstName=".$row['first_name']."&lastName=".$row['last_name'];
    }
    
    
mysql_close($link); 
В рез-те, флэш выдает следующее:

Ivan
IvanovfirstName=Petr,PetrovfirstName=Sidr,Sidorov

причем, сам PHP выдает эту инфу в виде:

firstName=Ivan&lastName=IvanovfirstName=Petr&lastName=PetrovfirstName=Sidr&lastName=Sidorov

Не могу понять, почему у меня во flash firstName показывается, а lastName - нет.

Старый 02.11.2011, 10:21
Denis_Pryanikov вне форума Посмотреть профиль Отправить личное сообщение для Denis_Pryanikov Найти все сообщения от Denis_Pryanikov
  № 2  
Ответить с цитированием
Denis_Pryanikov
 
Аватар для Denis_Pryanikov

Регистрация: Aug 2011
Адрес: Урал
Сообщений: 43
Из php во flash можно передавать строку, но не массив. Пробуйте формировать строковую переменную с разделителем (например | ), а во флеше эту строку разделять через split(). Например
PHP код:
$returnVars['blabla']="1|2|3|4";
$returnString http_build_query($returnVars); 
echo 
$returnString
Код AS3:
...
var fromPhp = evt.target.data.blabla;
var arr : Array = fromPhp.split("|");

Старый 02.11.2011, 10:35
carrotoff вне форума Посмотреть профиль Отправить личное сообщение для carrotoff Найти все сообщения от carrotoff
  № 3  
Ответить с цитированием
carrotoff
 
Аватар для carrotoff

Регистрация: May 2010
Сообщений: 543
Цитата:
Пробуйте формировать строковую переменную с разделителем (например | ), а во флеше эту строку разделять через split(). Например
Очень странный подход.
А зачем по вашему придумали JSON и XML?
__________________
Вы грабите бедных людей. Парень со свирелью накажет вас. Хонгильдон (с)

Старый 02.11.2011, 10:41
Denis_Pryanikov вне форума Посмотреть профиль Отправить личное сообщение для Denis_Pryanikov Найти все сообщения от Denis_Pryanikov
  № 4  
Ответить с цитированием
Denis_Pryanikov
 
Аватар для Denis_Pryanikov

Регистрация: Aug 2011
Адрес: Урал
Сообщений: 43
Вы считаете, что он не имеет место быть?

Старый 02.11.2011, 10:44
Genzo вне форума Посмотреть профиль Отправить личное сообщение для Genzo Посетить домашнюю страницу Genzo Найти все сообщения от Genzo
  № 5  
Ответить с цитированием
Genzo
 
Аватар для Genzo

блогер
Регистрация: Feb 2010
Адрес: MSK
Сообщений: 859
Записей в блоге: 3
Отправить сообщение для Genzo с помощью ICQ Отправить сообщение для Genzo с помощью Skype™
А если потом потребуется еще делать вложения?
__________________
Gamedev != Gaming (http://twitter.com/#!/GenzoDev). Don't forget to [+] if it works.

Старый 02.11.2011, 11:07
goodguy вне форума Посмотреть профиль Найти все сообщения от goodguy
  № 6  
Ответить с цитированием
goodguy
Banned
[+1 05.11.11]
[+1 09.08.11]

Регистрация: Jan 2010
Адрес: РФ. Кемеровская область
Сообщений: 3,243
Цитата:
В рез-те, флэш выдает следующее:
У меня как-то раз было такое. Причина была в том, что у меня весь код php файла, который должет был отдавать данные, был написан не в одном теге <?php ?> а в двух, т.е.
Код AS3:
<?php 
 // тут код, который принимал запрос из флеша
?>
 
<?php 
 // а тут, который отдавал данные
?>
В результате (выявил это через многие мучения )) оказалось, что данные приходили с добавлением каких-то левых символов. Грубо говоря вместо lastName приходило что-то типа
Код AS3:
.   ^ 0_ lastName
Причина так и осталась для меня загадкой. Может эклипс что-то мудрила с исходниками, может сервер тупил.
Поместил и код приемник и код отдающий данные в один блок, и проблема исчезла.

Цитата:
Из php во flash можно передавать строку, но не массив.
У автора строка и передается

Старый 02.11.2011, 11:12
imena вне форума Посмотреть профиль Отправить личное сообщение для imena Найти все сообщения от imena
  № 7  
Ответить с цитированием
imena
[+1.3 07.12.11]

Регистрация: Feb 2011
Сообщений: 121
#goodguy
У меня все в одном теге... powered by dreamveaver.
Черт... всю ночь сидел... как идиот... скоро Ctrl+Enter сломается

#Denis_Pryanikov
Попробую последовать вашему совету, НО... все же хочется какой-нибудь другой метод(если конечно он есть) типа крэкс-пэкс-фэкс и оп-ля... "а ручки то вот они"...

Когда я делаю запрос на определенные данные...например передаю ID и из базы РНР вытаскивает только одно значение фестнэйм и лайстнэйм...то все отлично... а вот когда селект олл... тогда вот и возникает такая петрушка...
Лан... буду дальше разбираться... потом отпишусь
Всем спасибо


Последний раз редактировалось imena; 02.11.2011 в 11:16.
Старый 02.11.2011, 11:27
carrotoff вне форума Посмотреть профиль Отправить личное сообщение для carrotoff Найти все сообщения от carrotoff
  № 8  
Ответить с цитированием
carrotoff
 
Аватар для carrotoff

Регистрация: May 2010
Сообщений: 543
А почему нельзя сделать по-нормальному, например, как-нибудь вот так:

PHP код:
$arrResult = array();
$sql "SELECT * FROM `users` ORDER BY userID DESC";

if(!
$q mysql_query($sql)){
     
$arrResult['error'] = 1;
     
$arrResult['error_message'] = "Something wrong";
     echo 
json_encode($arrResult);
     return;
}

$arrResult['error'] = 0;
while(
$res mysql_fetch_assoc($q)){
      
$arrResult[] = $res;
}

echo 
json_encode($arrResult); 
А в клиенте просто посмотреть что приходит:

Код AS3:
private function completeListener(e:Event):void {
     trace(loader.data); 			
}
__________________
Вы грабите бедных людей. Парень со свирелью накажет вас. Хонгильдон (с)

Старый 02.11.2011, 11:55
imena вне форума Посмотреть профиль Отправить личное сообщение для imena Найти все сообщения от imena
  № 9  
Ответить с цитированием
imena
[+1.3 07.12.11]

Регистрация: Feb 2011
Сообщений: 121
Я про JSON узнал пару дней назад... у меня за месяц тут и AS и PHP и MeSQL...башка лопается уже )))... теперь вот JSON...

Старый 02.11.2011, 12:39
carrotoff вне форума Посмотреть профиль Отправить личное сообщение для carrotoff Найти все сообщения от carrotoff
  № 10  
Ответить с цитированием
carrotoff
 
Аватар для carrotoff

Регистрация: May 2010
Сообщений: 543
Ну так лучше сразу пытаться делать по фэн шую, чем набивать себе шишки печальными методами.
__________________
Вы грабите бедных людей. Парень со свирелью накажет вас. Хонгильдон (с)

Создать новую тему Ответ Часовой пояс GMT +4, время: 22:00.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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