ForumCała strona

Nawigacja

Aktualnie online

Gości online: 12

Użytkowników online: 0

Łącznie użytkowników: 25,386
Najnowszy użytkownik: Hisfatt

Logowanie

Nazwa użytkownika

Hasło



Zarejestruj się

Odzyskaj hasło

Shoutbox

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

Zbigniew@
01.04.2024 12:28:45
Wszystkiego najlepszego z okazji świąt.

JazOOn
28.02.2024 19:25:31
ja zostałem przy fusionie ale nazywa się 360. Projektowanie i druk 3d...

MajsterBieda
25.02.2024 00:12:42
Ponad 20 lat .... tosz to sioook panie.... Grin

JazOOn
24.02.2024 20:32:31
a już na pewno mamuty

JazOOn
24.02.2024 20:31:59
Albo dinozaury

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

RSS

Polecamy hosting SferaHost.pl

Zobacz temat

Polski Oficjalny Support PHP-Fusion » PHP-Fusion v5.00-v6.01 Support » Błędy i korekty
 Drukuj temat
Błędne zliczanie w MOD_USER_STAT
kirbi
Mam nadzieję, że tym razem ktoś pomoże. Źle wylicza liczbę zarejestrowanych użytkowników wczoraj i w tym tygodniu. Oto kod:
Pobierz kod źródłowy  GeSHi: PHP
  1. openside("LuDzIe");
  2.  
  3. //wszystkich userow
  4. $userow = dbcount("(user_id)", "users", "user_status<='1'");
  5. echo"<center><b>Użytkowników: ".$userow."</b><br></center>";
  6.  
  7. //oddzielenie
  8. echo"<hr>";
  9.  
  10. //dzisiaj
  11. $result = dbquery("SELECT user_id,user_name, user_joined FROM ".$db_prefix."users ORDER BY user_joined DESC");
  12. $time = time(); $today=0;
  13. while($data = dbarray($result)){
  14. $data1 = showdate('%D', $data&#91;user_joined&#93;);
  15. $data2 = showdate('%D', $time);
  16. if($data1 == $data2) $today++;
  17. }
  18. echo"<img src='".IMAGES."user/week.gif'> <b>Dzisiaj: ".$today."<br>";
  19.  
  20. //wczoraj
  21. $time1 = time()-86400*1;
  22. $yday = dbcount("(user_id)", "users", "user_joined >= $time1");
  23. echo"<img src='".IMAGES."user/today.gif'> <b>Wczoraj: ".$yday."<br>";
  24.  
  25. //w tygodniu
  26. $time7 = time()-86400*7;
  27. $week = dbcount("(user_id)", "users", "user_joined >= $time7");
  28. echo "<b><img src='".IMAGES."user/5.gif'> W tym tygodniu: </b>".$week."<br>";
  29.  
  30. //oddzielenie
  31. echo"<hr>";
  32.  
  33. //najnowszy user
  34. $data = dbarray(dbquery("SELECT user_id,user_name FROM ".$db_prefix."users WHERE user_status='0' ORDER BY user_joined DESC LIMIT 0,1"));
  35. echo"<center><b>Najnowszy: <a href='".BASEDIR."profile.php?lookup=".$data&#91;'user_id'&#93;."' class='side'>".$data&#91;'user_name'&#93;."</a></b></center>";
  36.  
  37. closeside();
Zinterpretowano w sekund: 0.043, wykorzystano GeSHi 1.0.8.10

Edytowane przez Pieka dnia 14.12.2008 16:25:05
 
Wścibski Gość
Dodany dnia 25.04.2024 01:27:47
Pan Kontekstualny

Postów: n^x
Data rejestracji: Zawsze

Polecamy hosting SferaHost.pl
IP: localhost  
kefirek
Teraz powinno działać:
Pobierz kod źródłowy  GeSHi: PHP
  1. openside("LuDzIe");
  2. //wszystkich userow
  3. $wszystkich = dbcount("(user_id)", DB_USERS."");
  4. //dzis
  5. $dziś = dbcount("(user_id)", $db_prefix."users WHERE DATE(FROM_UNIXTIME(user_joined)) = DATE(NOW())");
  6. //wczoraj
  7. $wczoraj = dbcount("(user_id)", $db_prefix."users WHERE DATE(FROM_UNIXTIME(user_joined)) = DATE(NOW() - INTERVAL 1 DAY)");
  8. //w tym tygodniu
  9. $tydzien = dbcount("(user_id)", $db_prefix."users WHERE WEEKOFYEAR(DATE(FROM_UNIXTIME(user_joined))) = WEEKOFYEAR(DATE(NOW()))");
  10. //najnowszy user
  11. $wynik = dbquery("SELECT * FROM ".$db_prefix."users ORDER BY user_joined DESC LIMIT 1");
  12. $r = dbarray($wynik);
  13. echo "<table border='0' width='100%' class='small'>
  14. <tr>
  15. <td class='small'>Wszystkich:</td><td align='right' class='small'>".number_format($wszystkich)."</td></tr>
  16. <td class='small'>Dziś:</td><td align='right' class='small'>".number_format($dziś)."</td></tr>
  17. <td class='small'>Wczoraj:</td><td align='right' class='small'>".number_format($wczoraj)."</td></tr>
  18. <td class='small'>W tym tygodniu:</td><td align='right' class='small'>".number_format($tydzien)."</td></tr>
  19. <td class='small'>Najnowszy:</td><td align='right' class='small'><a href='".BASEDIR."profile.php?lookup=".$r&#91;'user_id'&#93;."' class='side'>".$r&#91;'user_name'&#93;."</a></td></tr>
  20. </table>";
  21. closeside();
Zinterpretowano w sekund: 0.028, wykorzystano GeSHi 1.0.8.10

Edytowane przez kefirek dnia 15.12.2008 21:30:48
 
kirbi
Teraz działa prawidłowo tylko jedno zastrzeżenie, przy Dzisiaj wyświetla się 0, a dziś się zarejestrowało przynajmniej 6 osób.
 
kefirek
kirbi napisał/a:
Teraz działa prawidłowo tylko jedno zastrzeżenie, przy Dzisiaj wyświetla się 0, a dziś się zarejestrowało przynajmniej 6 osób.


Sprawdzałem i wyświetla jak trzeba i dziś pokazuje także poprawnie. Mozna zobaczyć na www.gc.boo.pl
Edytowane przez kefirek dnia 14.12.2008 17:11:21
 
kirbi
Nie może być. Coś jest nie tak: http://www.golden...l/news.php panel Stat Kliknij w najnowszego i zobaczysz ze dzis sie zarejestrowal, a w panelu jest 0.
 
kefirek
O przepraszam zrobiłem błąd i dlatego było cały czas 0 tam gdzie masz
Pobierz kod źródłowy  Rozwiń Kod źródłowy


Zmien na

Pobierz kod źródłowy  Rozwiń Kod źródłowy


Literka mi sie pomyliła
Edytowane przez kefirek dnia 14.12.2008 17:25:00
 
kirbi
Wielkie dzięki, teraz sobie tylko przerobie na ładniejszy. Ale jeszcze raz dzięki, od rana się z tym użerałem.
 
slawekneo
Ja tu sie przyczepie do skryptu by @kefirek :p a mianowicie do dwoch bledow.
Pierwszy to: uzycie funkcji dbcount ktore przy duzej ilosci userow w bazie bedzie ja spowalniac (jak wiadomo tego typu panele laduja na strony glowne wiec im mniej tego typu zapytan tym lepiej).

Drugi to: nieprawidlowe zliczanie zarejestrowanych userow poprzez brak wyszczegolnienia roku. Juz tlumacze o co kaman. Twoj skrypt dziala dobrze tylko i wylacznie przez pierwszy rok istnienia strony, jezeli strona istnieje juz np. 4 lata to Twoje zapytania pobieraja liczbe rejestracji np. w dniu dzisiejszym z wszystkich 4 lat, a nie z aktualnego roku.

Oto maksymalnie zoptymalizowany kod rejestracji userow (testowany na stronie dzialajacej juz pare lat i o pokaznej liczbie userow):
Pobierz kod źródłowy  Rozwiń Kod źródłowy PHP


Pozdro!!
Edytowane przez Pieka dnia 15.12.2008 00:28:16
 
Przejdź do forum:
Created by Arox Copyright (C) 2004
Copyright (C) 2004 - 2018 Ekipa PHP-Fusion.pl