19040 skanuj0461

19040 skanuj0461



Rozdział 18. ♦ System zbierania opinii 479

i pobierane w pętli whi 1 e przy użyciu funkcji mysq1_fetch_row. Każdy identyfikator jest wykorzystywany jako argument funkcji showPollResult, która wyświetla wynik konkretnej ankiety. Funkcja showAUPollsResults zwraca wartość false, jeśli wymienione zapytanie zostało odrzucone przez serwer (lub np. wystąpił problem z połączeniem), lub wartość true, jeśli zostało ono wykonane prawidłowo.

Zadaniem funkcji vote jest zapisanie w bazie głosu oddanego przez użytkownika oraz odnotowanie, że dany użytkownik oddał już głos w ankiecie. Funkcja przyjmuje dwa argumenty, którymi są identyfikator ankiety (ankietald) oraz identyfikator opcji wybranej przez użytkownika (opcja Id). Pierwsze wymienione zadanie jest wykonywane przez zapytanie SQL w postaci:

UPOATE AnkietyOpcje SET Głosy-Głosy + 1 WHERE id ■ Sopcjald

Zadanie numer dwa wymaga natomiast wykonania dwóch zapytań. Po pierwsze musimy się dowiedzieć, jaki identyfikator ma aktualnie załogowany użytkownik. Jego nazwa znajduje się w zmiennej sesji o nazwie załogowany, jest więc wykonywane zapytanie: SELECT Id FROM Users WHERE Nazwa-'$_SESSION[zalogowany]'

Jeśli wykonanie zapytania zakończy się sukcesem, do tabeli Anki etyOddaneGl osy może zostać dodany nowy wiersz zawierający identyfikator ankiety i identyfikator użytkownika. Operacja ta jest wykonywana przez zapytanie:

INSERT INTO AnkietyOddaneGlosy VALUES (Sankietald. $row[0]) w którym row[0] zawiera identyfikator użytkownika, a ankietald identyfikator ankiety. Funkcja vote zwraca wartość false, o ile zapytanie uaktualniające tabelę AnkietyOpcje nie zostało wykonane, lub też liczbę wierszy, na które to zapytanie miało wpływ. Na wynik działanie funkcji nie ma natomiast wpływu operacja uaktualniająca tabelę Anki etyOddaneGl osy.

Funkcja showPoll wyświetla pytania ankiety o identyfikatorze przekazanym w postaci argumentu ankietald. Pytania są wyświetlane w postaci formularza HTML. Dane z tego formularza są wysyłane do skryptu o nazwie ankieta.php. Ogólna struktura formularza wygląda następująco:

<form action='ankieta.php' method='GET'>

<input type='hidden' name='action' value='vote'>

<input type='hidden' name-'ankietald' va1ue='ankieta Id' >

Opcja 1 <input type='radio' name-'opcjaId' value='opcjalid' checked>

Opcja 2 <input type='radio’ name-'opcjaId' value='opcjaźW>

<!-- pozostałe opcje -->

<input type=‘submit' value-‘Głosuj’>

</form>

Do jego formatowania jest wykorzystywana tabela HTML. Pola typu hidden są używane do przekazania dodatkowych argumentów: action oraz ankietald, które zostaną opisane podczas omawiania struktury pliku ankieta.php. Przed samym formularzem na stronie jest wyświetlana nazwa ankiety, która jest pobierana z bazy za pomocą zapytania: SELECT Nazwa FROM Ankiety WHERE id=$ankietald


Wyszukiwarka

Podobne podstrony:
skanuj0459 Rozdział 18. ♦ System zbierania opinii 477 if(!@mysql_query($query)){ //echo( Wystąpił bł
skanuj0463 Rozdział 18. ♦ System zbierania opinii 481 3k Edycfc Bo:r Prr-jc &M«1o • s1 v
skanuj0466 (2) Rozdział 18. ♦ System zbierania opinii 483 W przypadku gdy skrypt zostanie wywołany p
skanuj0468 (2) Rozdział 18. ♦ System zbierania opinii 485 Rysunek 18.3. Efekt wywołania skryptu anki
44715 skanuj0457 Rozdział 18. ♦ System zbierania opinii 475 Jeśli teraz użytkownik o identyfikatorze

więcej podobnych podstron