Вывожу рейтинг на странице. Есть 3 статьи, все они выводятся на главной и у каждой должен быть свой рейтинг. Добавил на 1, всё работает, всё записывается в базу данных, а вот добавляю на вторую и уже ошибка.
Сам рейтинг вывожу данным кодом:
<?
require('form.php');
$userrating="2"; // имя пользователя за кооторого голосуем, или ID
echo rating_bar($userrating,5);
?>
У статьи 1 userrating="1" , у статьи 2 соответственно значение равно 2
Далее, сам файл form.php
<?php
function rating_bar($id, $units = '', $static = '')
{
require('confrate.php');
$rating_tableName = 'ratings';
$rating_path_db = '';
$rating_path_rpc = '';
$rating_unitwidth = 17;
$rating_conn = mysql_connect($database_host, $database_username, $database_password) or die('Error connecting to mysql');
$ip = $_SERVER['REMOTE_ADDR'];
if (!$units)
{
$units = 10;
}
if (!$static)
{
$static = false;
}
$query = mysql_query("SELECT total_votes, total_value, used_ips FROM ".$database_name.".".$rating_tableName." WHERE id='".$id."' ") or die(" Error: " . mysql_error());
if (mysql_num_rows($query) == 0)
{
$sql = "INSERT INTO ".$database_name.".".$rating_tableName." (`id`,`total_votes`, `total_value`, `used_ips`) VALUES ('".$id."', '0', '0', '')";
$result = mysql_query($sql);
}
$numbers = mysql_fetch_assoc($query);
if ($numbers['total_votes'] < 1)
{
$count = 0;
}
else
{
$count = $numbers['total_votes'];
}
$current_rating = $numbers['total_value'];
$tense = ($count == 1) ? "vote" : "votes";
$voted = mysql_num_rows(mysql_query("SELECT used_ips FROM ".$database_name.".".$rating_tableName." WHERE used_ips LIKE '%" . $ip . "%' AND id='" . $id . "' "));
$rating_width = @number_format($current_rating / $count, 2) * $rating_unitwidth;
$rating1 = @number_format($current_rating / $count, 1);
$rating2 = @number_format($current_rating / $count, 2);
if ($static == 'static')
{
$static_rater = array();
$static_rater[] .= "\n" . '<div class="ratingblock">';
$static_rater[] .= '<div id="unit_long' . $id . '">';
$static_rater[] .= '<ul id="unit_ul' . $id . '" class="unit-rating" style="width:' . $rating_unitwidth * $units . 'px;">';
$static_rater[] .= '<li class="current-rating" style="width:' . $rating_width . 'px;">Текущий ' . $rating2 . '/' . $units . '</li>';
$static_rater[] .= '</ul>';
$static_rater[] .= '<p class="static">' . $id . '. Рейтинг: <strong> ' . $rating1 . '</strong>/' . $units . ' (' . $count . ' ' . $tense . ' cast) <em>This is \'static\'.</em></p>';
$static_rater[] .= '</div>';
$static_rater[] .= '</div>' . "\n\n";
return join("\n", $static_rater);
}
else
{
$rater = '';
$rater .= '<div class="ratingblock">';
$rater .= '<div id="unit_long' . $id . '">';
$rater .= ' <ul id="unit_ul' . $id . '" class="unit-rating" style="width:' . $rating_unitwidth * $units . 'px;">';
$rater .= ' <li class="current-rating" style="width:' . $rating_width . 'px;">Текущий ' . $rating2 . '/' . $units . '</li>';
for ($ncount = 1; $ncount <= $units; $ncount++)
{
if (!$voted)
{
$rater .= '<li><a href="/rat/db.php?j=' . $ncount . '&q=' . $id . '&t=' . $ip . '&c=' . $units . '" title="' . $ncount . ' из ' . $units . '" class="r' . $ncount . '-unit rater" rel="nofollow">' . $ncount . '</a></li>';
}
}
$ncount = 0;
$rater .= ' </ul>';
$rater .= ' <p';
if ($voted)
{
$rater .= ' class="voted"';
}
$rater .= ' </p>';
$rater .= '</div>';
$rater .= '</div>';
return $rater;
}
}
?>
Ну и в шапке стили и скрипт
<script type="text/javascript" src="rating.js"></script>
<link rel="stylesheet" type="text/css" href="style.css" media="screen" />
Ошибку выдает следующую:
Fatal error: Cannot redeclare rating_bar() (previously declared in Z:\home\localhost\www\form.php:2) in Z:\home\localhost\www\form.php on line 79
т.е. проблема в этой строчке:
function rating_bar($id, $units = '', $static = '')
, верно? В чём только не пойму.