Небольшие вопросы по PHP

Статус
В этой теме нельзя размещать новые ответы.

zerkms

TDD infected
Команда форума
LONGMAN
Как определить и где хранить `time` сегодня и `time` вчера?
там же. где ты и хранишь для крона.
Как определить что уже настало "сегодня"?
если последнее посещение было "вчера" - значит уже настало "сегодня".
 

LONGMAN

Dark Side of the Moon..
zerkms
Если юзер был онлайн когда настало 00:00? Что потом? Или я не так понял? Как я понял алгоритм таков: зашёл юзер, если это сегодня его первый визит то обнулим поле `daytime` и начинаем отчёт с начала. Но беда в том что если юзер вообше не зайдёт то время останется из последного визита.

-~{}~ 20.03.09 14:05:

x-yuri
Есть поле `alltime` где хранил время целиком (на каждой странице это поле обновляется + время в секундах) и есть такое же поле `daytime` с исключением того что каждый 00:00 я обновлял это поле (SET `daytime` = '0')

-~{}~ 20.03.09 14:08:

Кстати есть идея :) Если у кого небудь есть стабильный хостинг, желание и вазможность помочь мне, то сделайте с помошью вашего крона что бы откривалось на моём хосте один файл каждый 00:00 GMT +4.00 :)
 

Фанат

oncle terrible
Команда форума
LONGMAN
У этого форума есть недостаток. Здесь почти нет людей, у которых детство в заднице играет. Я могу оценить полет фантазии последнего твоего предложения, но не могу также не оценить профессионального уродства.
Давай так. Для игр найди другой форум. А здесь или нормально - или никак. Идет?

-~{}~ 20.03.09 13:46:

Есть поле `alltime` где хранил время целиком
тебя спрашивали не как хранил, а как определял.
поле обновляется по какому алгоритму?
 

LONGMAN

Dark Side of the Moon..
*****,
Извините если что-то не так сказал.. Хотя я не вижу никакого уродство в вышенаписанном..
Ладно, продолжим.. На счёт поле, он обновляется на каждой странице:
PHP:
$time = time() - $_SESSION['time'];
sql -> UPDATE `users` SET `alltime` = `alltime` + $time WHERE `id` = $id;
$_SESSION['time'] = time();
 

LONGMAN

Dark Side of the Moon..
Да? А как выяснить сколько времени провёл юзер за сегодня?
 

LONGMAN

Dark Side of the Moon..
*****
Ладно, забыл про это..
Сейчас возник другой вопрос. У меня есть таблица новости где храню ID юзера (кто добавил новость). Как мне узнать ник юзера без использования запроса в цикле? Сейчась делаю так:
PHP:
$news = mysql_query("SELECT * FROM `news`");
while($row = mysql_fetch_array($news))
{
$news = mysql_query("SELECT `username` FROM `users` WHERE `id`='".$row['id']."'");
//И здес новость - юзер
}
Как вы обычно решаете эту задачу?
 

Фанат

oncle terrible
Команда форума
не надо забывать. надо думать.
если показывать самому юзеру, то он сначала зайдет, то есть, запись уже будет.
если показывать всем, то раз у ж у тебя такая бирюлька, сколько времени провел на сайте, то другая аналогичная - когда последний раз был - и подавно должна быть.
 

LONGMAN

Dark Side of the Moon..
*****
Проблема в том что время должен показиватся всем, не смотря того тот юзер находится онлайн или оффлайн.. Я подумал и конечно можно сделать это, но вопрос в том, стоит ли так сделать? Думаю не стоит без крона этого делать, уменшится производительность..
На счёт БД запросв в цикле, это приемлимо? Или лучше сделать с INNER JOIN? Какой из них создаст меншую нагрузку на БД?
 

Фанат

oncle terrible
Команда форума
еще раз повторяю. крон не нужен.
нужно поле когда в последний раз был на сайте. И ВСЁ.
Тебе ответили уже про INNER JOIN. Что неясно?
 

LONGMAN

Dark Side of the Moon..
Пойду изучаю синтаксис INNER JOIN и на счёт того вопроса тоже подумаю

-~{}~ 23.03.09 18:04:

*****
Так нормально?
PHP:
sql=>SELECT * FROM `news` INNER JOIN `users` WHERE `news.userID`=`users.id`"
 

LONGMAN

Dark Side of the Moon..
zerkms
Значит запрос нормаьный, только нужно сменить WHERE на ON?

-~{}~ 23.03.09 19:02:

И чем лучше запрос с JOIN'ом запроса:
PHP:
sql=>"SELECT `news`.*,`users`.`name` FROM `news`,`users` WHERE `news`.`userID`=`users`.`id`"
То есть какой будет оптимальнее?
 

findnext

Новичок
INNER JOIN вытаскивает из обоих таблиц данные соответствующие друг другу...получается что твой запрос соответствует запросу с INNER JOIN, но вот только синтаксис запроса с iNNER JOIN смотрится намного приятнее...
 

LONGMAN

Dark Side of the Moon..
Всёравно приходится использовать один запрос в цикле :-( Подсчёт комментариев на новость где `news`.`id` = `news_com`.`newsID`. Никак не смог впыхнуть всё это в один запрос
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху