88661 skanuj0444

88661 skanuj0444



Rozdział 17. ♦ System news 461

Jest to zatem wstawienie nowego wiersza do tabeli News, w którym identyfikator zostanie wygenerowany automatycznie, identyfikator użytkownika będzie równy wartości odczytanej z $_SESSION[UserId], nagłówek zostanie pobrany ze zmiennej header, treść pobrana ze zmiennej contents, natomiast data —wygenerowana przez wywołanie funkcji NOW. W przypadku gdyby zapytanie nie mogło być wykonane, funkcja addMessage zwraca wartość fal se, natomiast w przypadku gdy zostało wykonane, funkcja zwraca liczbę wierszy, na które miało ono wpływ.

Funkcja del eteMessage ma za zadanie usunąć z bazy wiadomość o identyfikatorze przekazanym w postaci argumentu news Id. Jej kod jest zatem równie prosty jak kod przedstawionej już funkcji modi fyMessage. Jest tu wykonywane zapytanie SQL w postaci: DELETE FROM News WHERE Id=$newsld AND UserId-$_SESSION[UserId]

Jeśli jego wykonanie zakończy się sukcesem, funkcja zwraca liczbę rekordów, na które miało ono wpływ, natomiast w przeciwnym przypadku — wartość fal se. Należy zwrócić uwagę, że zapytanie to ma dwa warunki; pierwszy określa identyfikator wiadomości do usunięcia, natomiast drugi uniemożliwia usuwanie wiadomości innych użytkowników. A zatem załogowany użytkownik będzie mógł usuwać jedynie wiadomości wprowadzone przez siebie wcześniej do systemu.

Ostatnią funkcją zapisaną w pliku newsJunctions.php jest showAlIMessages. Jej zadaniem jest umożliwienie przeglądania wszystkich wiadomości zapisanych w systemie. Kod byłby nader prosty, gdyby wszystkie wiadomości można było naraz wyświetlić na witrynie. Niestety, ponieważ może być ich bardzo dużo, nie możemy postąpić w ten sposób. Strona musi być więc wyposażona w możliwości nawigacyjne (rysunek 17.4). W związku z tym funkcja showAl!News przyjmuje dwa argumenty: page i pageSize. Pierwszy z nich określa numer strony z wiadomościami, która ma zostać wyświetlona, a drugi liczbę wiadomości na pojedynczej stronie. Przykładowo, jeśli w systemie jest zapisanych 20 wiadomości, a na pojedynczej stronie chcemy wyświetlać nie więcej niż 3, to całkowita liczba stron wynosi 7 (20 / 3 zaokrąglone w górę do najbliższej liczby całkowitej).

Dane są pobierane z bazy za pomocą zapytania SQL w postaci:

SELECT News.Id. Nagłówek, Tresc, Data. Nazwa

FROM News, Users

WHERE Users.Id = News.Userld

ORDER BY Data DESC

Są tu złączane tabele News i Users, tak aby w wynikach zapytania figurowały nazwy użytkowników, którzy wprowadzili poszczególne wiadomości do systemu. To zapytanie pobiera wszystkie wiadomości z systemu. Następnie jest wywoływana funkcja mysql_nuni_rows, która pobiera liczbę wierszy będących wynikiem zapytania, a wynik jej działania jest przypisywany zmiennej rowsCount. Mając tę daną możemy w prosty sposób wyliczyć, na ile stron należy podzielić wynik zapytania. Wystarczy wykonać działanie: całkowita liczba wiadomości / liczba wiadomości na stronie czyli:

trowsCount / JpageSi;


Wyszukiwarka

Podobne podstrony:
skanuj0434 Rozdział 17. ♦ System news 451 Zmienne sesji, które zostały ustawione w skrypcie login.ph
skanuj0450 (2) Rozdział 17. ♦ System news 467 /*jeśli action - edit*/ else if($_GET[ action ] — ‘edi
skanuj0452 (2) Rozdział 17. ♦ System news Kod rozpoczyna się od wywołania funkcji session_start, doł
65885 skanuj0440 (2) Rozdział 17. ♦ System news 457 if(!$result - @mysql_query(Squery)){ //echo(&quo
40902 skanuj0454 (2) Rozdział 17. ♦ System news 471 Jeśli zatem parametr action ma wartość add, w pi
44910 skanuj0438 Rozdział 17. ♦ System news 455} else{ $where - " WHERE Userld = Suserld} $quer
69879 skanuj0448 Rozdział 17. ♦ System news 465 Rysunek 17.5. Przykładowy wygląd formularza edycji w

więcej podobnych podstron