Rozdział 15. ♦ Generowanie statystyk 405
if(!($row = mysql_fetch_row($result))){
//echoOProblem z bazą danych: getknownUsers: odrzucone zapytanie"): return 0:
return $row[0]:
}
Funkcja getAl 1 Users, pobierająca liczbę niezalogowanych użytkowników, którzy odwiedzili naszą witrynę w danym czasie, będzie miała analogiczną postać. Różnica będzie się sprowadzała do zmiany warunków zapytania SQL, które w tym wypadku będzie miało postać:
SELECT COUNT(*) FROM STATS WHERE Data > DATE_SUB(NOW(). INTERVAL ttimeout MINUTĘ)
Ostatecznie pełny kod zawarty w pliku mysąlJunctions będzie miał postać przedstawioną na listingu 15.5. Znajduje się w nim dodatkowo funkcja makeDBConnection, która służy do nawiązywania połączenia z serwerem MySQL i wyboru bazy test. Funkcja ta zwraca wartość true, jeżeli połączenie i wybór bazy zakończyły się sukcesem, lub wartość fal se — w przeciwnym przypadku. Czynności te są wykonywane za pomocą standardowych konstrukcji języka PHP.
Listing 15.5. Ostateczna treść pliku mysąl Jimctions.php
/* definicje stałych */
defi ne('BROWSER UNKNOWN'. 0); define('BR0WSER_FIREF0X'. 1); defineCBROWSER K0NQUER0R', 2): defi ne (' BROWSER"NETSCAPE'. 3): definet’BR0WSER_M0ZILLA'. 4): defi neC BROWSER MSIE\ 5): define('BR0WSER_0PERA'. 6):
defi neC SYSTEM UNKNOWN'. 0): definet'SYSTEM~LINUX'. 1): defi neC SYSTEM MACOS'. 2): definet'SYSTEM_WINDOWS'. 3);
/* funkcja pobierająca typ przeglądarki */
function getBrowserTypeO
$browser_info - strtolower($_SERVER['HTTP_USER_AGENT']):
if(strpos($browser_info, "opera") !-- false){ return BR0WSER_0PERA:
else if(strpos($browser_info. "netscape") !== false){ return BROWSER_NETSCAPE:
else if(strpos($browser_info. "rasie") != false){ return BR0WSER_MSIE;