Gridview Header from SQL result

Also found at : http://stackoverflow.com/questions/37969474/field-results-as-headers-in-cgridview

I’m trying to grab SQL results to populate the header of a gridview with a different data set.

The issue I’m having is that it’s taking whatever is in the name rather than the header value.

I am trying to get Header1 data to be the column name rather than putting it in manually


public function exportSearch($event_id){


        $query = "SELECT

                    u.prefix AS  'Title', 

                    u.forename AS  'Forename', 

                    u.surname AS  'Surname', 

                    u.telephone AS 'Mobile Number',

                    u.email AS  'Email Address', 

                    ea.checkin_status_id AS 'checked in',

                    u.update_time AS  'Register Date', 

                    eg.name AS 'Event Group Registered', 

                    e.name AS  'Session Registered', 

                    u.bio AS 'User Information',

                    u.dob AS 'Date of Birth',

                    u.company AS 'Company',

                    u.company_role AS 'Company Role',

                    CONCAT(u2.forename, ' ', u2.surname) AS 'Guest of',

                    MAX(CASE WHEN uv.user_type_variables_id = 1 THEN uv.name ELSE NULL END) AS Header1,

                    MAX(CASE WHEN uv.user_type_variables_id = 1 THEN uv.value ELSE NULL END) AS Question1,

                    MAX(CASE WHEN uv.user_type_variables_id = 2 THEN uv.value ELSE NULL END) AS Question2,

                    MAX(CASE WHEN uv.user_type_variables_id = 3 THEN uv.value ELSE NULL END) AS Question3,

                    MAX(CASE WHEN uv.user_type_variables_id = 4 THEN uv.value ELSE NULL END) AS Question4,

                    MAX(CASE WHEN uv.user_type_variables_id = 5 THEN uv.value ELSE NULL END) AS Question5,

                    MAX(CASE WHEN uv.user_type_variables_id = 6 THEN uv.value ELSE NULL END) AS Question6


                    FROM tbl_event_attendees AS ea


                    LEFT JOIN tbl_user AS u ON ea.user_id = u.id

                    LEFT JOIN tbl_event AS e ON ea.event_id = e.id

                    LEFT JOIN tbl_event_groups AS eg on e.group_id = eg.id

                    LEFT JOIN tbl_user AS u2 ON ea.guest_of_user_id = u2.id

                    LEFT JOIN tbl_user_variables AS uv on u.id = uv.user_id


                    WHERE ea.event_id = {$event_id}


                    GROUP BY ea.id";







        $count=Yii::app()->db->createCommand($query)->queryScalar();

        return $sqlDataprovider = new CSqlDataProvider($query, array(

                'totalItemCount'=>$count,

                'sort'=>array(

                    'attributes'=>array(

                    )

                ),

                'pagination'=>array(

                'pageSize'=>$count, //Show all records

        ),

            ));

     }

My view


array(

            'header' => $data['Header1'],

            'name' => 'Header1',

            'type' => 'raw',

            'value' => $data['Question6'],

        ),

Anyone got any ideas?

bump