Utolsó belépés idejének lekérdezése SQL-ből

Szerző
Üzenet
AngerFist
Gyakorló phpBB-s
Gyakorló phpBB-s


Csatlakozott: 2008.11.13. Csütörtök 8:46
Hozzászólások: 53
Hozzászólás Elküldve: 2009.03.28. 10:01    Hozzászólás témája: Utolsó belépés idejének lekérdezése SQL-ből
Hozzászólás az előzmény idézésével
Sziasztok!

kellene egy lekérdezés, ami kilistázza, hogy ki, mikor lépett be utoljára a fórumra. A taglistában tudom, hogy szerepel a dátum, így biztos le lehet kérdezni. Eddig jutottam:

Kód:

SELECT `username`,`user_lastvisit`
FROM `phpbb_users`
ORDER BY `user_lastvisit` ASC;

Így látom a usernevet, csak az a baj, hogy a másik 10 számjegyű szám, és nem dátum, ezáltal gyakorlatilag használhatatlan. A kérdésem: nem lehet valahogy dátum formátumot kikényszeríteni? Vagy nincs olyan oszlop, ami dátum formában tárolja a last logint?

Előre is köszi!

Felhasználó profiljának megtekintése Privát üzenet küldése
Marcee
Adminisztrátor
Adminisztrátor
Avatar

Csatlakozott: 2006.01.17. Kedd 1:00
Hozzászólások: 2807
Hozzászólás Elküldve: 2009.03.28. 11:29    Hozzászólás témája:
Hozzászólás az előzmény idézésével
A date függvénnyel tudod "átalakítani": date(formatum, idopont). A formátumban használható kódokat megtalálod a php.net-en.
Vagy ha a litázó kódod a phpBB-be ágyazva használod, akkor használhatod a $user->format_date(idopont) függvényt is, ez alapértelmezetten a phpBB-ben beállított forátumban adja vissza az időpontot.
_________________
Kérlek, privát üzenetben ne kérj segítséget olyan kérdéssel kapcsolatban, aminek a fórumon a helye!

Felhasználó profiljának megtekintése Privát üzenet küldése
AngerFist
Gyakorló phpBB-s
Gyakorló phpBB-s


Csatlakozott: 2008.11.13. Csütörtök 8:46
Hozzászólások: 53
Hozzászólás Elküldve: 2009.03.28. 11:43    Hozzászólás témája:
Hozzászólás az előzmény idézésével
Ezzel két problémám van.
1: ha jól értem, php-s megoldást mondasz, de én csak magamnak akarom sql-el megoldani
2: a user_lastvisit egy 10 hosszú integer, azaz mintha lenne egy viszonyítási dátuma, és ahhoz adogatna folyamatosan hozzá valamit, így nem tudom pontosan, hogy számol, ezen felül a kényszerítéshez meg kellene adni a formátumot, ami egy folyamatosan növekvő int-nél nem igazán értelmezhető. Azért köszi.
Esetleg más megoldás?
Jelenleg ott tartok, hogy magán a fórumon a taglistát lerendezem loginre kattintva, és kimásolom copy-paste-el egy excelbe, de ez nem a legszebb mód! :D

Felhasználó profiljának megtekintése Privát üzenet küldése
Marcee
Adminisztrátor
Adminisztrátor
Avatar

Csatlakozott: 2006.01.17. Kedd 1:00
Hozzászólások: 2807
Hozzászólás Elküldve: 2009.03.28. 12:06    Hozzászólás témája:
Hozzászólás az előzmény idézésével
Akkor félreértettelek, azt hittem, hogy PHP-ben szeretnéd megoldani, de elakadtál a lekérdezésnél.

Jól gondolod, tényleg van egy viszonyítási dátum, ami 1970. január 1. 00:00 UTC, ez a Unix epoch.
Ezzel az SQL lekérdezéssel tudod megoldani:

Kód:

SELECT `username`, FROM_UNIXTIME(`user_lastvisit`, '%Y. %m. %d. %h:%i')
FROM `phpbb_users`
ORDER BY `user_lastvisit` ASC;
Aki még soha nem lépett be, annál az 1970-es dátum fog szerepelni. A formázási kódokat itt találod: MySQL5.1 Reference: Date and ime Functions.
_________________
Kérlek, privát üzenetben ne kérj segítséget olyan kérdéssel kapcsolatban, aminek a fórumon a helye!

Felhasználó profiljának megtekintése Privát üzenet küldése
AngerFist
Gyakorló phpBB-s
Gyakorló phpBB-s


Csatlakozott: 2008.11.13. Csütörtök 8:46
Hozzászólások: 53
Hozzászólás Elküldve: 2009.03.28. 12:24    Hozzászólás témája:
Hozzászólás az előzmény idézésével
Nagyon király!
Esetleg egy utolsó dologban még segítenél? A Where részt úgy megírni, hogy azokat hooza csak, akik több mint 1 hónapja nem voltak bent?

Felhasználó profiljának megtekintése Privát üzenet küldése
Marcee
Adminisztrátor
Adminisztrátor
Avatar

Csatlakozott: 2006.01.17. Kedd 1:00
Hozzászólások: 2807
Hozzászólás Elküldve: 2009.03.28. 13:05    Hozzászólás témája:
Hozzászólás az előzmény idézésével

Kód:

SELECT `username`, FROM_UNIXTIME(`user_lastvisit`, '%Y. %m. %d. %h:%i')
FROM `phpbb_users`
WHERE `user_lastvisit` < UNIX_TIMESTAMP()-2592000
ORDER BY `user_lastvisit` ASC;
A UNIX_TIMESTAMP() az aktuális időt adja vissza Unix időbélyegként, a 2592000 pedig a 60*60*24*30 másodperc.
_________________
Kérlek, privát üzenetben ne kérj segítséget olyan kérdéssel kapcsolatban, aminek a fórumon a helye!

Felhasználó profiljának megtekintése Privát üzenet küldése
AngerFist
Gyakorló phpBB-s
Gyakorló phpBB-s


Csatlakozott: 2008.11.13. Csütörtök 8:46
Hozzászólások: 53
Hozzászólás Elküldve: 2009.03.28. 13:47    Hozzászólás témája:
Hozzászólás az előzmény idézésével
Ez is működik. Nagyon köszönöm, és bocsi, hogy nem találtam el a fórumot, ahova írtam.

Felhasználó profiljának megtekintése Privát üzenet küldése
Hozzászólások megtekintése:  

Nem készíthetsz új témákat ebben a fórumban.
Nem válaszolhatsz egy témára ebben a fórumban.
Nem módosíthatod a hozzászólásaidat a fórumban.
Nem törölheted a hozzászólásaidat a fórumban.
Nem szavazhatsz ebben fórumban.

Hirdetés
Hirdetés