Форум программистов и сисадминов CyberForum.ru
Вернуться   Форум программистов и сисадминов CyberForum.ru > Форум Форум web-программистов > Форум PHP > Форум PHP для начинающих
Восстановить пароль Регистрация

Ответ Создать новую тему
 
Старый 30.11.2012, 21:07   #1
nepster
Форумчанин
 
Аватар для nepster
 
Регистрация: 19.09.2009
Сообщений: 823
Репутация: 58 (58)
Лучшие ответы: 1
Группа пользователей в реальном времени / PHP для начинающих

Получается есть у пользователей группа. Она определяется в реальном времени.

Тоесть к примеру есть 2 группы. Активный и Не активный.

Активный, это тот кто за 16 дней сделал хоть 1 регистрацию.
Неактивный, кто за 16 дней не сделал ничего.

Группа определяется функцией. И возникла необходимость вывести всех активных и неактивных отдельно. Пользователей много, поэтому нужно пагинация.

Тут возникает проблема, брать например 100 пользователей, отсеивать всех активных к примеру и показывать 40 неактивных и так на каждой странице будет разное число пользователей.


Либо сделать в базе поле group и каждые 20 минут cron заданием проверять группу ?

Подскажите пожалуйста как поступить эффективнее всего ?

(есть момент. Если пользователь неактивный и в любой момент сделает регистрацию, тоесть пригласит кого-то, он сразу становится активным. Вот почему в реальном времени определяется группа.)
Старый 30.11.2012, 23:47   #2
fa2m
Форумчанин
 
Аватар для fa2m
 
Регистрация: 27.08.2012
Сообщений: 853
Репутация: 350 (274)
Лучшие ответы: 3
Группа пользователей в реальном времени

