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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 15.06.2013, 12:09
GBee вне форума Посмотреть профиль Отправить личное сообщение для GBee Найти все сообщения от GBee
  № 21  
Ответить с цитированием
GBee
 
Аватар для GBee

Регистрация: Jan 2009
Сообщений: 3,067
Записей в блоге: 3
Отправить сообщение для GBee с помощью Skype™
Сколько себя помню пхп всегда так мог. Главное кавычки не перепутать . Когда тока начинал, бесило, что иногда не срабатывает
__________________
Чтобы доказать, что вы не робот, причините вред другому человеку.

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

Регистрация: Sep 2008
Адрес: Черкассы
Сообщений: 1,167
Записей в блоге: 1
Отправить сообщение для AlexCooper с помощью ICQ Отправить сообщение для AlexCooper с помощью Skype™
Ой Я вообще перешел на NoSQL (объектно-ориентированые) хранилища и очень доволен. Гибкость структуры как по мне просто колосальная. Но не будем заниматься лирикой.
- На самом деле на сколько я понимаю каждый из пользователей запускает этот скрипт, а результаты не всегда меняются. Да и необходимость в выборе всех данных я думаю тоже отсутствует, так как никто сразу не в силе просмотреть 2500 строк, все должно быть разделено на части (страницы) в случае просмотра информации.
- Проверять если ли пользователь в базе нужно однозначно на уровне базы с правильно выставленным ключем.
- Если у Вас запись вида id1, id2 ( то-есть 1 запись равно игра между двумя пользователями ) я бы сделал ключ по типу Math.min(id1,id2)+'.'+Math.max(id1,id2) таким способом генерируя валидный ключ, ну и можно после обернуть в md5 ( это в случае если Вам нужна выборка конкретной записи ).
- Так же я бы заменил тестовое поле "nomer_kryga" на числовое и записывал бы только число (текст уже подставлял во флеше).
- поля победитель и проигравший представлял в виде его ID, имя подтягивал бы вторым запросом. ( но предварительно выбрал все нужные мне айди и одним запросом выбрал их всех)
- Плюс ко всему я бы еще не использовал xml. На пхп клиенту отдавал бы данные
PHP код:
ecgo json_encode(mysql_fetch_array($sql)); 
Что тоже бы немного освободило ресурсов как сервера так и интернет-канала.
- Да и передавал данные по amf-протоколу.
__________________
return this...


Последний раз редактировалось AlexCooper; 15.06.2013 в 12:52.
Старый 15.06.2013, 15:10
Babylon вне форума Посмотреть профиль Отправить личное сообщение для Babylon Посетить домашнюю страницу Babylon Найти все сообщения от Babylon
  № 23  
Ответить с цитированием
Babylon
[+1 25.10.13]
[+4 18.03.14]
 
Аватар для Babylon

Регистрация: Jan 2006
Адрес: Москва, Зеленоград
Сообщений: 653
Отправить сообщение для Babylon с помощью ICQ
XML составлен избыточно неправильно и что мешает делать запросы к самому xml файлу?

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

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
Цитата:
Сообщение от AlexCooper Посмотреть сообщение
- Плюс ко всему я бы еще не использовал xml. На пхп клиенту отдавал бы данные
PHP код:
ecgo json_encode(mysql_fetch_array($sql)); 
Что тоже бы немного освободило ресурсов как сервера так и интернет-канала.
Этот код диспатчит ошибку
плюс, незачем в джейсон отдавать индексы
PHP код:
echo json_encode(mysql_fetch_array($sqlMYSQL_ASSOC)); 
ну и желательно конечно сначала проверять, а будут ли вообще какие-то данные по запросу/
Или можно вообще url переменные отдавать вместо джейсона
PHP код:
echo http_build_query(mysql_fetch_array($sqlMYSQL_ASSOC)); 

Старый 17.06.2013, 01:53
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 25  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
Хех... ну, для начала, самое очевидное: возможно вам и нужно передать все 2500 записей из базы на клиент, но показать одновременно вы их не сможете никак. Даже на самых больших пользовательских мониторах у вас бы получилось по пикселу на строку, это если вертикально развернуть.
Отсюда вывод - показывайте понемногу. Более того, ни для MySQL, ни для PHP, ни для AS 2500 итераций в цикле - вообще не заметны. Но нарисовать на экране таблицу с таким количеством полей - тяжело.

Несколько замечаний по поводу связки PHP <-> AS. Во-первых, не используйте mysql_* группу функций ни для чего другого кроме какого-нибудь домашнего архива, который никому кроме вас не нужен. Эти функции передают строки серверу как есть, и это располагает к тому, чтобы злоумышленик передал с ними SQL код, который навредит базе данных. Посмотрите документацию по PDO, как альтернатива - mysqli - но PDO лучше, т.как это промышленный стандарт (более-менее), позволяет проще сменить базу данных, абстрагирует некоторые другие моменты в работе с БД. Не генрируйте XML склеиванием строк. В PHP есть сразу несколько классов которые это делают. Но, еще лучше - поищите библиотеку, которая реализует AMF формат. Это более комактный формат, тем не менее содержащий больше метаданных, чем XML, но он еще удобен тем, что он "родной" для Флеша.

