Skip to content
Advertisement

How can I get the average star ratings? PHP Codeigniter

I am creating a rating system where the customer can rate the seller.

I am using the rateyo plugin, so there’s a float value on it like 2.9, 3.8, 4.5, etc

I would like to get all the values of the seller and get the average from it to display his/her overall total ratings. I am using Codeigniter as a framework in PHP

Here’s my code – View

<div class="rateyo" id= "rating"
        data-rateyo-rating="0"
        data-rateyo-num-stars="5"
        data-rateyo-score="3">
    </div>

    <br>
    <span class='result'>0</span>
    <input type="hidden" name="rating">

Script

 <script>
    $(function () {
        $(".rateyo").rateYo().on("rateyo.change", function (e, data) {
            var rating = data.rating;
            $(this).parent().find('.score').text('score :'+ $(this).attr('data-rateyo-score'));
            $(this).parent().find('.result').text('Rating :'+ rating);
            $(this).parent().find('input[name=rating]').val(rating); //add rating value to input field
        });
    });
    </script>

Model

public function get_rate($id){
    $this->db->where('book_id', $id);
    $query = $this->db->get('rates');
    return $query->row_array();
}

Advertisement

Answer

You can use $this->db->select_avg('column_name') in your select statement to get the average of the rates.

Also make sure that you use float datatype for in your column.

To study more about select_avg()

User contributions licensed under: CC BY-SA
3 People found this is helpful
Advertisement