Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Указатель на статус

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
nepster
Отправлено: 10 Ноября, 2012 - 01:20:23
Post Id



Частый гость


Покинул форум
Сообщений всего: 195
Дата рег-ции: Июль 2012  


Помог: 0 раз(а)




Есть условие, к примеру через 10 дней поставить статус неактивный.

Подскажите пожалуйста как будет лучше:


1) Постоянно сравнивать даты и тем самым определять статус
2) Создать дополнительное поле статус, и запустить крон, который будет выполняться раз в день к примеру и выставлять этот статус.
(Добавление)
или может какой-то 3 вариант ?
 
 Top
Wol_fi
Отправлено: 10 Ноября, 2012 - 07:08:59
Post Id


Новичок


Покинул форум
Сообщений всего: 60
Дата рег-ции: Февр. 2012  


Помог: 2 раз(а)




Если есть возможность запускать по крону - то конечно лучше написать скрипт, который будет дергаться кроном. А так можно где-нить в index.php примерно такое написать, предварительно создав файл time.

PHP:
скопировать код в буфер обмена
  1.  
  2. $time = file_get_contents('time');
  3. if((time()-$time) > (60*60*24))
  4. {
  5. //тут код меняющий статус
  6. }
  7.  
 
 Top
halsoft
Отправлено: 10 Ноября, 2012 - 07:10:36
Post Id



Гость


Покинул форум
Сообщений всего: 94
Дата рег-ции: Нояб. 2012  
Откуда: The Land of Chechens


Помог: 3 раз(а)




Создаете поле, например, activity. И проверяете запросом в базу (sql же?)

CODE (SQL):
скопировать код в буфер обмена
  1. SELECT activity FROM таблица


И потом в скрипте проверяете

PHP:
скопировать код в буфер обмена
  1. if($user['activity']<time()-864000) {
  2.  
  3. echo 'Пользователь неактивный';
  4.  
  5. //и прочие действия
  6.  
  7. }


Где 864000 - это 10 суток в секундах.

P.S. не забудьте обновлять поле activity у активных пользователей, то бишь

CODE (SQL):
скопировать код в буфер обмена
  1. UPDATE таблица SET activity = time() WHERE id = Айди_пользователя

(Отредактировано автором: 10 Ноября, 2012 - 07:13:34)



-----
Хорошие дела улучшают настроение, делают жизнь счастливей, а людей человеками.
 
 Top
nepster
Отправлено: 10 Ноября, 2012 - 17:16:24
Post Id



Частый гость


Покинул форум
Сообщений всего: 195
Дата рег-ции: Июль 2012  


Помог: 0 раз(а)




Вот этот вариант сейчас и есть.


я вот думал как будет лучше 1 или мой предложенный 2
 
 Top
avtor.fox
Отправлено: 10 Ноября, 2012 - 18:11:13
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2083
Дата рег-ции: Март 2012  
Откуда: Воронеж


Помог: 50 раз(а)




В Вашем случае метка и ненужна то. Так как у Вас условие -
Если пользователя нет более 10 дней, то статус "неактивен",
в противном случае он активен.

CODE (SQL):
скопировать код в буфер обмена
  1. SELECT * FROM `table` WHERE `timestamp` < ".time() - (60*60*24*10)."


К сожалению нет MySQL под рукой что бы проверить родные DAY, MONTH и прочее Улыбка
 
 Top
nepster
Отправлено: 10 Ноября, 2012 - 19:08:30
Post Id



Частый гость


Покинул форум
Сообщений всего: 195
Дата рег-ции: Июль 2012  


Помог: 0 раз(а)




ну это понятно, спасибо. Тут я шарю =).
Меня так чисто теория интересует.

Окей хорошо, а если бы была ситуация, где несколько статусов.

К примеру:
5 дней не активен - средняя активность
10 дней не активен - слабая активность
20 дней не активен - нет активности
30 дней не активен - не активный пользователь


Тут бы уже подошла метка как я понял ?
 
 Top
avtor.fox
Отправлено: 10 Ноября, 2012 - 19:17:18
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2083
Дата рег-ции: Март 2012  
Откуда: Воронеж


Помог: 50 раз(а)




Дело вот в чём. Если у Вас на странице будет ну хотя бы 100 пользователей в выводе, то для пыхи это сущий пустяк. Не заморачивайтесь.
 
 Top
nepster
Отправлено: 10 Ноября, 2012 - 21:49:45
Post Id



Частый гость


Покинул форум
Сообщений всего: 195
Дата рег-ции: Июль 2012  


Помог: 0 раз(а)




1кк пользователей
 
 Top
halsoft
Отправлено: 10 Ноября, 2012 - 21:57:32
Post Id



Гость


Покинул форум
Сообщений всего: 94
Дата рег-ции: Нояб. 2012  
Откуда: The Land of Chechens


Помог: 3 раз(а)




nepster пишет:
1кк пользователей


На одну страницу?!


-----
Хорошие дела улучшают настроение, делают жизнь счастливей, а людей человеками.
 
 Top
nepster
Отправлено: 10 Ноября, 2012 - 22:13:01
Post Id



Частый гость


Покинул форум
Сообщений всего: 195
Дата рег-ции: Июль 2012  


Помог: 0 раз(а)




а не не, это всего.

На одну страницу максимум 100 да.

обычно от 10 до 100.
 
 Top
halsoft
Отправлено: 10 Ноября, 2012 - 22:24:39
Post Id



Гость


Покинул форум
Сообщений всего: 94
Дата рег-ции: Нояб. 2012  
Откуда: The Land of Chechens


Помог: 3 раз(а)




Тогда ничего страшного. Если даже 1к записей, не стоит об этом сильно задумываться, ведь здесь нет сложных вычислений и циклических запросов в базу Подмигивание


-----
Хорошие дела улучшают настроение, делают жизнь счастливей, а людей человеками.
 
 Top
nepster
Отправлено: 11 Ноября, 2012 - 21:54:37
Post Id



Частый гость


Покинул форум
Сообщений всего: 195
Дата рег-ции: Июль 2012  


Помог: 0 раз(а)




а с точки зрения работы?

Вот к примеру мне нужно получить массив всех неактивных пользователей на сайте.
а пользователей 1 кк.
 
 Top
halsoft
Отправлено: 11 Ноября, 2012 - 22:47:06
Post Id



Гость


Покинул форум
Сообщений всего: 94
Дата рег-ции: Нояб. 2012  
Откуда: The Land of Chechens


Помог: 3 раз(а)




nepster пишет:
а с точки зрения работы?

Вот к примеру мне нужно получить массив всех неактивных пользователей на сайте.
а пользователей 1 кк.


Хоть 1к, хоть 100к, mysql будет работать очень шустро с вашими неактивными пользователями )

Главное, чтоб вы правильную индексацию делали )

(Отредактировано автором: 11 Ноября, 2012 - 22:53:54)



-----
Хорошие дела улучшают настроение, делают жизнь счастливей, а людей человеками.
 
 Top
nepster
Отправлено: 12 Ноября, 2012 - 12:27:47
Post Id



Частый гость


Покинул форум
Сообщений всего: 195
Дата рег-ции: Июль 2012  


Помог: 0 раз(а)




все понял, спасибо.

А в каких тогда случаях лучше метку ставить ?
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB