![]() |
|
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]()
|
|
| fakeman |
|
||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 137 Регистрация: 5.5.2009 Репутация: нет Всего: нет |
Всю ночь отвазился так и не решил проблему с удалением и выводом нормального числа в такой задаче как "Скока юзеров и онлайн и кто именно"
Вот код:
Почему запись не удаляется через 10сек из базы ? И почему если 1 узер онлайн то он пишет что их 2 :( в чем проблема с
П.с. таблица(online) такая : 2 столбца id_user(уникальный key, INT(100)) и dnt(VARCHAR(255)) |
||||
|
|||||
| Рыжий |
|
||||||||||
![]() Помешанный ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1423 Регистрация: 19.9.2004 Репутация: 2 Всего: 20 |
Зачем LIMIT 1? Уберите его.
Тут, в принципе, можно и без WHERE dnt > '$datentime'. И нужно добавить:
$id_user - числовой ведь:
|
||||||||||
|
|||||||||||
| youri |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 740 Регистрация: 17.4.2004 Репутация: 6 Всего: 16 |
а что mysql адекватно воспринимает unix timestamp'ы, без FROM_UNIXTIME()?
|
|||
|
||||
| Рыжий |
|
|||
![]() Помешанный ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1423 Регистрация: 19.9.2004 Репутация: 2 Всего: 20 |
youri, тут MySQL вообще не работает с Timestamp, dnt ведь VARCHAR(255) а в него идет time()
fakeman, кстати если уж такое юзать, то лучше обявить dnt числовым. А еще лучше TIMESTAMP`ом |
|||
|
||||
| fakeman |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 137 Регистрация: 5.5.2009 Репутация: нет Всего: нет |
Так довайте по порядку с самого начала создаю в базе таблицу с 2 столбцами: id_user(VARCHAR(100) U_KEY) dnt(TIMESTAMP)
так ? Далее как сделать запись в базу что бы в столбике dnt не было нулей а время. |
|||
|
||||
| bars80080 |
|
|||
![]() прапор творюет ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: 71 Всего: 315 |
||||
|
||||
| youri |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 740 Регистрация: 17.4.2004 Репутация: 6 Всего: 16 |
||||
|
||||
| fakeman |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 137 Регистрация: 5.5.2009 Репутация: нет Всего: нет |
Упс опичатался тут у меня в базе Int стоит.
Чего то я запутался и не пойму почему он не выводит "Обновить таблицу" если в таблице есть запись. П.с. как сделать обновление таблицы. |
|||
|
||||
| Shark |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 703 Регистрация: 18.6.2006 Где: Москва Репутация: 4 Всего: 4 |
Это сообщение отредактировал(а) Shark - 1.6.2009, 16:01 |
||||
|
|||||
| fakeman |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 137 Регистрация: 5.5.2009 Репутация: нет Всего: нет |
||||
|
||||
| Shark |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 703 Регистрация: 18.6.2006 Где: Москва Репутация: 4 Всего: 4 |
попробуй так Это сообщение отредактировал(а) Shark - 1.6.2009, 23:26 |
|||
|
||||
| fakeman |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 137 Регистрация: 5.5.2009 Репутация: нет Всего: нет |
если написать такое.
По идеи если есть запись в таблице то должен делать UPDATE и выдать на экран 2 ? Но он всё время выводит тока 1 :( |
|||
|
||||
| Shark |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 703 Регистрация: 18.6.2006 Где: Москва Репутация: 4 Всего: 4 |
блин.. конечно...незаметил у тя функцию mysql_fetch_row
|
|||
|
||||
| Рыжий |
|
||||
![]() Помешанный ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1423 Регистрация: 19.9.2004 Репутация: 2 Всего: 20 |
Это можно реализовать так:
|
||||
|
|||||
| fakeman |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 137 Регистрация: 5.5.2009 Репутация: нет Всего: нет |
Shark
Рыжий Эта проблема решина, спасибо. Теперь как бы грамотно удалить из базы запись катора я не обновлялась n времени допустим 1мин.
|
|||
|
||||
| Shark |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 703 Регистрация: 18.6.2006 Где: Москва Репутация: 4 Всего: 4 |
удалятся все записи... где dnt меньше минуты Это сообщение отредактировал(а) Shark - 2.6.2009, 00:16 |
|||
|
||||
| fakeman |
|
||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 137 Регистрация: 5.5.2009 Репутация: нет Всего: нет |
Он из базы не удаляет запись после того как проходит минута :( п.с.
там скобка лишняя(после $time) или так и надо если надо то почему ? Но я пробовал и без скобки всёравно не удаляет из базы запись. Может не совпадают типы с базой в dnt ? у меня там написано например 2009-06-02 00:23:01 Это сообщение отредактировал(а) fakeman - 2.6.2009, 00:36 |
||||
|
|||||
| Shark |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 703 Регистрация: 18.6.2006 Где: Москва Репутация: 4 Всего: 4 |
если у тя пишется в формате гггг-мм-дд чч:мм:сс, то конечно не совпадают.. time() - в ней находится кол-во секнуд прошедших с 1 января 1970 года |
|||
|
||||
| fakeman |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 137 Регистрация: 5.5.2009 Репутация: нет Всего: нет |
Так что тоггда переделать столбец dnt в INT или VARCHAR ?
|
|||
|
||||
| Shark |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 703 Регистрация: 18.6.2006 Где: Москва Репутация: 4 Всего: 4 |
fakeman, в INT... я вообще стараюсь все числовые функции писать в INT
|
|||
|
||||
| fakeman |
|
||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 137 Регистрация: 5.5.2009 Репутация: нет Всего: нет |
При таком коде вроде всё работает но смушает одно. Если пользователь 1 ползает где то по сайту и бац он выходит из браузера то он будет весеть в базе 1 до тех пор пока его кто то да не заменит допустим зайдёт другой пользователь и обновит базу т.е. старый удалиться а новый появиться. Получается1 юзер всегда будет я ко бы онлайн ? и как отталкиваясь от id_user( он U_Key) вывести подщёт пользователей онлайн ?
|
||||
|
|||||
| Shark |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 703 Регистрация: 18.6.2006 Где: Москва Репутация: 4 Всего: 4 |
используй mysql_num_rows() ... если бот зайдет... пользователь удалится Рекомендую посмотреть FAQ там есть код on-line пользователей |
|||
|
||||
| fakeman |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 137 Регистрация: 5.5.2009 Репутация: нет Всего: нет |
ДА он помог, спасибо Осталась сделать что бы выводить юзеров кто именно онлайн. У меня 2 таблицы - 1 online 2 users. Значит надо сделать запрос на выделение id username из users где id = $id_user закинуть в массив, вывсти. Примерно я так сделал:
Но как вы уже поняли выведиться тока 1 юзер нейм. как сделать что бы вывел всех кто есть в таблице online в столбце id_user ? |
|||
|
||||
| Shark |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 703 Регистрация: 18.6.2006 Где: Москва Репутация: 4 Всего: 4 |
смотри...
при авторизации, ты заносишь пользователя в таблицу online... а потом просто выводишь!
ну это так... набросок P.S. кстати, в том коде который ты смотрел.. вроде есть часть которая выводит всех, кто он-лайн Это сообщение отредактировал(а) Shark - 2.6.2009, 07:10 |
|||
|
||||
| fakeman |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 137 Регистрация: 5.5.2009 Репутация: нет Всего: нет |
Shark,
|
|||
|
||||
| Shark |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 703 Регистрация: 18.6.2006 Где: Москва Репутация: 4 Всего: 4 |
fakeman, а зачем ты делаешь сравнение id'ов, а потом вывод???
выводи всех пользователей из таблицы online и все... если пользователь удачно авторизовался, то он занесся в таблицу online, все кто в этой таблице, они и есть у тебя в таблице users... поэтому я не вижу смысла данные из таблицы сравнивать с данными другой таблицы... |
|||
|
||||
| fakeman |
|
||||||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 137 Регистрация: 5.5.2009 Репутация: нет Всего: нет |
Shark, ты об этом ?
Гхмм ну 2 таблицы в одной тока ийд юзера и дата в другой айди, ник нейм, дата рождения.. вообшем всё о юзере. Ну и схожи эти 2 таблицы тока id по этому делал сравнение что бы вывести ссылку на юзера и его ник нейм.. А вот как ты предложил я как то не понемаю.. Это будет так как ты писал ранее
он выведит все айди пользователей кто в ондайне в столбик. Пример: 1 6 102 Что бы не выводить пользователем на сайт айдишники потому и беру из таблицы users ник нейм.. П.с.
можно и не делать а в выводе просто написать так
походу одно и тоже. Это сообщение отредактировал(а) fakeman - 2.6.2009, 15:51 |
||||||||
|
|||||||||
| Shark |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 703 Регистрация: 18.6.2006 Где: Москва Репутация: 4 Всего: 4 |
ааа... я просто думал что ты в online хранишь ник и id пользователя...
тебе всего-то надо 4 столбца в той таблице id | id_user | nick | timestamp тогда и мой вариант будет не плох в своем варианте я писал так:
а как у тебя
выводится ничего не будет, т.к. после echo $online[1] надо поставить точку, и потом писать "<br>" |
||||
|
|||||
| fakeman |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 137 Регистрация: 5.5.2009 Репутация: нет Всего: нет |
Ну он тоже не будет работать :Р у меня табица online такак id_user | dnt та что надо
Я опечатался и забыл точечку. Сорри П.с. В таблице users у меня так id | username | password | realname | и так далее... |
|||
|
||||
| Shark |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 703 Регистрация: 18.6.2006 Где: Москва Репутация: 4 Всего: 4 |
ну это твое право писать лишний код.... но я думаю, что если пользователь в онлайне, то он толжен быть и в этой таблице! все равно же он удаляется |
|||
|
||||
| fakeman |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 137 Регистрация: 5.5.2009 Репутация: нет Всего: нет |
Возник вопрос вот этот файл(online.php) где весь код надо include по всему сайту ? Тока так о будет "засикать" активен пользователь или нет ?
|
|||
|
||||
| Shark |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 703 Регистрация: 18.6.2006 Где: Москва Репутация: 4 Всего: 4 |
ну ты можешь написать на каждой страничке код:
и все..... тогда в этой (online) таблице будет обновляться время тогда, когда пользователь зашел на ту или иную страницу |
|||
|
||||
| fakeman |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 137 Регистрация: 5.5.2009 Репутация: нет Всего: нет |
Ну хотя да, можно но я так потом подумал и решил что у меня всёравно на сайте будет на каждой странице показываться кто онлайн. Столкнулся ещё кое с чем по поводу вывода юзеров допустим есть не таблица а дивы
т.е. задумка получить такое |---------------------------------| | user1 user2 | | user3 user4 | | user5 user6 | |_____________________| И было бы супер по алфавиту |
|||
|
||||
| Shark |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 703 Регистрация: 18.6.2006 Где: Москва Репутация: 4 Всего: 4 |
т.е. ты хочешь чтоб у тебя выводилось в 2 столбика... в левом нечетные, а вправом четные?
|
|||
|
||||
| fakeman |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 137 Регистрация: 5.5.2009 Репутация: нет Всего: нет |
||||
|
||||
| fakeman |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 137 Регистрация: 5.5.2009 Репутация: нет Всего: нет |
Ну вот вроде реализовал эту задумку тока пришлось не через divы как хотелось а через таблицы
вышло примерно так:
Вот |
|||
|
||||
![]()
|
| Правила форума "PHP" | |
|
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |