Rozdział 18. ♦ System zbierania opinii 475
Jeśli teraz użytkownik o identyfikatorze 14 odda głos w ankiecie o identyfikatorze 1, w powyższej tabeli zostanie zapisana para liczb: 1,14.
Przygotujmy teraz zestaw funkcji pomocniczych realizujących takie zadania, jak wyświetlanie wyników ankiet czy zapisywanie oddanych głosów w bazie danych. Wszystkie zapiszemy w pliku o nazwie ankietyJunctions.php, którego treść została zaprezentowana na listingu 18.1. Te funkcje to:
♦ makeDBConnecti on — nawiązująca połączenie z bazą danych,
♦ al readyVoted — sprawdzająca, czy dany użytkownik głosował już w danej ankiecie,
♦ showPol 1 Results — wyświetlająca wyniki danej ankiety,
♦ showAl 1 Pol 1 sResults — wyświetlająca wyniki wszystkich ankiet,
♦ showPol 1 —wyświetlająca pojedynczą ankietę,
♦ vote — zapisująca w bazie głos w danej ankiecie.
Listing 18.1. Zawartość pliku ankiety Junctions.php
<?php
functi on makeDBConnect i on()
if (!$db_lnk = mysql_connect("localhost". "php". "test")){
//echo('Wystąpił błąd podczas próby połączenia z serwerem MySQI____’):
return false;
if(!mysql_select_db('test’)){
//echo('Wystąpił błąd podczas wyboru bazy danych: test...'): return false:
return true;
function alreadyVoted(tuserName. lankietald)
$query = "SELECT Id FROM AnkietyOddaneGlosy. Users WHERE ": $query .- "Ankietald=$ankietald AND Users.Nazwa-'SuserName' ": Iquery .= "AND AnkietyOddaneGlosy.Userld - Users.Id":
if(!$result = @mysql_query($query)){
//echo("Wystąpił błąd: funkcja alreadyVoted."): return true:
i f<!@mysql_fetch_row(tresult)){ return false:
else{
return true:
}