Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [SQL][PHP]Update online - konstrukcja
fr33d0m
post
Post #1





Grupa: Zarejestrowani
Postów: 132
Pomógł: 4
Dołączył: 22.10.2010

Ostrzeżenie: (0%)
-----


Posiadam na praktycznie wszystkich podstronach sporego portalu, który tworzę od pół roku taki oto skrypt:

  1. if($ZAPISUJ===1){
  2. mysql_query("UPDATE `online` SET `gdzie` = '1', `czas` = '5' WHERE `sesions_id` = '$id'");
  3. }

Powyższy skrypt zapisuje na jakiej podstronie znajduje się user oraz ustawia kolumnę z czasem sesji na 5 minut.
Mam też plik, który wykonuje cron co 5min w takiej postaci:
  1. mysql_query("UPDATE `online` SET `czas` = (`czas` - '5') WHERE `czas` > 4");

Ma on za zadanie wyeliminowanie nie aktywnych użytkowników, którzy byli zalogowani.

Odnośnie skryptu crona nie mam zastrzeżeń. Natomiast skrypt, który ustawia 5min "życia" sesji przy zaledwie 3rekordach w bazie o unikalnym ID każdy, wydłuża czas generowania strony , o 0.04000 sekundy! na pierwszy rzut oka to malutko, ale przewidywuje w tabeli `online` trzymać około 10k rekordów, więc czas ten mocno się wydłuży...
Mam założone indexy na kolumny, ale problem chyba leży w logice mojego skryptu wywalającego sesje, aby nadać danemu userowi status "offline", gdy ten nie korzysta z portalu przez 5min. Jeśli ktoś ma inną idee, szybszą to będę wdzięczny za wskazówki...

Ten post edytował fr33d0m 2.07.2012, 18:24:51
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
fr33d0m
post
Post #2





Grupa: Zarejestrowani
Postów: 132
Pomógł: 4
Dołączył: 22.10.2010

Ostrzeżenie: (0%)
-----


to powiedz mi jak wywalić zapisaną sesje w bazie (zapisaną!), gdy użytkownik po prostu zamknie przeglądarkę bez wykonania skryptu "wyloguj". Bez użycia AJAXu. Nie da się... trzeba wykonać UPDATE. Jeśli masz na myśli DEL przy usuwaniu, to wolałbym tego uniknąć bo będę musiał przerobić większy kawałek kodu. Co masz na myśli?

Ten post edytował fr33d0m 2.07.2012, 18:49:58
Go to the top of the page
+Quote Post

Posty w temacie
- fr33d0m   [SQL][PHP]Update online - konstrukcja   2.07.2012, 18:23:29
- - Rysh   Twoje rozwiązanie jest do bani. Więc nie dziw się,...   2.07.2012, 18:31:01
- - fr33d0m   Tak, a Twój post to czysty i perfidny spam. Gdyby ...   2.07.2012, 18:34:55
- - Rysh   To nawet nie jest dobre rozwiązanie, wręcz powiedz...   2.07.2012, 18:40:57
- - fr33d0m   to powiedz mi jak wywalić zapisaną sesje w bazie (...   2.07.2012, 18:48:12
- - Rysh   Jak to się nie da? A w czym problem zapisać w bazi...   2.07.2012, 18:53:13
- - fr33d0m   No tak... ale to załatwi tylko 1/2 problemu. Chcę ...   2.07.2012, 18:57:29
- - Rysh   Update i tak będziesz musiał robić, ponieważ będzi...   2.07.2012, 19:02:35
- - fr33d0m   hm... czy aby przypadkiem nie wychodzi na to samo?...   2.07.2012, 19:09:05
|- - Rysh   Cytat(fr33d0m @ 2.07.2012, 20:09:05 )...   2.07.2012, 19:40:12
- - fr33d0m   To głupie, ale specjalnie dla Ciebie zmieniłem kol...   2.07.2012, 19:49:25
|- - Rysh   Poparz kolego: [PHP] pobierz, plaintext <?php$c...   2.07.2012, 20:26:12
|- - fr33d0m   Tak, zgadzam się. Tylko, że UPDATE Twój czy mój, w...   2.07.2012, 20:57:25
- - klocu   Ja mimo wszystko popieram rozwiązanie Rysh'a. ...   2.07.2012, 20:08:11
- - fr33d0m   Panowie, nie kumam was. Rozwiązanie Rysh'a jes...   2.07.2012, 20:19:15
- - peter13135   Może problem załatwi założenie indeksów na pola kt...   2.07.2012, 21:22:34
- - Rysh   Widzę że na siłę chcesz używać CRON'a. Niepotr...   2.07.2012, 21:24:18
- - fr33d0m   @peter12125, też myślałem, aby używać crona wyłącz...   2.07.2012, 21:47:40
- - PtasiorZz   Ja osobiście zrobiłbym to tak: - Nie zapisywałbym...   3.07.2012, 05:49:17
- - fr33d0m   Hmm... Zdecydowanie bardziej ufam ustawieniu czasu...   3.07.2012, 19:21:05
- - PtasiorZz   Odświeżenie sesji a zapisanie ostatniej aktywności...   3.07.2012, 22:39:14


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.12.2025 - 19:24