Webmaster общности: Predpriemach.com | SearchEngines.bg

    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'>";
    }
    ?>

    надявам се да съм бил полезен и този урок да ви помогне. Успех.

    Оставете коментар