[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Начисление за время
Димон
Собственно не пойму как можно сделать сдедующую штуку: есть фотографии за них голосуют записываются голоса в базу в поле golos например и время последнего голоса функцией time(), я хочу сделать фото дня, у какой фотки максимальное кол-во голосов за день та туда и помещается. Но как это сделать чтобы автоматически считалось, никак не пойму!
И в этом же духе чтобы каждый час пользователь который просидел в онлайн, время общее записывается в базу начилсялось например +1 балл..



Спустя 1 час, 15 минут, 21 секунда (5.11.2009 - 12:18) Gradus написал(а):
1) Создать таблицу в бд где будет указываться время голоса кто и кому.Дальше бежать по базе смотреть у кого больше голосов начиная с сегодняшнего дня
2)Не особо понял, создаёш сессию юзеру где отмечаеться время захода на сайт формой ввода или куками далее при каждом обновление страницы смотреть прошёл ли час у этой сессии если прошёл то +1 и к сессии прибавляеш час

Спустя 10 часов, 24 минуты, 41 секунда (5.11.2009 - 22:43) Димон написал(а):
1) Пасиб эт я понял как реализовать.. А вот как будет выглядеть функция например чтобы каждый час прибавляла значение +1, к примеру.
Время считаеся в секундах и записывается в базу допустим в базе 166893 это 46 часов 21мин. 3600 это один час. Нужно чтобы каждый час добавлялось +1балл какой-то переменной к примеру.. Никак не пойму как это сделать((

Спустя 1 час, 42 минуты, 30 секунд (6.11.2009 - 00:25) bret написал(а):
Димон
В таблицу юзеров забиваешь два поля - lastvisit и onlinetime. Будем считать время жизни сессии 10 минут. Т.е. с каждым обновлением страницы lastvisit обновляется и сравнивается с предыдущим значением lastvisit. Если прошло меньше 10 минут - то на эту разницу наращиваем onlinetime. Ну, а зная, сколько времени отсидел пользователь насайте можно уже любые баллы высчитывать

Спустя 11 часов, 55 секунд (6.11.2009 - 11:26) Gradus написал(а):
Димон
1) Что именно не понятно ? вот таблица голосов
id user_golos who_golos data - это поля где id это айди smile.gif user_golos это за кого голосовали who_golos кто голосовал data когда голосовали дальше запрос
$q=q("SELECT * FROM `golos` WHERE  `date` > 'сегодняшняя дата' ");
$golos=array();
while($go=f($q))
{
if(!isset($golos[$go['user_golos']])) $golos[$go['user_golos']]=0;
else $golos[$go['user_golos']]++;
}
$max_count=''; $max_name=0;
foreach($golos as $name=>$count)
{
if($count>$max_count) { $max_name=$name; $max_count=$count ; }
}


if($max_count>0 && $max_name!='') echo 'Сейчас рулит: '.$max_name.', за него проголосовали сегодня: '.$max_count.' раз'; else echo 'Сегодня плохой день';

Может с ошибками написал и может есть вариант другой или посакращённей но должно работать smile.gif
Со вторым:
if(!$_SESSION['data']) $_SESSION['data']='нынешнее время в сек';
if($_SESSION['data']>'больше часа') $user_bal++;

Спустя 4 часа, 48 минут, 17 секунд (6.11.2009 - 16:14) Димон написал(а):
Пасиб всем за активность! Сделал правда по своему ))

Балл за час высчитываю так: первое поле- time второе time_hour в первом к примеру 3000 секунд жизни, прибавил по умолчанию ко второму полю time + 3600сек то есть час. Как только time>=time_hour он прибавляет ещё +3600 и добавляет 1 балл..
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.