skanuj0397 (3)

skanuj0397 (3)



Rozdział 15. ♦ Generowanie statystyk 413

Modyfikacji uległa funkcja checkPass. Przede wszystkim zostało zmienione zapytanie pobierające dane z tabeli Users. W przykładzie z rozdziału 14. było to zapytanie pobierające liczbę wierszy, w których nazwa i hasło użytkownika były takie same, jak przekazane funkcji w postaci argumentów. Tym razem zapytanie pobiera identyfikator użytkownika, o nazwie i haśle przekazanym w postaci argumentów. Ma ono zatem postać:

SELECT Id FROM Users WHERE Nazwa=,$user' AND Hasło-1Spass'"

Zapytanie jest wysyłane do serwera MySQL za pomocą funkcji mysql_query, a jego wynik jest pobierany za pomocą funkcji nfysql_fetch_row. W przypadku gdy wywołanie mysqł_fetch_row zwróci wartość false, czyli kiedy wynikiem zapytanie jest pusty zbiór wierszy, oznacza to, że podane dane są nieprawidłowe i funkcja checkPass zwraca wartość 2, oznaczającą błąd logowania. Jeśli jednak dane były prawidłowe, w wyniku zapytania otrzymamy identyfikator użytkownika, który jest przypisywany zmiennej userld. Sprawdzane jest również, czy w wyniku zapytania został zwrócony dokładnie jeden wiersz (funkcja mysql_num_rows).

Dalsze postępowanie zależy od tego, czy jest ustawiona zmienna statRecordld i jaka jest jej wartość. Jeśli jest ustawiona, a jej wartość jest różna od zera, oznacza to, że dany użytkownik był już na stronie głównej, a zatem jego odwołanie do naszej witryny zostało zapisane w tablicy Stats. Oznacza to również, że wartość zmiennej statRecordld wskazuje identyfikator rekordu w tablicy Stats odnoszącego się do odwiedzin tego użytkownika. W takim wypadku rekord ten musi zostać zmieniony, tak aby w polu userld został zapisany identyfikator załogowanego użytkownika (czyli wartość zmiennej userld). Niezbędne jest zatem wykonanie zapytania SQL w postaci:

UPDATE STATS SET Userld - Suserld WHERE Id = $id

Jeśli zmienna statRecordld nie jest ustawiona, oznacza to, że użytkownika nie było na stronie głównej, np. wywołał bezpośrednio skrypt logowania. Jeśli natomiast zmienna statRecordld jest ustawiona, ale ma wartość 0, oznacza to, że użytkownik był na stronie głównej, ale nie udało się dokonać wpisu w tablicy Stats. W obu tych przypadkach dołączamy do kodu treść pliku mysąlJunctions.php oraz dokonujemy nowego wpisu w tablicy Stats za pomocą funkcji addStatRecord.

Generowanie statystyk

Czas zająć się generowaniem statystyk. Nasz skrypt umożliwi wybór okresu, z jakiego mają być pobierane dane. Zaczniemy zatem od przygotowania formularza, który pozwoli na dokonanie wyboru. Dostępne będą zarówno predefiniowane okresy:

♦    od początku istnienia bazy,

♦    z ostatnich 365 dni,

♦    z ostatnich 30 dni,

♦    z ostatnich 7 dni,

♦    z ostatniego dnia,


Wyszukiwarka

Podobne podstrony:
64175 skanuj0385 (2) Rozdział 15. ♦ Generowanie statystyk 401 Napiszmy zatem funkcję, która pozwoli
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
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