Search code examples
phpcodeigniterphpmyadmincodeigniter-3codeigniter-2

“create view” and "Other query" merge problem in Codeigniter using mysql


In phpmyadmin i run both query is working and i get my value but when i want to execute this query in codeigniter i faced problem how to execute both query using same function.In the below are my query.

Query:

create view V_average_marks AS
 select student_id,avg(total_mark) as average_mark from total_marks 
 group by student_id;

SELECT student_id,(average_mark), FIND_IN_SET( average_mark, (
SELECT GROUP_CONCAT( average_mark
ORDER BY average_mark DESC ) 
FROM V_average_marks )
) AS rank
FROM V_average_marks;

I get my value when i run this on phpmyadmin but i confused when i run in codeigniter.Can't find the correct way.

Model:

public function final_rank()
    {
        $sql = "SELECT student_id,(average_mark), FIND_IN_SET(average_mark,(GROUP_CONCAT( average_mark ORDER BY average_mark DESC)FROM V_average_marks)) AS rank FROM V_average_marks";
        $query = $this->db->query($sql);

        return $query->result_array();
    }

Solution

  • I found correct answer:

    create view V_average_marks AS
    select student_id,avg(total_mark) as average_mark from total_marks 
    group by student_id; 
    
    create view V_rank AS
    SELECT student_id,(average_mark), FIND_IN_SET( average_mark, (
    SELECT GROUP_CONCAT( average_mark
    ORDER BY average_mark DESC ) 
    FROM V_average_marks )
    ) AS rank
    FROM V_average_marks;
    
    SELECT * from V_rank;
    

    From model call SELECT * from V_rank this sql and you can get desire result