ForumCała strona

Nawigacja

Aktualnie online

Gości online: 12

Użytkowników online: 0

Łącznie użytkowników: 25,405
Najnowszy użytkownik: kipolas

Logowanie

Nazwa użytkownika

Hasło



Zarejestruj się

Odzyskaj hasło

Shoutbox

Musisz zalogować się, aby móc dodać wiadomość.

JazOOn
25.06.2025 23:43:19
Dziadziejemy jantom...

jantom
23.06.2025 21:37:31
Z ciekawo?ci pogrzeba?em w historii i jest gorzej ni? my?la?em. Skórka Nadzieja ma ju? 17 lat.

jantom
23.06.2025 21:33:12
... troch? zasiedzia?o Wink

jantom
23.06.2025 21:32:38
Cecha tego, jak z 20+ lat temu pisano strony - tabelki wsz?dzie, szczególnie do tworzenia uk?adów stron. PF d?ugo by? wierny tej tradycji. A obecny szablon Supportu napisa?em z 15 lat temu i chyba mu

Zbigniew@
22.06.2025 17:50:03
Dlaczego forum jest dost?pne tylko dla 10% ludzi? Poniewa? wi?kszo?? osób korzysta z internetu na urz?dzeniach mobilnych.

Pobierz now? wersj?
Pobierz podr?cznik
Zobacz inne oficjalne Supporty
Statystyki supportu
PHP-Fuson PL na Facebooku

RSS

Polecamy hosting SferaHost.pl

Zobacz temat

 Drukuj temat
Statystyki zalogowa? u?ytkowników
dante77
Zlec? wykonanie statystyki zalogowa? u?ytkowników. Nadmieniam, ?e nie chodzi mi o unikalne wizyty.

Statystyka powinna pokazywa?:
- ilo?? zalogowanych u?ytkowników dziennie z podzia?em na poszczególne dni miesi?ca.
- statystyki miesi?czne
- statystyki roczne

Dodatkowo udost?pniam kod, który pokazuje ilo?? zalogowa? dziennie:

Pobierz kod źródłowy  GeSHi: PHP
  1. openside("Licznik zalogowa?");
  2. $rok = date('Y');
  3. $miech = date('n');
  4. $dzien = date('j');
  5. $time = gmmktime(0, 0, 0, $miech, $dzien, $rok);
  6. $dzis = dbquery("SELECT count(user_id) FROM ".$db_prefix."users WHERE user_lastvisit >'$time'");
  7.  
  8.  
  9.  
  10. echo "<table border='0' width='100%' class='small'>
  11. <tr><td class='small'>Dzi? zalogowa?o si?</td><td align='right' class='small'><font color='white'><b>".number_format(dbresult($dzis, 0))."</b></font> userów</td></tr>
  12.  
  13. </table>";
  14. closeside();
Zinterpretowano w sekund: 0.020, wykorzystano GeSHi 1.0.8.10


Zainteresowanych prosz? o kontakt na PW


PW od moderatora:
  1. Zmiana nazwy tematu - Pieka 01.10 - 11:40

Edytowane przez Pieka dnia 22.10.2008 09:55:12
 
http://stronyrobie.pl
W?cibski Go??
Dodany dnia 06.09.2025 14:30:58
Pan Kontekstualny

Postów: n^x
Data rejestracji: Zawsze

Polecamy hosting SferaHost.pl
IP: localhost  
kefirek
Moja koncepcja jest taka zrobi? w bazie danych tabele
Z polami rok, miesi?c, tydzie?, przedwczoraj, wczoraj
Kod do wklejenia w dodatkowe strony jest taki
Pobierz kod źródłowy  GeSHi: PHP
  1. <?php
  2. $result = dbquery("DROP TABLE IF EXISTS ".$db_prefix."logowania");
  3. $result = dbquery("CREATE TABLE ".$db_prefix."logowania (
  4. `log_id` smallint(5) unsigned NOT NULL auto_increment,
  5. `rok` int(10) unsigned NOT NULL default '0',
  6. `miesioc` int(10) unsigned NOT NULL default '0',
  7. `tydzien` int(10) unsigned NOT NULL default '0',
  8. `przedwczoraj` int(10) unsigned NOT NULL default '0',
  9. `wczoraj` int(10) unsigned NOT NULL default '0',
  10. `user_id` smallint(5) unsigned NOT NULL default '0',
  11. PRIMARY KEY (`log_id`)
  12. ) TYPE=MyISAM;");
  13.  
  14.  
  15. if ($result) {
  16. echo "Baza danych zosta?a utworzona poprawnie.<br>";
  17. } else {
  18. echo "B??d baza danych nie zosta?a utworzona.<br>";
  19. }
  20. ?>
