<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2">
<title>Moja strona WWW</title>
</head>
<body>
<div>
<?php
function readAndUpdateData($kolor)
{
  $dsn = "mysql:host=localhost;dbname=testphp";
  $uzytkownik = "php";
  $haslo = "test";

  try{
    $dbo = new PDO($dsn, $uzytkownik, $haslo);
  }
  catch (PDOException $e){
    //echo 'Błąd połączenia: ' . $e->getMessage();
    return false;
  }

  $query = "UPDATE kolory SET Glosy = Glosy + 1 ".
           "WHERE Kolor = '".$kolor."'";
  $result = $dbo->query($query);

  if(!$result){
    //echo "Błąd w zapytaniu UPDATE";
    return false;
  }

  $query = 'SELECT SUM(Glosy) FROM kolory';
  if(!$result = $dbo->query($query)){
    //echo "Błąd w zapytaniu SELECT SUM";
    return false;
  }

  if(!$row = $result->fetch(PDO::FETCH_NUM)){
    //echo "Błąd przy przetwarzaniu wyników pierwszego zapytania SELECT";
    return false;
  }

  $votes_no = $row[0];

  $query = "SELECT Kolor, Glosy, Glosy * 100 /".$votes_no;
  $query .= " AS Proc FROM kolory ORDER BY Glosy DESC";

  if(!$result = $dbo->query($query)){
    //echo "Błąd w drugim zapytaniu SELECT";
    return false;
  }

  echo "<table border='1'>";
  echo "<tr>";
  echo "<td>Nazwa koloru</td>";
  echo "<td>Liczba głosów</td>";
  echo "<td>Procent głosów</td>";
  echo "</tr>";

  while($row = $result->fetch(PDO::FETCH_NUM)){
    echo "<tr>";
    echo "<td>{$row[0]}</td>";
    echo "<td>{$row[1]}</td>";
    echo "<td>{$row[2]}</td>";
    echo "</tr>";
  }
  echo "</table>";

  $dbo = null;
  return true;
}

if(isSet($_GET["vote"])){
  $kolor = $_GET["vote"];
}
else{
  $kolor = "";
}

if($kolor == "" || ($kolor != 'czerwony' && $kolor != 'zielony'
   && $kolor != 'niebieski' && $kolor != 'fioletowy' 
   && $kolor != 'czarny')){
  echo "Proszę zaznaczyć jeden z kolorów.";
}
else if(!readAndUpdateData($kolor)){
  echo "Wyniki ankiety nie są w tej chwili dostępne.";
}
?>
</div>
</body>
</html>
