Autor | Zpráva | ||
---|---|---|---|
casy Profil |
#1 · Zasláno: 20. 1. 2011, 18:54:28
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 |
#2 · Zasláno: 20. 1. 2011, 19:35:03
pre cisla pouzi v db unsigned
|
||
Časová prodleva: 13 let
|
0