5 stars рейтинг
Здравейте, от доста време търсих как да направя рейтинг система включваща php и mysql, така най-накрая намерих нещо което е твърде лесно да се направи. Първо след като имаме базата данни примерно със статии, добавяме два нови реда: rating_st и num_votes_st. примерен код за база данни
CREATE TABLE statii (
id_st int(11) NOT NULL auto_increment,
idtop_st int(11) NOT NULL default '0',
counter_st int(11) NOT NULL default '0',
rating_st varchar(5) NOT NULL default '',
num_votes_st int(10) unsigned NOT NULL default '0',
title_st varchar(100) NOT NULL default '',
date_st datetime default NULL,
PRIMARY KEY (id_st));След това в прозореца който показва статията трябва да сложим меню от което ще избираме каква оценка да поставим, ето и кода:
<?php
echo ("
<form name='Rate_Form' method='post' action='rateprocess.php'>
<select size='1' name='rating'>
<option selected value='5'>5 - Отлично</option>
<option value='4'>4 - Много добро</option>
<option value='3'>3 - Средно</option>
<option value='2'>2 - Става</option>
<option value='1'>1 - Невъзможно</option>
<option value='0'>0 - Несъм пробвал</option>
</select>
<input type='hidden' name='id_st' value='$id_st'>
<input type='submit' value='Гласувай'>
</form>
");
?>След това трябва да се направи страницата за отчитане на рейтинга! отваряме нов документ и поставяме този код:
<?
// --------------------------------------------- PART 1 -------------------------------------
$dbhost = "localhost"; // DB HOST
$dbusername = "user_name"; // USERNAME
$dbpass = "pass"; // USER PASSWORD
$dbname = "database_name"; // DB NAME
//PLEASE CHANGE THESE VALUES !!
$connection = mysql_connect($dbhost, $dbusername, $dbpass);
$SelectedDB = mysql_select_db($dbname);
$query = mysql_query ("SELECT rating_st, num_votes_st FROM statii WHERE id_st=$id_st") or die (mysql_error());
while(list($rating_art, $num_votes_art)= mysql_fetch_array($query))
{
$new_count = ($num_votes_art + 1);
$dl_rating2 = ($rating_art * $num_votes_art);
$new_rating = (($rating + $dl_rating2) / ($new_count));
$new_rating2 = number_format($new_rating, 2, '.', '');
$update_rating = mysql_query("UPDATE statii SET
rating_st='$new_rating2',num_votes_st='$new_count' WHERE id_st=$id_st");
echo "<div align='center'><b>
<p>Вашият глас беше отчетен!</p>
<p>Новият рейтинг е:
$new_rating2</p>";
}
header("Refresh: 3; url=statiq.php?id_st=$id_st&rated=1");
// --------------------------------------------- PART 2 ------------------------------------------
if((($new_rating2 >= 0)or($new_rating2 == 0)) && ($new_rating2 <= 0.50)){
echo "<img src='image/Untitled-0.gif' width='98' height='19'>";
}
if((($new_rating2 >= 0.50)or($new_rating2 == 0.50)) && ($new_rating2 <= .99)){
echo "<img src='image/Untitled-0.gif' width='98' height='19'>";
}
if((($new_rating2 >= 1.00)or($new_rating2 == 1.00)) && ($new_rating2 <= 1.49)){
echo "<img src='image/Untitled-1.gif' width='98' height='19'>";
}
if((($new_rating2 >= 1.50)or($new_rating2 == 1.50)) && ($new_rating2 <= 1.99)){
echo "<img src='image/Untitled-1.gif' width='98' height='19'>";
}
if((($new_rating2 >= 2.00)or($new_rating2 == 2.00)) && ($new_rating2 <= 2.49)){
echo "<img src='image/Untitled-2.gif' width='98' height='19'>";
}
if((($new_rating2 >= 2.50)or($new_rating2 == 2.50)) && ($new_rating2 <= 2.99)){
echo "<img src='image/Untitled-2.gif' width='98' height='19'>";
}
if((($new_rating2 >= 3.00)or($new_rating2 == 3.00)) && ($new_rating2 <= 3.49)){
echo "<img src='image/Untitled-3.gif' width='98' height='19'>";
}
if((($new_rating2 >= 3.50)or($new_rating2 == 3.50)) && ($new_rating2 <= 3.99)){
echo "<img src='image/Untitled-3.gif' width='98' height='19'>";
}
if((($new_rating2 >= 4.00)or($new_rating2 == 4.00)) && ($new_rating2 <= 4.49)){
echo "<img src='image/Untitled-4.gif' width='98' height='19'>";
}
if((($new_rating2 >= 4.50)or($new_rating2 == 4.50)) && ($new_rating2 <= 4.99)){
echo "<img src='image/Untitled-4.gif' width='98' height='19'>";
}
if($new_rating2 == 5.0){
echo "<img src='image/Untitled-5.gif' width='98' height='19'>";
}
?>като след това го записваме под името rateprocess.php ! Тук след като гласувате ви зарежда тази страница и ви показва че сте гласували, колко е текущия рейтинг след вашия глас и ви показва картинка, която вие можете да смените със ваша.
За да ви покаже с картинка рейтинга на статията във списъка, там където присвоявате тази стойност пишете само този код:
<?php
$new_rating2=$row_rsStatii['rating_st'];
if((($new_rating2 >= 0)or($new_rating2 == 0)) && ($new_rating2 <= 0.50)){
echo "<img src='image/Untitled-0.gif' width='98' height='19'>";
}
if((($new_rating2 >= 0.50)or($new_rating2 == 0.50)) && ($new_rating2 <= .99)){
echo "<img src='image/Untitled-0.gif' width='98' height='19'>";
}
if((($new_rating2 >= 1.00)or($new_rating2 == 1.00)) && ($new_rating2 <= 1.49)){
echo "<img src='image/Untitled-1.gif' width='98' height='19'>";
}
if((($new_rating2 >= 1.50)or($new_rating2 == 1.50)) && ($new_rating2 <= 1.99)){
echo "<img src='image/Untitled-1.gif' width='98' height='19'>";
}
if((($new_rating2 >= 2.00)or($new_rating2 == 2.00)) && ($new_rating2 <= 2.49)){
echo "<img src='image/Untitled-2.gif' width='98' height='19'>";
}
if((($new_rating2 >= 2.50)or($new_rating2 == 2.50)) && ($new_rating2 <= 2.99)){
echo "<img src='image/Untitled-2.gif' width='98' height='19'>";
}
if((($new_rating2 >= 3.00)or($new_rating2 == 3.00)) && ($new_rating2 <= 3.49)){
echo "<img src='image/Untitled-3.gif' width='98' height='19'>";
}
if((($new_rating2 >= 3.50)or($new_rating2 == 3.50)) && ($new_rating2 <= 3.99)){
echo "<img src='image/Untitled-3.gif' width='98' height='19'>";
}
if((($new_rating2 >= 4.00)or($new_rating2 == 4.00)) && ($new_rating2 <= 4.49)){
echo "<img src='image/Untitled-4.gif' width='98' height='19'>";
}
if((($new_rating2 >= 4.50)or($new_rating2 == 4.50)) && ($new_rating2 <= 4.99)){
echo "<img src='image/Untitled-4.gif' width='98' height='19'>";
}
if($new_rating2 == 5.0){
echo "<img src='image/Untitled-5.gif' width='98' height='19'>";
}
?>надявам се да съм бил полезен и този урок да ви помогне. Успех.


