496 PHP i MySQL dla każdego
skryptu został przekazany parametr zgodny z nazwą identyfikatora subskrypcji, oznacza to, że aktualnie załogowany użytkownik chce zapisać się na tę subskrypcję. Należy zatem wprowadzić odpowiedni wpis do tabeli SubskrypcjeUzytkownicy. Ponieważ jednak taki wpis może już istnieć w tej tabeli, zamiast INSERT INTO stosujemy instrukcję REPLACE INTO1 w postaci:
REPLACE INTO SubskrypcjeUzytkownicy VALUES($_SESSION[UserId], trow[0])
W przypadku gdy do skryptu nie został przekazany parametr o nazwie wskazującej na dany identyfikator subskrypcji, oznacza to, że użytkownik nie chce prenumerować tej subskrypcji. Skoro tak, to o ile w tabeli SubskrypcjeUzytkownicy istnieje zapis wskazujący na subskrypcję, należy go usunąć. Czynność ta jest wykonywana przez zapytanie:
OELETE FROM SubskrypcjeUzytkownicy WHERE Userld = $_SESSION[UserId] AND Subskrypcjald - $row[0]
Funkcja printAdminForm wyświetla stronę administracyjną pozwalającą na wysyłanie wiadomości do użytkowników subskrybujących wybrane biuletyny. Jej wygląd obrazuje rysunek 19.4. Lista subskrypcji, które będą wyświetlane w postaci pól typu checkbox, jest pobierana za pomocą zapytania SQL w postaci:
SELECT Id. Nazwa FROM Subskrypcje
Rysunek 19.4. Strona administracyjna subskrypcji
Ponieważ w naszym projekcie tabela SubskrypcjeUzytkowni cy posiada klucz podstawowy składający się z kolumn Userld i Subskrypcjald, gwarantujący unikalność każdego rekordu, użycie instrukcji INSERT zamiast REPLACE byłoby również prawidłowe.