Z tego co widzę, w switchu przy każdym case odczytujesz z bazy do PHP całą tabelę po to, by znaleźć jeden wiersz. Zmień zapytanie do bazy na przykład na
SELECT * FROM forum_temat WHERE dzial = 'pp'
Jest wydajniej - w sumie po co obrabiać w PHP, skoro po coś wymyślono bazy danych?
Poza tym, masz mnóstwo błędów składni PHP - aż cud, że kod działa. Włącz sobie wyświetlanie tych błędów, np. dopisz na początku pliku:
Jeśli już się uczysz pisać, to niech to będzie poprawne składniowo - jak się uczyć, to porządnie. Oprócz rzeczy, o których wcześniej wspomniałem, warto zqauwazyć:
1. if($row['dzial'] == pp) - co to jest to pp? Na zmienną mi nie wygląda (zmienne zaczynamy od "$"), na ciąg znaków też nie - te "owijamy" w apostrofy lub cudzysłowy
2. echo '<a href="index.php?id='.$row[id].'">'.$row['temat'].'</a>'; -- masz $row[id] i $row['temat'] - ciutke konsekwencji pliz
A co do Twojego pytania i problemu: a jak wygląda baza, co w niej masz?