Autor | Zpráva | ||
---|---|---|---|
Valdes Profil * |
#1 · Zasláno: 20. 6. 2010, 21:21:47
Mohl by mi prosim nekdo poradit jak udelat seznam registrovanych uzivatelu ktery josu online ?
|
||
panther Profil |
#2 · Zasláno: 20. 6. 2010, 21:24:30
Valdes:
hledat zde na diskusi jsi nezkoušel, že? |
||
Valdes Profil * |
#3 · Zasláno: 20. 6. 2010, 21:29:32
zkousel ale pisou tu jen jak udelat stav uzivatele a ne seznam uzivatelu ktery sou online
|
||
panther Profil |
#4 · Zasláno: 20. 6. 2010, 21:30:49
Valdes:
stav si ukládej do DB, ty kteří budou mít stav online/1 nebo cokoliv jiného, vypiš. Nic víc, nic míň. |
||
Vojtíšek Profil * |
#5 · Zasláno: 20. 6. 2010, 21:32:15
Valdes:
„zkousel ale pisou tu jen jak udelat stav uzivatele a ne seznam uzivatelu ktery sou online“ Tak si zjisti stavy uživatelů, kteří jsou online a potom je vypiš pod sebe. |
||
radvis Profil * |
#6 · Zasláno: 21. 6. 2010, 12:18:03
Jen takový dotaz, když si dám, že bude lognutej třeba na měsíc jak zjístím, že přišel v tuto chvíli na web (abych přepsal stav), díky.
|
||
hary28 Profil |
#7 · Zasláno: 21. 6. 2010, 13:43:19
radvis:
Lepší by bylo kdyby sis zaznamenával datum a čas aktivity uživatelů a pak to porovnával s reálným časem. Poté už jenom vypisovat uživatele kteří byly aktivní v posledních 5 minutách. Je to jen návrh a pokud by jsi měl hodně uživatelů tak by to znamenalo i velké zatížení SQL což není dobré. :) |
||
Valdes Profil * |
#8 · Zasláno: 21. 6. 2010, 13:45:10
Poradite mi teda jak by mela vypadat tabulka do ktery se bude zapisovat to ze je online (ja to potom budu vypisovat z ty tabulky) a jak dosahnout toho ze az se odhlasi tak se z ty tabulky zase vymaze ? nebo mate nejaky odkaz na nejakou stranku kde by tenhle script mohl byt popsanej popripade ke stazeni ?
|
||
Nox Profil |
#9 · Zasláno: 21. 6. 2010, 14:02:52
user_lastclick (engine=MEMORY):
id_user time (datetime) jako optimalizaci můžeš přidat users: + sloupec "online" (bool) při při/odhlášení se nastaví online na 0/1 cron občas podle posledního kliku přepne podle posledního kliku z 0 na 1 |
||
Valdes Profil * |
#10 · Zasláno: 21. 6. 2010, 14:15:06
Takhle by měla vypadat ta tabulka jo ?
|
||
Valdes Profil * |
#11 · Zasláno: 21. 6. 2010, 14:19:37
Takže jsem pochopil že ta tabulka by měla vypadat takhle ?
CREATE TABLE `user_lastclick` ( `id_user` smallint(6) NOT NULL default '0', `time` smallint(6) NOT NULL default '0', |
||
Nox Profil |
#12 · Zasláno: 21. 6. 2010, 14:28:34
u time jsem uvedl typ datetime
default hodnoty tam asi nemají smysl možná místo time by se to mohlo pojmenovat nějak smysluplněj |
||
radvis Profil * |
#13 · Zasláno: 21. 6. 2010, 14:52:29
hary28: to je dobrý nápad, ale přesto bych byl rači kdyby to bylo pravě teď.
|
||
Valdes Profil * |
#14 · Zasláno: 21. 6. 2010, 15:14:49
Nox:
Takze u TIME napísu misto default - datetime, a co napisu u toho id_user misto default ? |
||
panther Profil |
#15 · Zasláno: 21. 6. 2010, 15:16:46
Valdes:
„a co napisu u toho id_user misto default ?“ nic. Žádná defaultní hodnota tam nebude, bude hodnota nějakého konkrétního uživatele. |
||
Kcko Profil |
#16 · Zasláno: 21. 6. 2010, 15:22:41
Updatuj pri kazdym kliku prihlaseneho uzivatele jeho cas
TJ. UPDATE users SET lastActivity = NOW() WHERE userID = ... A pak to vytahnes jednoduchym dotazem typu SELECT ... FROM users WHERE DATE_SUB(NOW(), INTERVAL 5 MINUTE) > lastActivity |
||
Valdes Profil * |
#17 · Zasláno: 21. 6. 2010, 15:35:29
kdyz chci vytvorit tabulkku tak mi to napise tuhle chybu :
Chyba SQL-dotaz: CREATE TABLE `user_lastclick` ( `id_user` smallint( 6 ) NOT NULL '0', `time` smallint( 6 ) NOT NULL datetime '0', MySQL hlásí: Dokumentace #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''0', `time` smallint(6) NOT NULL datetime '0',' at line 2 |
||
Keeehi Profil |
#18 · Zasláno: 21. 6. 2010, 15:41:47 · Upravil/a: Keeehi
Valdes:
CREATE TABLE `user_lastclick` ( `id_user` smallint( 6 ) NOT NULL, `time` datetime NOT NULL) datetime je datový typ stjně jako smalint, int, nebo varchar |
||
Valdes Profil * |
#19 · Zasláno: 21. 6. 2010, 15:52:38
I kdyz udelam tohle tak mi to stejne napise chybu, uz nevim co s tim, poradte prosim :-(
Chyba SQL-dotaz: CREATE TABLE `user_lastclick` ( `id_user` smallint( 6 ) NOT NULL '0', `time` datetime NOT NULL '0' ) MySQL hlásí: Dokumentace #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''0', `time` datetime NOT NULL '0')' at line 2 |
||
Skeletal Profil * |
#20 · Zasláno: 21. 6. 2010, 15:57:29
Měl bych stejný dotaz, jen nepoužívám databázi MySQL ale textový soubor. Věděl bych jak udělat aby to uživatele přidalo do bloku online uživatelů, nevím ale jak udělat aby odtamtud zmyzel když vypne prohlížeč nebo když se odhlásí. Je na to nějaká metoda/funkce v php ?
|
||
Keeehi Profil |
#21 · Zasláno: 21. 6. 2010, 16:03:25
Valdes:
S tebou je to těžké, když neumíš ani číst. Skeletal: Doporučoval bych databázi. Tam se dá pracovat s řádky. Soubory k tomu určené totiž nejsou. |
||
Skeletal Profil * |
#22 · Zasláno: 21. 6. 2010, 16:22:37
Keeehi: Aha, no já už skoro ty uživatele vyřešil jen bych potřeboval nějakou funkci nebo metodu která by nahrazovala v proměnné v které bude uložen text, slovo za jiné. Například bych měl v proměnné uložený text: Ahoj jak se máš ? A to jak by nahradilo třeba za proč. Změnilo by to tedy větu na Ahoj proč se máš ? Je to sice nesmysl ale využil bych to k změně toho seznamu uživatelů. Je nějaká taková funkce ?
|
||
Valdes Profil * |
#23 · Zasláno: 21. 6. 2010, 16:29:29
Keeehi:
proc cist, udelal jsem co jste mi rekli, misto smallint jsem dal datetime a stejne to nejde :-( |
||
Keeehi Profil |
#24 · Zasláno: 21. 6. 2010, 16:36:34 · Upravil/a: Keeehi
Skeletal:
Existuje. Můžeš použít t řeba PHP: preg_replace - Manual nebo PHP: str_replace - Manual. Valdes: Tak ani dívat se nebo kopírovat. Když porovnáš můj dotaz [#18] a ten co jsi sem napsal [#19], že to stjně nefunguje, tak zjistíš, že na konci máš '0' navíc. |
||
Valdes Profil * |
#25 · Zasláno: 21. 6. 2010, 16:45:01
Dekuju uz sem ji vytvoril, a ted tam kde chci aby se zobrazovalo kdo je online napisu tenhle kod ?
<? UPDATE user_lastclick SET lastActivity = NOW() WHERE userID = SELECT ... FROM user_lastclick WHERE DATE_SUB(NOW(), INTERVAL 5 MINUTE) > lastActivity ?> |
||
Skeletal Profil * |
#26 · Zasláno: 21. 6. 2010, 16:45:49
Keeehi: Díky to jsem potřeboval.
|
||
AM_ Profil |
#27 · Zasláno: 21. 6. 2010, 16:49:05
Valdes:
„Dekuju uz sem ji vytvoril, a ted tam kde chci aby se zobrazovalo kdo je online napisu tenhle kod ?“ jak to máme vědět jestli tam napíšeš tenhle kód? co je to za dotaz? tenhle kód bych raději nikam nepsal, kromě toho, že je to nesmysl, je to SQL jazyk jentak plácnutý do PHP závorek <? ?>. Začal bych tady článkem 34. |
||
antispam Profil * |
#28 · Zasláno: 21. 6. 2010, 18:10:46
tu tabulku sem udelal takle:
MySQL_Query("UPDATE uzivatele SET time = NOW() WHERE id = ".$_SESSION['id']."") or die (mysql_error()); ale jak pak mám vypsat, když uživatelovo time je o 5 minut menší než aktualní čas a je tedy offline. Ostatní online. |
||
mattyZEM Profil |
#29 · Zasláno: 21. 6. 2010, 18:15:06
NOW() je TIMESTAMP?
Jestli ano, pak: mysql_query("SELECT cochces FROM uzivatele WHERE time>=NOW()-300"); |
||
antispam Profil * |
#30 · Zasláno: 21. 6. 2010, 18:20:33
to jo, ale pak co mám vypsat? time?
|
||
Téma pokračuje na další straně.
|
0