Сделайте по cron раз в сутки проверку. Я не знаю как там у Вас построен алгоритм, поэтому больше добавить не могу, но дополнительное поле активный/неактивный нужно добавить.
Другие темы раздела Форум программистов PHP. Вопросы начинающих по PHP. Помощь в решении задач на PHP.
Как timestamp перевести в дату? PHP
Вечер добрый. Допустим я хочу узнать какое время было 999.999 секунд назад. Из "данномоментной" метки вычитаю 999.999 и получаю метку того времени, а как её перевести в дату со временем? ...мне понятное дело, нужна григорианская дата.
filesize() пишет stat failed for имя_файла PHP
$i = 0; $handle = opendir('files'); echo "<table border='1'><tr><th>№</th><th>Имя файла</th><th>Размер файла</th></tr>"; while ($file = readdir($handle)) { if ($file !='.' && $file!='..') { $func = $file; echo "<tr><th>$i</th><th>$func</th><th>".filesize($func) ."</th></tr>"; $i++;
Старый 03.12.2012, 02:33  [ТС]   #3
nepster
Форумчанин
 
Аватар для nepster
 
Регистрация: 19.09.2009
Сообщений: 823
Репутация: 58 (58)
Лучшие ответы: 1
Группа пользователей в реальном времени

Смотрите есть 3 группы пользователей.

Активный, не активный, и хитрожопый (будем так его называть).

есть условие, в течении 15 дней пригласить 1 реферала.

активный:
- не истек таймер
- набрал больше 3 очков рейтинга

не активный
- истек таймер, при этом рейтинг меньше 3 очков (пригласил меньше 3) 3 - условие компании

хитрожопый
- пригласил 3 человек (выполнил условие по рейтингу), но эти никого не пригласили и у них истек таймер. (тоесть он вместо рефералов сам себе зарегал аккаунты)

В данный момент группы определяются в реальном времени, тоесть id пользователя проходит через функцию, функция проверяет даты, таймеры, проверяет гео приглашенных, приглашенных и так далее. Тоесть не много тормозят систему.


Я думаю создать поле group в базе и файлик, который бы работал примерно так:

- берем всех пользователей, прогоняем по циклу
- пропускаем каждого через функцию, получаем группу
- обновляем поле в базе с группой


и файлик запускается каждые 10 - 20 минут.


Так как отталкиваясь от групп пользователи видят определенные вещи на сайте.


Что думаете ?
Старый 03.12.2012, 02:54   #4
fa2m
Форумчанин
 
Аватар для fa2m
 
Регистрация: 27.08.2012
Сообщений: 853
Репутация: 350 (274)
Лучшие ответы: 3
Группа пользователей в реальном времени

У Вас откровенно коммерческий проект, а хотите бесплатную консультацию! Я думаю что в третью группу нужно вписать Вас (без обид)
Старый 03.12.2012, 02:54
Google
Объявления
Старый 03.12.2012, 02:59   #5
DrobyshevAlex
Форумчанин
 
Регистрация: 31.05.2012
Сообщений: 2,956
Репутация: 1129 (1079)
Лучшие ответы: 14
Группа пользователей в реальном времени

А что мешает проверять дату прям в запросе?
Ну или добавить поле в таблицу юзеров, last_active типа timestams и писать туда дату последней активности.
то етсь пришел реферал, зарегистрировался, мы обновили юзеру дату на текущую.
Старый 03.12.2012, 20:50  [ТС]   #6
nepster
Форумчанин
 
Аватар для nepster
 
Регистрация: 19.09.2009
Сообщений: 823
Репутация: 58 (58)
Лучшие ответы: 1
Группа пользователей в реальном времени

DrobyshevAlex

В данный момент так и есть

Добавлено через 13 минут
fa2m

я не прошу готовое решение. Я просто спрашиваю как лучше сделать. Если у вас в магазине девушка спросил, какая кофточка ей больше идет, тоже вмз запросите ?
Старый 03.12.2012, 21:19   #7
fa2m
Форумчанин
 
Аватар для fa2m
 
Регистрация: 27.08.2012
Сообщений: 853
Репутация: 350 (274)
Лучшие ответы: 3
Группа пользователей в реальном времени / PHP для начинающих

Цитата Сообщение от nepster Посмотреть сообщение

я не прошу готовое решение. Я просто спрашиваю как лучше сделать. Если у вас в магазине девушка спросил, какая кофточка ей больше идет, тоже вмз запросите ?

Не по теме:

Конечно, 5 WMZ! Примерить? 10 WMZ!

Старый 03.12.2012, 21:19
Yandex
Объявления
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать новую тему

Похожие темы
Тема Автор
FreeBSD Синхронизация в реальном времени
Доброго дня! Есть такая тема. Два сервера (апач + mysql), диры с веб содержимым синхронизируются rsync, базы реплицируются, одна рабочая, другая резервная. На входе стоит третий сервер балансировщик, разруливающий нагрузку между двумя вэбами. Вопрос. Существует ли такое решение, позволяющее...
Alex_VP
Delphi для начинающих Checkbox в реальном времени
Хочу сделать такую штуку, есть checkbox и edit (не активен); при нажатии на checkbox, edit становился активным, снимаем галочку с checkbox - снова неактивен вот код: procedure TForm1.FormCreate(Sender: TObject); begin if CheckBox1.Checked=True then Edit1.Enabled:=true else...
Nenado
ActionScript AS 3.0 Игра в реальном времени
Как реализовать в ac3 перемешение в реальном времени, при это чтоб все сохранялась на сервере и другие игроки могли видить это перемешение?
preparir
Turbo Pascal Задание:Смоделировать систему, указанную в варианте, в реальном времени (или, по желанию, и в реальном, и при помощи квантования времени) и провести
Turbo pascal Универсальный магазин Рассматриваются кассовые аппараты универсама. Каждый покупатель, имеющий непустую кошелку, отправляется к кассам и занимает очередь. Время обработки покупателя кассой зависит от объема кошелки и определяется функцией. Время отдыха кассирши между обработкой...
Zainap
Turbo Pascal Смоделировать систему, указанную в варианте, в реальном времени (или, по желанию, и в реальном, и при помощи квантования времени
Тещины блины - Теща печет блины, укладывая их в глубокие кастрюли. Зять с отменным аппетитом эти блины из кастрюли вытаскивает и съедает. Время поедания блина выражается функцией, зависящей от толщины блина. Время отдыха между съеданием блинов также определяется функцией. Глубина кастрюли может...
Zainap
Опции темы

Текущее время: 03:58. Часовой пояс GMT +4.

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.7 PL3
Copyright ©2000 - 2014, vBulletin Solutions, Inc.