424 PHP i MySQL dla każdego
Efekt działania zapytania, o ile jego wykonanie zakończyło się sukcesem, jest przypisywany zmiennej allVisits. W przypadku gdyby zapytanie nie zostało poprawnie wykonane, zmienna al 1 Visits przyjmie wartość 0.
Celem drugiego zapytania jest pobranie liczby tych odwiedzających, którzy zalogowali się do serwisu. Jego postać będzie analogiczna do przedstawionej w poprzednim przypadku, z tą różnicą, że będzie musiał zostać dodany dodatkowy warunek w postaci: Stats.Userld <> 1
Wartość 1 w kolumnie Userld oznacza bowiem niezalogowanego użytkownika. A zatem zapytanie to będzie miało jedną z trzech postaci (w zależności od argumentów przekazanych funkcji):
SELECT COUNTC*) AS Ile FROM Stats WHERE Data >- 'SdataOd' AND Data <- 'SdataDo' AND Stats.Userld <> 1 ORDER BY Ile DESC
SELECT COUNTC*) AS Ile FROM Stats WHERE Data > DATE_SUB(N0W(). INTERVAL Sile DAY) AND Stats.Userld o 1 ORDER BY Ile DESC
SELECT COUNTC*) AS Ile FROM Stats WHERE Stats.Userld o 1 ORDER BY Ile DESC
Wynik działania zapytania jest przypisywany zmiennej knownUsersVisits, a gdyby jego wykonanie nie zakończyło się sukcesem, zmienna ta otrzymuje wartość 0. W ten sposób pobrana została całkowita liczba odwiedzin oraz liczba odwiedzin zarejestrowanych użytkowników. Jak łatwo się domyślić, liczba odwiedzin niezarejestrowanych użytkowników wynika z odjęcia od siebie tych wartości, nie ma więc potrzeby wykonywania dodatkowego zapytania. Ostatecznie uzyskane wartości są wyświetlane za pomocą instrukcji echo.
Treść pozostałych funkcji jest do siebie podobna. Zaczynają się od sprawdzenia, czy istnieje połączenie z bazą danych (zmienna connected ma wartość true). Jeśli nie, kończą działanie wywołując instrukcję return. Jeśli jednak połączenie istnieje, jest konstruowane odpowiednie zapytanie, inne dla każdej funkcji. Istnieje jednak część wspólna, którą jest konstrukcja warunków dotyczących okresu, z którego mają być pobierane dane. Warunki te mają taką samą postać jak w wyżej omawianym przykładzie. Dalej przedstawimy zatem jedynie główną treść zapytań, zakładając że mają one dotyczyć pełnego zakresu danych (czyli treść zapytań w sytuacji, kiedy zmienne dataOd i dataDo zawierają puste ciągi znaków, a zmienna ile wartość większą od zera).