[ spezia @ 30.11.2007. 10:31 ] @
Ideja je da pokupim on-line korisnike,preko baze podataka.Da stavim upit prikazi sve korisnike gde je uslov :trenutno vreme - 5 min..Valjda se to na ovaj nacin moze resiti?!

Code:
$result=mysql_query("SELECT * FROM person WHERE lastaccess=now()-300 ");


lastaccess je polje u bazi koje prikazuje vreme kada je korisnik zadnji put bio.Samo sto ne dobijam rezultate :(

[Ovu poruku je menjao Nemanja Avramović dana 30.11.2007. u 17:09 GMT+1]
[ Stojanovic I @ 30.11.2007. 13:25 ] @
A kog je tipa polje lastaccess i kako ti izgleda podatak u bazi ?
[ spezia @ 30.11.2007. 13:39 ] @
lastaccess je type: DATETIME a podatak izgleda za to polje ovako " 2007-11-30 14:34:39".
[ Nemanja Avramović @ 30.11.2007. 16:09 ] @
Aj daj još par redova ispod. Kako uzimaš podatke, kako ispisuješ, ...
[ spezia @ 30.11.2007. 18:09 ] @
Code:

$result=mysql_query("SELECT * FROM person WHERE lastaccess=now()-300 ");
mysql_error;
if($result && mysql_num_rows($result))
{
while($l=mysql_fetch_array($result))
{
 $online_users=$l[username];
 
   echo"Online: $online_users <BR>";
   

}  
}
else
{ echo"nema zapis iz baze";
}//probni kod.

Naravno ovo je samo probno .Islo bi preko Fast Klase i {ONLINE_USERS} a ne preko echo..
Ispis na ekranu je=> " Nema zapis iz baze"
[ Nemanja Avramović @ 30.11.2007. 18:30 ] @
Pa onda ti sledeći red vraća false:
Code:
if($result && mysql_num_rows($result))


Da li radi kad izbaciš taj if (i dole else, naravno)?
[ Jezdimir Lončar @ 30.11.2007. 20:01 ] @
Code:

$result = mysql_query("SELECT * FROM person WHERE lastaccess=now()-300 ") or die(mysql_error());
if(mysql_num_rows($result)>0)
{
$online_users = "";
while($l=mysql_fetch_array($result))
{
 $online_users .= $l[username];
}
echo "Online: $online_users <br />";
}
else
{
 echo "Nema OnLine korisnika.";
}

Ajd probaj ovako...
Eto cisto sam malo sredio kod, mada ne vjerujem da je to bilo...
Mislim da ti je problem u query-ju. Trebao si u lastaccess da storujes timestamp, ne tako datum...
Onda mislim da bi mogao da koristis now() sa tim minusom...
Kad vec ides da se storuje u string formatu...
[ Miroslav Ćurčić @ 30.11.2007. 20:52 ] @
Zar ne treba
umesto: WHERE lastaccess=...
da bude: WHERE lastaccess>...
?
[ spezia @ 30.11.2007. 21:35 ] @
Kada izbacim if naredbu ne radi..
Promenio sam polje u TIMESTAMP i nista..
Mislim da je do upita,ali ne znam sta .
Ubacio sam i ovaj red i nista
Code:

$result=mysql_query("SELECT * FROM person WHERE DATE_SUB(now(),1 HOUR ");

Ja ovo radim u localhost-u,tako da je za sve usere lastaccess isti.Ali opet trebalo bi da ih sve ispise.

Pa kako se resava problem za online usere & guest? Mozda imate bolje resenje .
[ spezia @ 30.11.2007. 21:38 ] @
Citat:
mVeliki: Zar ne treba
umesto: WHERE lastaccess=...
da bude: WHERE lastaccess>...
?

Tacno. Treba >.Hvala Veliki :)
[ danield @ 01.04.2009. 19:13 ] @
To znaci da moram svaku aktivnost da unosim u bazu? npr neko osvezi stranicu mora da upise u bazu?
[ Nikola Poša @ 01.04.2009. 20:09 ] @
Pa tako nekako... :) Mada sve zavisi na koji način, odnosno, u kojoj meri hoćeš da vršiš tu proveru aktivnosti korisnika.
[ danield @ 08.04.2009. 07:33 ] @
To sam uradio, ali ne kontam, kako mogu da merim ono koliko je korisnik online... Ovo sam napravio i super radi. Postavio sam da svaki put kada osvezi stranicu, da updatuje u bazi pomocu funkcije time()... To super radi, ali ne kontam kako mogu da napravim da meri koliko je online... ovako mogu da merim samo poslednju aktivnost...
[ Miroslav Ćurčić @ 08.04.2009. 10:09 ] @
Meriš koliko je posetilaca imalo aktivnost u recimo poslednjih 10 minuta, i to ti je taj broj "online".
[ danield @ 08.04.2009. 18:27 ] @
Znam to, nego me zanima kako da merim od onog trenutka kada je pristupio na sajt, ali ima kome ne istekne cookie a nije online i to... npr subotica.com->pregled profila-> korisnik je online na sajtu 2 sata i 54 minuta. kako to?
[ Nikola Poša @ 08.04.2009. 18:37 ] @
Možeš recimo odma' kad se uloguje, da mu set-uješ neku promenljivu u sesiji, u koju bi upisao vreme logovanja, pa bi onda na tom mestu gde ispisuješ koliko je vremena online, trebao da od trenutnog vremena oduzimaš to koje je upisano u sesiji. A pri logout-u, između ostalog, brišeš i tu promenljivu iz sesije.

A alternativa sesiji bi bilo neko dodatno polje u bazi.

edit: Sad tek vidim da ti hoćeš da to bude fiksno vezano za svakog korisnika, odnosno, da i ostali mogu da vide tu njegovu statistiku. Onda nema šta, taj podatak moraš negde i da skladištiš, najbolje da to bude u bazi.