Ahoj lidi potřeboval bych poradit jak zapsat hodnocení k již existujícímu článku... Na webu mám články a na netu sem našel skript na honocení a chtěl bych ho začlenit k těm článkům. Databázi sem si udělal, ale vždy když ohodnotím, tak se mi vytvoří nové id toho hodnocení. Bude to chtít něco doplnit aby se to zapisovalo k už existujícímu ID. Já PHP nějak neholduji, tak nevím co a jak upravit. Děkuji za pomoc...
Tady je ten kód:
<?php
require ("pripoj.php");
/**
* @class voteClass
* @author Patrik "Szkandy" Szkandera
* @website http://php.cekuj.net
*/
class voteClass {
private $table_votes; // Tabulka hodnocení
private $time_limit; // Počet dní pro další hlasování
private $use_cookies; // Pro kontrolu využití cookies nebo DB
private $check_browser_db; // Při kontrole DB, využít kontorlu prohlížeče
public function __construct() {
$this->table_votes = "filmy";
$this->time_limit = "30";
$this->use_cookies = false;
$this->check_browser_db = true;
}
public function vote($type, $parent_id, $vote) {
$can_vote = true;
if ($vote >= 0 && $vote <= 5) {
// Kontrola pomocí cookies
if ($this->use_cookies) {
if (isset($_COOKIE['vote_'.$type."_".$parent_id]))
$can_vote = false;
}
// Kontrola pomocí DB
else {
// Kontrola prohlížeče
if ($this->check_browser_db)
$browser_and = "AND browser = '".$_SERVER['HTTP_USER_AGENT']."'";
else
$browser_and = "";
$query = "SELECT id FROM ".$this->table_votes." WHERE type = '$type' AND parent_id = '$parent_id'
$browser_and AND ip = INET_ATON('".$_SERVER['REMOTE_ADDR']."')
AND time + INTERVAL ".$this->time_limit." DAY > NOW()";
$result_check_ip = mysql_query($query) or
die(mysql_error());
if (mysql_num_rows($result_check_ip) > 0)
$can_vote = false;
}
// Pokud kontrola proběhla bez problémů
if ($can_vote) {
$query = "INSERT INTO ".$this->table_votes." (type, parent_id, vote, browser, ip)
VALUES('$type', '$parent_id', '$vote', '".$_SERVER['HTTP_USER_AGENT']."', INET_ATON('".$_SERVER['REMOTE_ADDR']."') )";
$result = mysql_query($query) or
die(mysql_error());
$return['error'] = "";
// Pokud se používá kontrola pomocí cookies -> vytvoření cookie s danými parametry
if ($this->use_cookies)
setcookie('vote_'.$type."_".$parent_id, "1", time()+$this->time_limit*24*60*60);
}
else
$return['error'] = "already voted";
}
else
$return['error'] = "cheater";
// Vrácení případné chyby jQuery
echo json_encode($return);
}
// Načtení templatu pro hodnocení
public function load_template($parent_id, $type="article") {
echo "<div class='vote_template' id='$type-$parent_id'>";
$this->rating_info($parent_id, $type);
echo "</div>";
}
// Načtení informací o hodnocení
public function rating_info($parent_id, $type) {
$query = "SELECT AVG(vote) AS avg, COUNT(*) AS sum FROM ".$this->table_votes." WHERE parent_id = '$parent_id' AND type = '$type' ";
$result_votes = mysql_query($query) or
die(mysql_error());
$votes = mysql_fetch_array($result_votes);
for ($i=1; $i<=round($votes['avg']); $i++)
echo "<img src='images/star.gif' class='vote_image' id='$type-$parent_id-$i' alt='Hodnocení $i' />";
for ($i=round($votes['avg'])+1; $i<=5; $i++)
echo "<img src='images/empty_star.gif' class='vote_image' id='$type-$parent_id-$i' alt='Hodnocení $i' />";
// Počeštění
if ($votes['sum'] == 1)
$suffix = "";
if($votes['sum'] > 1)
$suffix = "y";
if($votes['sum'] > 4)
$suffix = "ů";
echo "<span class=\"vote_hodnoceni\">(".$votes['sum']." hlas".$suffix.", ";
echo "průměr: ".number_format($votes['avg'], 1, ',', '')." z 5)</span>";
}
}
?>