Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php][mysql] Ostatnio zalogowani
Forum PHP.pl > Forum > PHP
djgarsi
Witam.
Piszę właśnie moduł ostatnio zalogowanych użytkowników.
Mam problem z porządkowaniem rekordów wg wartości funkcji strtotime.
Oczywiście mógłbym pójść na łatwiznę i zrobić nową tabelę z zalogowanymi, ale chciałbym to rozwiązać na podstawie już istniejącej tabeli users.

W tabeli users przechowuję pole o nazwie last_log gdzie zapisuję datę i czas ostatniego logowania w formacie np. 07.12.2010 20:30.

Mój dotychczasowy kod wygląda następująco:
  1. $Query_cos = 'SELECT last_log FROM users';
  2. $result_cos = mysql_query($Query_cos) or die (mysql_error());
  3. while($row_cos = mysql_fetch_array($result_cos))
  4. {
  5. $ostatnio = strtotime($row_cos['last_log']);
  6. $teraz = strtotime("now");
  7. $sort = $teraz - $ostatnio;
  8.  
  9. $Query_naj = 'SELECT * FROM users ORDER BY `'.$sort.'` ASC LIMIT 7'; // o tę linijkę mi chodzi
  10. $result_naj = mysql_query($Query_naj) or die (mysql_error());
  11. while($row = mysql_fetch_array($result_naj))
  12. {
  13. //tutaj obrabiam daty
  14. }
  15. }
hatesz
No nie rozumiem za bardzo Twojego kodu. Wyniki sortuje się według jakiejś kolumny, a nie liczby. Przecież $sort zawiera deltę czasu, a Ty potem sortujesz wyniki według tej delty? Daj kolumnie z datą format TIMESTAMP i możesz już sobie "dowolnie" sortować według tego.
nospor
1)
Cytat
w formacie np. 07.12.2010 20:30.

Czyli co, to pole jest typu VARCHAR? To pole ma być typu DATE_TIME

2)
$sort = $teraz - $ostatnio;
$Query_naj = 'SELECT * FROM users ORDER BY `'.$sort.'` ASC LIMIT 7'; // o tę linijkę mi chodzi
Chyba nie kumasz na czym polega sortowanie. Sortuje się po kolumnie a nie po wartości:
$Query_naj = 'SELECT * FROM users ORDER BY `kolumnazczasem` desc LIMIT 7';
djgarsi
To w końcu jaki ma być typ tej kolumny żeby można było po niej sortować? DATE_TIME czy TIMESTAMP?
nospor
Albo jedno albo drugie. Ja preferuję moją wersję.
djgarsi
No dobrze. To teraz jaki format daty mi wyjdzie w tym polu DATE_TIME, żebym mógł popodmieniać daty?
nospor
Zajrzyj... do .... manuala.... - po ... to.... go... wymyślono..... tongue.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.