Что касается SQL - пользоваться астерисками в запросах - лучше не нужно. Опять же, если задача одноразовая, то не страшно, но поддерживать код в котором поля таблицы не указаны явно очень сложно, уж поверьте... А еще лучше, возьмите книжку по базам данных, или недавно Станфордский университет проводил он-лайн курсы по базам данных. Там был базисный курс, который хорошо это объяснял. https://class2go.stanford.edu/db/Winter2013/preview/
__________________
Hell is the possibility of sanity

Старый 17.06.2013, 02:30
Babylon вне форума Посмотреть профиль Отправить личное сообщение для Babylon Посетить домашнюю страницу Babylon Найти все сообщения от Babylon
  № 26  
Ответить с цитированием
Babylon
[+1 25.10.13]
[+4 18.03.14]
 
Аватар для Babylon

Регистрация: Jan 2006
Адрес: Москва, Зеленоград
Сообщений: 653
Отправить сообщение для Babylon с помощью ICQ
Нагуглил SQLike as3

Старый 23.06.2013, 20:28
Psycho Tiger вне форума Посмотреть профиль Отправить личное сообщение для Psycho Tiger Найти все сообщения от Psycho Tiger
  № 27  
Ответить с цитированием
Psycho Tiger
 
Аватар для Psycho Tiger

блогер
Регистрация: Jun 2005
Адрес: Господи пожалуйста не Новосибирск
Сообщений: 6,598
Записей в блоге: 17
Цитата:
Посмотрите документацию по PDO, как альтернатива - mysqli
Я не пишу на PHP, но гугл предложил достаточно много полноценных ORM, с has_many из коробки и прочим.

Старый 23.06.2013, 21:24
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 28  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
ORM сам по себе не добродетель. PDO однозначно облегчает работу, его недостаток - нет возможности легально использовать какие-нибудь супер нестандартные фичи конкретной DBMS, например в MSSQL есть куча типов данных, но PDO должен поддерживать только те, которые есть и в MySQL и т.д.
ORM - это уже претензия на архитектуру. Предполагает специфическую структуру базы данных, обязывает к специфическому подходу к построению запросов. Кроме всего прочего, SQL - более выразительный язык, чем то, что можно представить через объекты и их свойства. Имитация сложных реляционных отношений в ОО может оказаться непосильным трудом / запутать.
Я видел как обычная авторизация сделаная наивно используя ORM делала более 50 запросов. Конечно, этот механизм в умелых руках может быть очень полезным, но если за него браться без опыта, то можно здорово попасть.
__________________
Hell is the possibility of sanity

Старый 23.06.2013, 22:22
Psycho Tiger вне форума Посмотреть профиль Отправить личное сообщение для Psycho Tiger Найти все сообщения от Psycho Tiger
  № 29  
Ответить с цитированием
Psycho Tiger
 
Аватар для Psycho Tiger

блогер
Регистрация: Jun 2005
Адрес: Господи пожалуйста не Новосибирск
Сообщений: 6,598
Записей в блоге: 17
Честно, я не знаю, что такое PDO, но при беглом просмотре мне показалось, что это как раз ORM =)

Ладно, тогда просто объясню свою позицию в 3 словах: MDD – это хорошо.
Претензия на архитектуру... Отчасти соглашусь. По факту, он занимается тем что удобно для программиста делает запросы к БД и складывает результаты в сущности. Почти всегда это именно то, что пришлось бы сделать если этот запрос к БД происходит (конечно, речь о выборках). Сложно ли это в сложных ситуациях? Не настолько, чтобы отказываться от ORM, реализация которого обязана иметь возможность исполнения произвольного SQL-кода. Но с всеми защитами от хакера из коробки.
Цитата:
Я видел как обычная авторизация сделаная наивно используя ORM делала более 50 запросов.
Никто не говорил о том, что владея какой-нибудь либой ORM сразу будут крутые приложения. Можно где угодно выполнять по запросу в цикле. Кстати, хорошие ORM'ы оснащены lazy-load'ом.
Я настаиваю на том, что ORM – абстракция от SQL у приложения, но не у программиста. Всегда нужно проверять что именно запросило БД у приложения просмотром сгенерированного SQL-кода. Зато если сначала сидели на РСУБД, потом перешли, например, на mongo, а потом решили сделать какие-то коллекции как "вшитые" (embed), то я на коне. И при этом я уверен, что у меня нет потенциальных дырок.

К слову, нормальный ORM должен поддерживать те типы, которые есть в языке.

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

Регистрация: May 2010
Сообщений: 543
Цитата:
Имитация сложных реляционных отношений в ОО может оказаться непосильным трудом / запутать.
Теоретически, да. Но на практике вряд ли, точнее не было критических ситуаций, хотя сложные выборки под хорошей нагрузкой присутствовали.

Цитата:
Предполагает специфическую структуру базы данных, обязывает к специфическому подходу к построению запросов
Скажите это тем, кто использует рельсы или джангу. Зато (назовем все это ORM) на себя берет из коробки львиную долю модельной логики, и не нужно париться о безопасности запросов.

Цитата:
гугл предложил достаточно много полноценных ORM, с has_many из коробки и прочим.
для php уже придумано не хуже чем на ROR. Гуглите Yii ActiveRecord, Kohana ORM, symfony2 doctrine.

Сами используем для Python Джангу и для php Yii. Это очень хорошие штуки.
__________________
Вы грабите бедных людей. Парень со свирелью накажет вас. Хонгильдон (с)

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

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

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


 


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


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