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

Вернуться   Форум Flasher.ru > Flash > Серверные технологии и Flash

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему  
Старый 14.06.2013, 23:11
Fartoviy_Spec вне форума Посмотреть профиль Отправить личное сообщение для Fartoviy_Spec Найти все сообщения от Fartoviy_Spec
  № 14  
Ответить с цитированием
Fartoviy_Spec

Регистрация: Mar 2012
Сообщений: 36
Вот так выглядит кусок БД:

Я формирую xml, через php:
PHP код:
<?php
...
$sql=@mysql_query('SELECT * FROM `'.$mysql_table.'`') or die(mysql_error());
echo 
"<?xml version='1.0' encoding='UTF-8' ?>";
echo 
"<response>";
for (
$i=0;$i<mysql_num_rows($sql);$i++)
{
$res=mysql_fetch_array($sql);
echo 
"<block>";
echo 
"<turnir>".$res['turnir']."</turnir>";
echo 
"<nomer_kruga>".$res['nomer_kruga']."</nomer_kruga>";
echo 
"<pobeditel>".$res['pobeditel']."</pobeditel>";
echo 
"<proigravshiy>".$res['proigravshiy']."</proigravshiy>";
echo 
"<shet>".$res['shet']."</shet>";
echo 
"<total>".$res['total']."</total>";
echo 
"<ochki_pobeditel>".$res['ochki_pobeditel']."</ochki_pobeditel>";
echo 
"<ochki_proigravshiy>".$res['ochki_proigravshiy']."</ochki_proigravshiy>";
echo 
"</block>";
}
echo 
"</response>";
?>
И получившийся xml полностью загружаю в приложение. Приложение я делаю для себя, то есть денвер использую просто для того, чтобы была возможность работать с БД.

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

В качестве примера вот эта функция:
Код AS3:
function ARR_IGROKOV():void
	{
		var win_zanos = false;
		var lose_zanos = false;
		arr_igrokov.push(String(xmllist[0].pobeditel));
		for (var i=0; i<xmllist.length(); i++)
		{
			mass_matchey.push(String(xmllist[i].pobeditel),String(xmllist[i].proigravshiy));
			win_zanos = false;
			lose_zanos = false;
			for (var t=0; t<arr_igrokov.length; t++)
			{
				if (String(xmllist[i].pobeditel)==arr_igrokov[t])
				{
					win_zanos = true;
				}
				if (String(xmllist[i].proigravshiy)==arr_igrokov[t])
				{
					lose_zanos = true;
				}
 
				if ((win_zanos==true)&&(lose_zanos==true))
				{
					break;
				}
			}
			if (win_zanos==false)
			{
				arr_igrokov.push(String(xmllist[i].pobeditel));
			}
			if (lose_zanos==false)
			{
				arr_igrokov.push(String(xmllist[i].proigravshiy));
			}
		}
		arr_igrokov.sort();
	}
Эта операция работает, но на других более громоздких вычислениях происходит ошибка "превышено время выполнения".
Я понимаю, что как то я не правильно делаю, что гружу всю БД, но я не понимаю как быть по другому.
Решение разбивать пачками конечно есть, то ест цикл брать не 2500, а 5 циклов по 500 строк например, как говорил maincode, но это все таки как то не оптимально, да и наверно не везде получится применить.
Миниатюры
Нажмите на изображение для увеличения
Название: БД.PNG
Просмотров: 222
Размер:	31.7 Кб
ID:	29700  

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

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

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


 


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


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