Autor Zpráva
casy
Profil
Ahoj,

chci se s Vámi podělit o svůj upravený script, který počítá hodnocení. Data jsou v sql.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
  <meta http-equiv="content-type" content="text/html; charset=UTF-8">
  <meta name="generator" content="PSPad editor, www.pspad.com">;
  <meta name="autor" content="Autor scriptu: Angela Bradley; Úprava scriptu: Daniel Macák dmacak@seznam.cz">
  <meta name="copyright" content="Originální script: http://php.about.com/od/finishedphp1/ss/rating_script.htm">;
  <title>Hodnocení</title>
  </head>
  <body>
<?php 
 // Připojíme se k databázi 
 include 'db.php';
 /* Soubor db.php
  $spojeni = mysql_connect("localhost","root","" ) or die ('<b>Nepodarilo se pripojit k databazi!</b>');
  mysql_select_db("test", $spojeni) or die ('<b>Spatne zadana databaze</b>');
  mysql_query("SET character_set_client=utf8");
  mysql_query("SET character_set_connection=utf8");
  mysql_query("SET character_set_results=utf8"); 
 */
 //Načteme data
 $data = mysql_query("SELECT * FROM vote") or die(mysql_error()); 
 
 //Budeme vypisovat data 
 while($ratings = mysql_fetch_array( $data )) 
 { 
   //Název hodnocení 
   echo "Jméno: " .$ratings['name']."<br>"; 
   
   // Pokud dosud nebylo hodnoceno vypíšeme hlášku. Nemůžeme vypočítávat hodnocení s nulou. 
   if(isset($ratings['total']) and $ratings['votes']==0){ echo "";
    echo "<p>Ještě nebylo hlasováno</p>"; 
   }else{
   //Vypočítá hodnocení a zaokrouhlí hodnotu na 1 desetinné místo
   $current = $ratings['total'] / $ratings['votes']; 
   echo "Hodnocení: " . round($current, 1) . "<br>";
   }
   //Vytvoří hodnoty 
   echo "Ohodnoť: "; 
   echo "<a href=".$_SERVER['PHP_SELF']."?mode=vote&voted=1&id=".$ratings['id'].">1</a> | "; 
   echo "<a href=".$_SERVER['PHP_SELF']."?mode=vote&voted=2&id=".$ratings['id'].">2</a> | "; 
   echo "<a href=".$_SERVER['PHP_SELF']."?mode=vote&voted=3&id=".$ratings['id'].">3</a> | "; 
   echo "<a href=".$_SERVER['PHP_SELF']."?mode=vote&voted=4&id=".$ratings['id'].">4</a> | "; 
   echo "<a href=".$_SERVER['PHP_SELF']."?mode=vote&voted=5&id=".$ratings['id'].">5</a><p>"; 
 } 
 
 //Pokud uživatel hlasoval 
 if(isset($_GET['mode'])) 
 { 
   //Získáme data z url 
   $id = intval($_GET['id']);
   $voted = $_GET['voted'];
   
   //Pokud již uživatel hlasoval vypíšeme hlášku 
   $cookie = "Mysite$id"; 
   if(isset($_COOKIE[$cookie])) { 
   echo "<p>Omlouváme se, ale již jste hlasoval.</p>"; 
   } 
   //Uložíme cookies uživatele na dobu jednoho měsíce 
   else{ 
   $month = 2592000 + time(); 
   setcookie($cookie, $voted, $month);     
   //Nakonec uložíme data o hlasování do databáze
   mysql_query ("UPDATE vote SET total = total+$voted, votes = votes+1 WHERE id = $id") or die(mysql_error()); 
   //Vypíšeme hlášku, že vše dopadlo dobře
   echo "<p>Váš hlas byl úspěšně zaznamenán</p>"; 
   }
 } 
?>
  </body>
</html> 


a databáze

--
-- Struktura tabulky `vote`
--

CREATE TABLE IF NOT EXISTS `vote` (
  `id` int(4) NOT NULL AUTO_INCREMENT,
  `name` varchar(30) DEFAULT NULL,
  `total` int(11) DEFAULT NULL,
  `votes` int(11) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=6 ;

--
-- Vypisuji data pro tabulku `vote`
--

INSERT INTO `vote` (`id`, `name`, `total`, `votes`) VALUES
(1, 'První položka', 87, 22),
(2, 'Druhá položka', 22, 10),
(3, 'Třetí položka', 51, 21),
(4, 'Čtvrtá položka', 0, 0);


Hodně štěstí

Daniel Macák
dmacak@seznam.cz
pcmanik
Profil
pre cisla pouzi v db unsigned

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0