To jest tylko wersja do druku, aby zobaczyć pełną wersję tematu, kliknij TUTAJ
phpBB2 by Przemo
Support forów phpBB2 modified by Przemo

1.12.7 i starsze - Zliczanie u?ytkowników obecnych przez ostatnie 24h

pawelooss - 31-03-2009, 22:50

Nie bardzo pasowało mi to rozwiązanie z liczbą userów w nawiasie, więc wplotłem ją w tekst, co dało:
Kod:
Przez ostatnie xx godziny na forum było x użytkowników:


Wklejam zmodyfikowaną instrukcję, gdyby ktoś też tak chciał zrobić. ;)

Kod:
#
#-----[ OPEN ]----------
#

index.php

#
#-----[ FIND ]----------
#

            $sql = "SELECT user_id, username, user_level, user_jr, user_session_time, user_allow_viewonline
                FROM " . USERS_TABLE . "
                WHERE user_id > 0
                    AND user_session_time >= $time_to_show
                ORDER BY user_level = 1 DESC, user_jr DESC, user_level = 2 DESC, user_level = 0 DESC, username";
            if ( !($result = $db->sql_query($sql)) )
            {
                message_die(GENERAL_ERROR, 'Could not obtain user/day information', '', __LINE__, __FILE__, $sql);
            }

#
#-----[ AFTER ADD ]----------
#

$user_day_quantity = $db->sql_numrows($result);

#
#-----[ FIND ]----------
#

'USERS_OF_THE_DAY_LIST' => ($board_config['u_o_t_d'] && $userdata['u_o_t_d']) ? sprintf($lang['Day_users'], $board_config['last_visitors_time']) . ' ' . $day_userlist : '',

#
#-----[ REPLACE WITH ]----------
#

        'USERS_OF_THE_DAY_LIST' => ($board_config['u_o_t_d'] && $userdata['u_o_t_d']) ? sprintf($lang['Day_users'], $board_config['last_visitors_time']) . ' ' . $user_day_quantity . ' ' . $lang['Day_users2'] . $day_userlist : '',


#
#-----[ OPEN ]----------
#

language/lang_polish/lang_main.php

#
#-----[ FIND ]----------
#

$lang['Day_users'] = 'Przez ostatnie %s godziny byli na forum:';

#
#-----[ REPLACE WITH ]----------
#

$lang['Day_users'] = 'Przez ostatnie %s godziny na forum było';
       
#
#-----[ AFTER ADD ]----------
#

$lang['Day_users2'] = 'użytkowników: ';

oxygen - 21-04-2009, 11:13

Prościej zrobiłem :) od pawelooss

Podstawowa instrukcja z pierwszego postu tylko zamiast tego
Kod:

'USERS_OF_THE_DAY_LIST' => ($board_config['u_o_t_d'] && $userdata['u_o_t_d']) ? sprintf($lang['Day_users'], $board_config['last_visitors_time']) . ' ' . $day_userlist : '',


wklejamy to
Kod:
  'USERS_OF_THE_DAY_LIST' => ($board_config['u_o_t_d'] && $userdata['u_o_t_d']) ? sprintf($lang['Day_users'], $board_config['last_visitors_time']) . ' -><B>' . $ile . '</B><- użytkowników : ' . $day_userlist : '',


rezultat Przez ostatnie 24 godziny byli na forum: ->XX<- użytkowników :

gdzie liczba jest pogrubiona pasująca do stylu statystyk

Podgląd demo www.skuter4t.net

korownik - 10-07-2009, 16:10

Witam mam problem

pokazuje się mi sam nawias bez liczby ( )

w załączniku daje mój index

proszę o pomoc z góry thx :)


[ Dodano: 10-07-2009, 17:12 ]
mój index

warna - 10-07-2009, 17:09

Przeczytałeś instrukcję w ogóle?

Znajdź
Kod:
'USERS_OF_THE_DAY_LIST' => ($board_config['u_o_t_d'] && $userdata['u_o_t_d']) ? sprintf($lang['Day_users'], $board_config['last_visitors_time']) . ' (' . $db->sql_numrows($result) . ') ' . $day_userlist : '',


zamień na
Kod:
'USERS_OF_THE_DAY_LIST' => ($board_config['u_o_t_d'] && $userdata['u_o_t_d']) ? sprintf($lang['Day_users'], $board_config['last_visitors_time']) . ' (' . $ile . ') ' . $day_userlist : '',

tymek - 25-10-2009, 11:17

Ktoś wie, co zrobić, aby te statystyki wygladały tak, jak statystyki aktualnie online na forum?

Czyli:
przez ostatnich 24 godzin na forum bylo: xxx (wszystkich razem), uzytkoników: xxx, gości: xxx

??

arehiba - 28-11-2010, 09:06

wgrałem tego moda i dlaczego mi się robi:

Przez ostatnie 24 godziny byli na forum: ()

?

Pavelx2 - 05-12-2010, 18:15

Mi wyskakuje taki błąd:
Warning: mysql_num_rows(): 25 is not a valid MySQL result resource in /homepages/23/d341321355/htdocs/db/mysql4.php on line 176



Załączam plik index, proszę zróbcie mi to !

Jagus1920 - 05-08-2011, 10:44

Gdzie ten kod wkleić ?
Matteo - 16-09-2011, 18:24

Jagus1920,
Cytat:
Kod:
#
#-----[ OPEN ]----------
#