Zinterpretowano w sekund: 0.018, wykorzystano GeSHi 1.0.8.10

Potem chcia?em ustawi? cookie wa?ne do pó?nocy i je?li if (!isset($_COOKIE["data"]) istnieje to nie dodawa? danych do tabeli do kolumny wczoraj. Potem sprawdza?o by si? czy data w polu przedwczoraj jest mniejsza o 2 dni od daty dzisiejsze je?li tak zostawiany tak jak jest je?li nie pole aktualizujemy tak samo z innym polami robimy.
Szczerze mówi?c ci??kie do zrobienia na chwile obecn? próbowa?em zrobi? cos takiego ale jeszcze my?l? nad zrobieniem tego

Pobierz kod źródłowy  GeSHi: PHP
  1. if (iMEMBER) {
  2.  
  3. if (!isset($_COOKIE&#91;"data"&#93;)) {
  4.  
  5. $czas = mktime(23,59,59,date("m"),date("d"),date("Y"));
  6. setcookie("data", "czas", $czas);
  7.  
  8. }
  9. else
  10. {
  11.  
  12. $wynik = dbquery("SELECT * FROM ".$db_prefix."logowania WHERE user_id='".$userdata&#91;'user_id'&#93;."'");
  13.  
  14. if(dbrows($wynik) == 0) {
  15.  
  16. $result = dbquery("INSERT INTO ".$db_prefix."logowania (rok, miesioc, tydzien, przedwczoraj, wczoraj, user_id) VALUES ('".time()."', '".time()."', '".time()."', '".time()."', '".time()."', '".$userdata&#91;'user_id'&#93;."')");
  17. }
  18.  
  19. }
  20. }
  21. openside("Licznik zalogowa?");
  22. $rok = date('Y');
  23. $miech = date('n');
  24. $dzien = date('j');
  25. $time = gmmktime(0, 0, 0, $miech, $dzien, $rok);
  26. $przedw = $time - 60*60*24;
  27.  
  28. $wynik1 = dbquery("SELECT * FROM ".$db_prefix."logowania WHERE user_id='".$userdata&#91;'user_id'&#93;."'");
  29. $data = dbarray($wynik1);
  30. $w1 = $data&#91;'wczoraj'&#93;;
  31.  
  32. $dzis = dbquery("SELECT count(user_id) FROM ".$db_prefix."users WHERE user_lastvisit >'$time'");
  33. $wczoraj = dbquery("SELECT count(log_id) FROM ".$db_prefix."logowania WHERE wczoraj <'$time' AND wczoraj >'$przedw'");
  34. $przedwczoraj = dbquery("SELECT count(log_id) FROM ".$db_prefix."logowania WHERE wczoraj <'$przedw'");
  35. echo "<table border='0' width='100%' class='small'>
  36. <tr>
  37. <td class='small'>Dzi? zalogowa?o si?</td>
  38. <td align='right' class='small'><font color='white'><b>".number_format(dbresult($dzis, 0))."</b></font> userów</td>
  39. </tr>
  40. <tr>
  41. <td class='small'>Wczoraj zalogowa?o si?</td>
  42. <td align='right' class='small'><font color='white'><b>".number_format(dbresult($wczoraj, 0))."</b></font> userów</td>
  43. </tr>
  44. <tr>
  45. <td class='small'>Przedwczoraj zalogowa?o si?</td>
  46. <td align='right' class='small'><font color='white'><b>".number_format(dbresult($przedwczoraj, 0))."</b></font> userów</td>
  47. </tr>
  48. </table>";
  49.  
  50. closeside();
Zinterpretowano w sekund: 0.025, wykorzystano GeSHi 1.0.8.10
 
dante77
Wczoraj i przedwczoraj jest mi nie potrzebne. Je?eli b?dzie to ok, ale najwa?niejsze dla mnie to staty dzienne, miesi?czne i roczne.
Edytowane przez dante77 dnia 01.10.2008 12:43:16
 
http://stronyrobie.pl
kefirek
Chcia?em to zrobi? tak
W bazie danych pola
Rok Miesi?c

U?ytkownik który jest zalogowany dodaje si? aktualna data to tych dwóch pól ( ale tylko wtedy kiedy data tego u?ytkownika nie istnieje ) I potem sprawdza?o by si? daty i je odpowiedni aktualizowa?o. Jak wiadomo data dzisiejsza liczy si? od razu do statystyk z tego miesi?ca i roku. Gdyby u?ytkownik nie logowa? si? w tym miesi?cu to data by?a by brana tylko do statystyk rocznych. Czyli trzeba odpowiednio zrobi? warunki if by aktualizowa?y pola
 
dante77
Za??czy?em schemat jak chcia?bym ?eby to wygl?da?o.
Podobnie jest zrobione w modyfikacji Archiwum Newsów.
dante77 dodał/a następującą grafikę:
schemat.jpg

Edytowane przez dante77 dnia 01.10.2008 13:24:16
 
http://stronyrobie.pl
kefirek
Wklej sobie w panel powinno dzia?a?
Zrobi?em na polu user_lastvisit bo je?li kto? si? dzi? zalogowa? to b?dzie policzony do aktualnego miesi?ca dnia oraz roku ale je?li kto? si? nie logowa? w dzi? ale wczoraj to b?dzie policzony dla aktualnego miesi?ca wiec wydaje mi si? ?e dzia?a dobrze

Pobierz kod źródłowy  GeSHi: PHP
  1. openside("Licznik zalogowa?");
  2.  
  3. $rok = date('Y');
  4. $miech = date('n');
  5. $dzien = date('j');
  6. $time = gmmktime(0, 0, 0, $miech, $dzien, $rok);
  7. $miech1 = gmmktime(0, 0, 0, $miech, 1, $rok);
  8. $rok1 = gmmktime(0, 0, 0, 1, 1, $rok);
  9. $dzis = dbquery("SELECT count(user_id) FROM ".$db_prefix."users WHERE user_lastvisit >'$time'");
  10. $miech = dbquery("SELECT count(user_id) FROM ".$db_prefix."users WHERE user_lastvisit >'$miech1'");
  11. $roku = dbquery("SELECT count(user_id) FROM ".$db_prefix."users WHERE user_lastvisit >'$rok1'");
  12. $dwamiechy = dbquery("SELECT count(user_id) FROM ".$db_prefix."users WHERE user_lastvisit >'$dwa'");
  13. $trzymiechy = dbquery("SELECT count(user_id) FROM ".$db_prefix."users WHERE user_lastvisit >'$trzy'");
  14.  
  15. $miesiac = date("m")-1;
  16. if ($miesiac<1) {
  17. $miesiac = 12;
  18. $rok -= 1;
  19. }
  20.  
  21. $miesiac1 = date("m")-2;
  22. if ($miesiac1<2) {
  23. $miesiac1 = 12;
  24. $rok -= 1;
  25. }
  26.  
  27. $miesioce2 = date("t", mktime(0, 0, 0, $miesiac, 1, $rok));
  28. $miesioce3 = date("t", mktime(0, 0, 0, $miesiac1, 1, $rok));
  29.  
  30. $dni = $miesioce2*60*60*24;
  31. $dni2 = $miesioce3*60*60*24;
  32.  
  33. $dwa = $miech1 + $dni;
  34.  
  35. $trzy = $miech1 + $dni + $dni2;
  36.  
  37. echo "<table border='0' width='100%' class='small'>
  38. <tr>
  39. <td class='small'>Dzi?</td>
  40. <td align='right' class='small'>".number_format(dbresult($dzis, 0))."</td>
  41. </tr>
  42.  
  43. <tr>
  44. <td class='small'>W tym misi?cu:</td>
  45. <td align='right' class='small'>".number_format(dbresult($miech, 0))."</td>
  46. </tr>
  47.  
  48. <tr>
  49. <td class='small'>W ostanich 2 misi?cach:</td>
  50. <td align='right' class='small'>".number_format(dbresult($dwamiechy, 0))."</td>
  51. </tr>
  52.  
  53. <tr>
  54. <td class='small'>W ostanich 3 misi?cach:</td>
  55. <td align='right' class='small'>".number_format(dbresult($trzymiechy, 0))."</td>
  56. </tr>
  57.  
  58. <tr>
  59. <td class='small'>W tym roku:</td>
  60. <td align='right' class='small'>".number_format(dbresult($roku, 0))."</td>
  61. </tr>
  62.  
  63. </table>";
  64.  
  65. closeside();
Zinterpretowano w sekund: 0.028, wykorzystano GeSHi 1.0.8.10


Wiadomo?? doklejona:
Aha ty chcesz jak na tej grafice idzie takie co? zrobi? ale dzi? ju? raczej tego nie zrobi? bo cisn? do szko?y zaraz :D ale dzi? wieczorem albo jutro mo?e zrobi?
Edytowane przez kefirek dnia 01.10.2008 14:01:21
 
dante77
W takiej formie nie b?dzie dzia?a? dobrze bo b?dzie przek?amywa? wyniki, ju? wcze?niej poruszali?my ten temat.

Modyfikacje jest mi potrzebna w takiej formie jak zamie?ci?em powy?ej.


 
http://stronyrobie.pl
kefirek
Nie przek?amuje wyników bo sprawdza?em

Jakby? chcia? zrobi? kto si? zalogowa? wczoraj i przedwczoraj to tak wtedy przek?amuje ale jak chcesz zrobi? kto? si? zalogowa? dzi?, w tym miesi?cu w ostatnich 2 miesi?cach w tym roku to nie przek?amuje


Wiadomo?? doklejona:
Jak kto? si? zalogowa? dzi? to wtedy data ta jest brana pod uwag? ?e logowa? si? tym miesi?cu i w tym roku ale jak nie logowa? si? dzi? ale powiedzmy tydzie? temu to wy?wietli go ?e logowa? si? w tym miesi?cu i w tym roku a jak si? logowa? 3 miesi?ce temu to wy?wietli go ?e logowa? si? tylko w tym roku. Wi?c w tej formie nie przek?amuje wyników zobacz sobie sam ?e kod co poda?em wy?ej dzia?a dobrze.

Wiadomo?? doklejona:
Je?li chcesz dok?adnie tak jak na grafice pod??e? ?eby pokazywa?o miesi?ce i dni w miesi?cu ile by?o logowa? to na polu user_lastvisit tego nie zrobisz. Jak wróc? ze szko?y to pomy?le jak to zrobi?
Edytowane przez kefirek dnia 01.10.2008 14:42:43
 
dante77
Nie zale?y mi ?eby by?o zrobione na polu user_lastvisit. Poda?em ten kod, bo my?la?em, ?e mo?e by? pomocny.

@edit
W za??czniku za??czam gotowe rozwi?zanie, które wykona? dla mnie metaxy. Jest dok?adnie tak jak chcia?em.

Instalacja:
Nale?y wrzuci? wszystkie pliki tak jak s? do g?ównego katalogu (foldery s? utworzone w?a?ciwie). Nast?pnie wtyczk? nale?y zainstalowa?. W PA -> Wtyczki pojawi si? opcja statystyki zalogowa?.
dante77 dodał/a następującą plik:
statystyki.zip [6.56kB / 582 Pobrane]

Edytowane przez dante77 dnia 22.10.2008 09:37:53
 
http://stronyrobie.pl
Przejdź do forum:
Created by Arox Copyright (C) 2004
Copyright (C) 2004 - 2018 Ekipa PHP-Fusion.pl