Pracuje nad następującym tematem :
Jest baza mssql w której jest min tabela okreslająca aktualne statusy użytkownikow wraz z czasem. Praktycznie nowe wpisy wpadają co minutę.
Chciałbym przy pomocy php zrobić taką dynamicznie aktualizującą się liste userow uwzględaniając aktualne statusy - napewno nastąpia jakies opoznienia ale to jest akceptowalne.
Gdy np user ma wartosc pauza zapytanie wyciaga ta wartosc (w tym wypadku pauza to wartość 3) i aktualizuje wyswietlany status np. zmieniajac kolor na zółto.
Problemy :
1. Zapytanie sql które wyciągnie mi aktualny status dla danego użytkownika w tej chwili (chwila uruchomienia zapytania) :
SELECT dz.Time, u.UserFirstName, u.UserID, dz.UserActionId FROM TUserActionLog AS dz, TUser AS u WHERE u.UserID=16 AND DATEDIFF(MINUTE, GETDATE(), dz.Time) = 0 ORDER BY dz.Time DESC
Zrobiłem takie jednak nie zdaje egazminu ponieważ w danej minucie może wystapić kilka zmian statusów dla danego usera (stany posrednie).
np:
Time UserFirstName UserID UserActionId
2011-10-19 10:31:42.017 Adam 12 3
2011-10-19 10:31:42.017 Adam 12 6
2011-10-19 10:31:39.233 Adam 12 7
2011-10-19 10:31:39.233 Adam 12 2
Jak wyciagnac jedynie najnowszy-najaktualniejszy wpis (UserActionId=3) - jeden wynik ?
2. Jak dalej to pociągnąć. W grę wchodzi php. Muszę dla każdego usera w danej chwili wyciagac zapytaniem status a nastepnie if'ami odpowiednio formatowac tekst w zaleznosci od zwroconego wyniku ?
Na ta chwilę mam połaczenie msql - php :
<?php $connect = odbc_connect("xxx", "xxx", "xxx"); # zapytanie $query = "select dz.Time, u.UserFirstName, u.UserID, dz.UserActionId from TUserActionLog as dz, TUser as u where u.UserID=16 and DATEDIFF(MINUTE, GETDATE(), dz.Time) = 0 order by dz.Time DESC"; # wykonanie_zapytania $result = odbc_exec($connect, $query); # wyświetlenie wynikow while(odbc_fetch_row($result)) { $field1 = odbc_result($result, 1); $field2 = odbc_result($result, 2); $field3 = odbc_result($result, 3); $field4 = odbc_result($result, 4); $field5 = odbc_result($result, 5); } # koniec polaczenia odbc_close($connect); ?>
3. Synchronizacja, aktualizacja wyników, opóźnienia.
W tym przypadku branych pod uwage bedzie ok 30 userow i ich statusy (jest ich ok 10 pozycji).
Pytanie jak to wszystko zopytmalizować żeby w miarę sprawnie działało ?
Dziękuje za pomoc i wskazówki - tymczasem walcze dalej

Adam