Rozdział 20. ♦ Forum 507
Ta jedna tabela wystarczy do realizacji całego forum. Można by zapytać, w jaki zatem sposób odróżnimy tematy główne (rozpoczynające wątki) od odpowiedzi? Posłużymy się bardzo prostym sposobem. Otóż artykuł stanowiący temat główny będzie zawierał w kolumnie Parentld taką samą wartość jak w kolumnie Id. Tymczasem artykuły stanowiące treść danego wątku będą zawierały w kolumnie Parentld identyfikator tematu głównego.
Kod tworzący forum zostanie podzielony na trzy pliki:
♦ forum Junctions.php — zawierający funkcje realizujące poszczególne zadania; treść tego pliku będzie dołączana do treści pliku forum.php;
♦ forum.php — zawierający główną część kodu zarządzającego forum;
♦ forum Jorm.php — zawierający formularz umożliwiający dodawanie nowych wiadomości.
W pliku forumJunctions.php znajdą się definicje następujących funkcji:
♦ makeDBConnecti on — nawiązująca połączenie z bazą danych;
♦ showThreads — wyświetlająca listę tematów (wątków);
♦ showThread — wyświetlająca wiadomości z pojedynczego wątku;
♦ showAdd — wyświetlającą formularz pozwalający na założenie nowego wątku;
♦ showModi fy — wyświetlająca formularz pozwalający na odpowiedź na istniejący artykuł;
♦ saveArticle — zapisująca nowy artykuł w tabeli Artykuły;
♦ add — wykonująca operacje związane z dodawaniem artykułu do bazy;
♦ replay — wykonująca operacje związane z dodawaniem do bazy artykułu będącego odpowiedzią na inny artykuł.
Treść pliku forumJunctions.php została zaprezentowana na listingu 20.2.
Listing 20.2. Treść pliku forum Junctions.php_
<?php
defineC'PAGE_SIZE_THREAD'. 5): defi ne('PAGE_SIZE_THREADS'. 5):
function makeDBConnectionO
1f (!$db_lnk - mysql_connect(”localhost", "php", "test")){
//echoCWystąpił błąd podczas próby połączenia z serwerem MySQL return false:
if(!mysql_select_db('test')){
//echo('Wystąpił błąd podczas wyboru bazy danych: test...'): return false:
return true: