Autor Zpráva
elža
Profil *
Ahoj, jak udělat online stav na webu kdo je online?
- Mám hotový, když se uživatel přihlasí zapíše se to do databáze do tabulky sessions(userid,ip,time,date)
není problém si vypsat všechny IDčka,který sou online, ale problém je že IDčka uživatelů mám uložený v tabulce uživatelé.

Potřeboval bych teda z tabulky sessions kde ukládám ID uživatele převect do tabulky uživatele kde mi vypíše jakej má nick, jak nato prosim?
Kh.
Profil *
function zjistiNick($id) {
  $c = mysql_connect();
  mysql_select_db();
  $q = mysql_query("SELECT * FROM users WHERE id=".$id);
  return mysql_fetch_object($q)->nick;
}

$q = mysql_query("SELECT * FROM sessions");
while ($r = mysql_fetch_object($q)) {
  echo "Uživatel ".zjistiNick($r->iduzivatelevtabulcesessions)." je online";
}
Kcko
Profil
Kh.:
Prijde Ti rozumne to delat takto? Coztakhle spojit tabulku users s tabulkou sessions a usetris tolik dotazu kolik je lidi online.
elža
Profil *
Kcko:
To už mě taky napadlo asi mi nic jinýho nezbývá :)
Kcko
Profil
http://dev.mysql.com/doc/refman/5.0/en/join.html

nic na tom neni
elža
Profil *
když sem to sloučil mazalo mi to uživatele kteří nebyly přihlášený, radči to nechám v obouch tabulkach, prto přehled taky...
elža
Profil *
udělal sem to jak napsal Kh. a funguje, díky moc
Kcko
Profil
No neni to tedy ale moc optimalni ;-) ...
A co takto:

Kdyz je uzivatel zalogovany a udela nejakou akci na webu tak si do sloupecku posledni_akce_uzivatele ulozis aktualni cas (tj NOW())

A pak uz bude velmi snadne zjistit kdo je aktualni.

SELECT .... FROM users WHERE DATE_SUB(NOW(), INTERVAL 4 MINUTE) <= posledni_akce_uzivatele

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0