index.php

Justus - 15-12-2011, 22:52

tymek napisał/a:
Ktoś wie, co zrobić, aby te statystyki wygladały tak, jak statystyki aktualnie online na forum?

Czyli:
przez ostatnich 24 godzin na forum bylo: xxx (wszystkich razem), uzytkoników: xxx, gości: xxx

??


Dołączam się do prośby, czy jest możliwość dodatkowego wyświetlania ilu gości odwiedziło nasze forum ?.

Azuel - 02-01-2013, 13:00

Witam serdecznie.

Mam pytanko, czy idzie jakoś połączyć kod z instrukcji tj:

Kod:
$sql = "SELECT user_id, username, user_level, user_jr, user_session_time, user_allow_viewonline
                FROM " . USERS_TABLE . "
                WHERE user_id > 0
                    AND user_session_time >= $time_to_show
                ORDER BY user_level = 1 DESC, user_jr DESC, user_level = 2 DESC, user_level = 0 DESC, username".$last_visitors_limit;
            if ( !($result = $db->sql_query($sql)) )
            {
                message_die(GENERAL_ERROR, 'Could not obtain user/day information', '', __LINE__, __FILE__, $sql);
            }



z kodem który sortuje nazwy użytkowników według pierwszeństwa grup tj:

Kod:
$sql = "SELECT a.user_id, a.username, a.user_level, a.user_jr, a.user_session_time, a.user_allow_viewonline, b.user_id, b.group_id, c.group_id, c.group_order
                FROM " . USERS_TABLE . " a JOIN " . USER_GROUP_TABLE . " b JOIN " . GROUPS_TABLE . " c ON a.user_id=b.user_id
                WHERE a.user_id > 0
                                        AND b.group_id=c.group_id
                                        AND c.group_order > 0
                    AND user_session_time >= $time_to_show  " . $sql_fields . "
                                        ORDER BY c.group_order
                                        " . $last_visitors_limit;
            if ( !($result = $db->sql_query($sql)) )
            {
                message_die(GENERAL_ERROR, 'Could not obtain user/day information', '', __LINE__, __FILE__, $sql);
            }




Cały czas kombinuje jak by to zrobić ale za cienki jestem chyba :P potrzebuje zrobić tak żeby i sortowało odpowiednio, i pokazywało poprawne zliczanie.

Gdy znowu jest normalnie kod który posiadam na sortowanie według grup, to licznik zlicza każdego użytkownika podwójnie.


Prosiłbym o pomoc ewentualnie jakieś rady jak to połączyć razem ;)

Pozdrawiam.

kooza - 03-01-2013, 23:05

Kod:
$sql = "SELECT a.user_id, a.username, a.user_level, a.user_jr, a.user_session_time, a.user_allow_viewonline, b.user_id, b.group_id, c.group_id, c.group_order
                FROM " . USERS_TABLE . " a JOIN " . USER_GROUP_TABLE . " b JOIN " . GROUPS_TABLE . " c ON a.user_id=b.user_id
                WHERE a.user_id > 0
                                        AND b.group_id=c.group_id
                                        AND c.group_order > 0
                    AND user_session_time >= $time_to_show  " . $sql_fields . "
                                        ORDER BY c.group_order
                                        " . $last_visitors_limit;
            if ( !($result = $db->sql_query($sql)) )
            {
                message_die(GENERAL_ERROR, 'Could not obtain user/day information', '', __LINE__, __FILE__, $sql);
            }
           $ile = $db->sql_numrows($result);

Azuel - 03-01-2013, 23:18

Przecież to mi nie pomaga.

Czy do obu kodów które podałem w poprzednim poście muszę dodać
Kod:
$ile = $db->sql_numrows($result);


żeby ktoś zrozumiał że tak też mam w pliku index.php i że nie pominąłem tej części instalacji? ;)

Pierwszy kod jest z instrukcji na zliczanie,

Drugi kod jest z modyfikacji po której wszystkie osoby sortuje według grup.

@ Kooza wybacz ale nie pomogła mi Twoja opcja bo to jest nadal drugi kod który podałem oraz na samym końcu też widniała linijka którą podałeś, tak przy jednym kodzie jak i drugim.

Problem w tym że pierwszy kod zlicza poprawnie ale grup nie sortuje a drugi kod na odwrót dlatego pytam czy jest możliwośc żeby mi ktoś pomógł je połączyć razem aby oddawały na forum obie funkcje.

Pozdrawiam.

MQs - 04-01-2013, 03:10

Azuel, Wyczyść cache i powinno działać. Samo zapytanie nie jest istotne, aby zwracało użytkowników (obojętnie w jakiej kolejności) - wstawiony kod ich policzy.
Kod:
$ile = $db->sql_numrows($result);
To jest praktycznie cała modyfikacja - reszta to wywalenie wyniku na ekran.

Azuel - 07-01-2013, 00:50

Wyczyściłem cache ręcznie z FTP prócz .htaccess oraz próbowałem czyścić przez PA, nic to nie dało.

Nadal zlicza podwójnie tych użytkowników i pokazuje dwukrotnie większą liczbę.

Raczej wszystko dobrze zrobiłem i pomyłek nie ma w index.php ale nie twierdzę że nie może się gryźć z czymś.

Załączam pliczek ;)

Pozdrawiam.



Powered by phpBB modified by Przemo © 2003 phpBB Group