516 PHP i MySQL dla każdego
Liczba wierszy generowanych w pętli while jest kontrolowana przez zmienną i ter, której wartość zmniejsza się o jeden w każdym przebiegu.
W dolnym wierszu tabeli są umieszczane odnośniki nawigacyjne. Każdy z nich jest wywołaniem skryptu forum.php, któremu zostały przekazane parametry action o wartości showts oraz id o wartości wskazującej numer strony listy wątków. Odnośniki te mają zatem schematyczną postać:
<a href-'forum.php? acti on=showts&i d-idstrony' >Akcja</a>
Pierwszy odnośnik, o nazwie Początek, ma umożliwić przeniesienie się na pierwszą stronę listy wątków. Jednak jest on wyświetlany tylko wtedy, gdy strona bieżąca nie jest stroną pierwszą czyli kiedy fałszywy jest warunek $page == 1. Jeśli taki warunek jest prawdziwy, jest wyświetlany jedynie zwykły tekst, bez znaczników <a>.
Drugi odnośnik, o nazwie Poprzednie, ma umożliwić przeniesienie się na stronę wcześniejszą w stosunku do bieżącej. Podobnie jak w poprzednim przypadku, jest on wyświetlany jedynie wtedy, gdy istnieje strona wcześniejsza, czyli kiedy strona bieżąca nie jest stroną pierwszą. Warunkiem sprawdzanym w tym miejscu jest $page - 1 > 0, choć oczywiście możliwe byłoby również zastosowanie warunku z poprzedniego przypadku.
Trzeci odnośnik, o nazwie Następne, ma umożliwić przeniesienie się na stronę następną w stosunku do strony bieżącej. Jest on wyświetlany wówczas, gdy istnieje strona następna, czyli kiedy strona bieżąca nie jest ostatnią. Sprawdzany jest w tym przypadku warunek Spage + 1 <= SpagesCount, choć możliwe byłoby także zastosowanie warunku $page < SpagesCount.
Czwarty odnośnik, o nazwie Koniec, ma umożliwić przeniesienie się na ostatnią stronę, jest więc wyświetlany w sytuacji, kiedy strona bieżąca nie jest stroną ostatnią. Do sprawdzenia jest wykorzystywany warunek Spage >= SpagesCount i odnośnik jest wyświetlany tylko wtedy, gdy jest on fałszywy. Jeśli warunek ten byłby prawdziwy, zamiast odnośnika na ekranie pojawi się jedynie zwykły tekst.
Zadaniem funkcji showThread jest wyświetlenie artykułów z wątku o identyfikatorze przekazanym jej w postaci argumentu id. Ponieważ takich artykułów może być dużo, w tym przypadku również stosujemy procedury nawigacyjne, a więc funkcja otrzymuje dodatkowo argumenty page i pageSize określające numer wyświetlanej strony oraz rozmiar strony.
Dane są pobierane z bazy za pomocą zapytania SQL w postaci:
SELECT Users.Nazwa. Artykuły.*
FROM Artykuły. Users
WHERE Artykuły.Autorld = Users.Id AND
Artykuły.Parentld = $id
ORDER By Data ASC
Po wykonaniu zapytania jest pobierana całkowita liczba wierszy oraz są obliczane: liczba stron, na których może być wyświetlany wątek, i wiersz, od którego ma się rozpocząć wyświetlanie artykułów z bieżącej strony. Jest również sprawdzana poprawność przekazanych funkcji danych. Wszystkie te czynności są wykonywane w sposób analogiczny do przedstawionego w przypadku funkcji showThreads.