skanuj0407 (2)

skanuj0407 (2)



Rozdział 15. ♦ Generowanie statystyk 423

♦    vi sitsStats — pobierająca i wyświetlająca dane dotyczące odwiedzających,

♦    pri ntBrowsersStats — pobierająca i wyświetlająca dane dotyczące przeglądarek,

♦    printSystemsStats — pobierająca i wyświetlająca dane dotyczące systemów operacyjnych,

♦    printUsersStats — pobierająca i wyświetlająca dane dotyczące najczęściej logujących się użytkowników,

♦    printIPStats — pobierająca i wyświetlająca dane dotyczące adresów 1P, z których najczęściej przychodziły połączenia,

♦    printLastHitsStats — pobierająca i wyświetlająca dane adresy IP i daty 10 ostatnich odwiedzin.

Każda z wymienionych funkcji (z wyjątkiem visitsStats) wykonuje odpowiednio sformułowane zapytanie SQL. Ponieważ wynikiem każdego zapytania jest tabela o dwóch kolumnach, do wyświetlania tych wyników (w celu skrócenia i uproszczenia kodu) została wyodrębniona dodatkowa funkcja o nazwie printOueryResult. Otrzymuje ona w postaci argumentu identyfikator wyniku zapytania, zwrócony przez funkcję rnysql_ query, oraz pobiera i wyświetla w pętli while wyniki. Oczywiście wyniki są umieszczane w wierszach i komórkach tabeli HTML.

Przyjrzyjmy się bliżej funkcjom generującym wyniki. Zacznijmy od visitsStats. Jej zadaniem jest pobranie liczby odwiedzin na stronie, zarówno całkowitej, jak i z podziałem na załogowanych i niezalogowanych użytkowników. Kod rozpoczyna się od sprawdzenia, czy zmienna connected ma wartość true, czyli czy jest aktywne połączenie z bazą. Jeśli nie, funkcja kończy działanie, gdyż w takiej sytuacji nie mogłaby wykonać żadnego zapytania. Jeśli jednak połączenie jest aktywne (connected = true), zmiennej query jest przypisywane pierwsze zapytanie, którego celem jest pobranie liczby wszystkich odwiedzających. Konstrukcja tego zapytania zależy od stanu parametrów przekazanych funkcji.

I tak, jeśli argumenty dataOd i dataDo nie są pustymi ciągami znaków, zapytanie będzie miało postać:

SELECT COUNTt*) AS Ile FROM Stats

WHERE Data >= 'SdataOd' AND Data <= 'SdataDo'

ORDER BY Ile DESC

W przypadku gdy dataOd i (lub) dataDo zawierałyby puste ciągi znaków, ale argument ile byłby większy od zera (jak pamiętamy, określałby on w takiej sytuacji liczbę dni, z których mają być generowane statystyki), zapytanie miałoby postać:

SELECT COUNTt*) AS Ile FROM Stats

WHERE Data > DATE_SUB(NOW(). INTERYAL Sile DAY)

ORDER BY Ile DESC

Jeśli natomiast dataOd i (lub) dataDo zawierałyby puste ciągi znaków, a parametr i 1 e byłby mniejszy od jeden, zastosowane zostałoby zapytanie:

SELECT COUNTt*) AS Ile FROM Stats ORDER BY Ile DESC


Wyszukiwarka

Podobne podstrony:
skanuj0387 (3) Rozdział 15. ♦ Generowanie statystyk 403 działania addStatRecord będzie wartość 0. Je
skanuj0393 (2) Rozdział 15. ♦ Generowanie statystyk 409 Kod wyświetlający część główną został przeds
skanuj0397 (3) Rozdział 15. ♦ Generowanie statystyk 413 Modyfikacji uległa funkcja checkPass. Przede
skanuj0403 (2) Rozdział 15. ♦ Generowanie statystyk 419 else{ Squery "WHERE} $query "Stats
skanuj0383 (2) Rozdział 15. ♦ Generowanie statystyk ♦    4 — dla przeglądarek Mozilla

więcej podobnych podstron