来自单个sql视图列的数据未显示

时间:2014-10-07 21:57:17

标签: php sql phpmyadmin jquery-jtable

我在SQL view中有一个phpmyadmin,其中有一个用于填充使用jquery jtable创建的表格中的数据。这个问题非常奇怪,因为只有一个列的数据被视图拉出并且所有其他数据的显示都没有问题。编辑字段时也没有问题,我可以看到我在phpmyadmin中所做的更改。如何显示“成功”列?非常感谢所有帮助。

表格的屏幕截图

enter image description here

js处理表的创建

function getLessonsLearnedResponseChildTable(ContainerID) {
var table = {
    title: '',
    width: '5%',
    sorting: false,
    edit: false,
    create: false,
    display: function(data) {
        //create an image to be used to open child table
        var $img = $('<img src="' + config.base_url + 'assets/images/expand_row-small.png" title="View Responses" style="height:30px;width:30px;cursor:pointer;" height="30" width="30"/>');
        $img.click(function() {
            $('#' + ContainerID).jtable('openChildTable',
                    $img.closest('tr'),
                    {
                        title: data.record.event,// + ' - Response Plans'
                        actions: {
                            listAction: config.base_url + "data_fetch/responses/" + data.record.risk_id,
                            deleteAction: config.base_url + 'data_fetch/delete_response/',
                            updateAction: config.base_url + 'data_fetch/edit_response/'
                        },
                        messages: defaultResponseMessages,
                        fields: LessonsLearnedResponseFields
                    }, function(data) {//opened handler
                data.childTable.jtable('load');
            });
        });
        //return image to show on row
        return $img;
    }
};
return table;
}

listAction的控制器方法:

function responses($risk_id = null, $offset = 0, $limit = 100, $order_by = 'response_id', $direction = 'ASC') {
    $confirm_member = $this->User_model->confirm_member(true, false);
    if (!$confirm_member['success']) {
        $this->print_jtable_error(self::ERROR_NOT_LOGGED_IN);
        return;
    }
    $user_id = $_SESSION['user_id'];
    $this->load->model('Response_model');
    $responses = $this->Response_model->get_all($risk_id, $user_id, $limit, $offset, $order_by, $direction);
    if ($responses == false) {
        $this->print_jtable_error(self::ERROR_NO_ACCESS_PERMISSION);
        return;
    } else {
        return $this->print_jtable_result($responses);
    }
}
get_all

中的

Response Model方法

/*
 * Retrieves all responses associated with the risk
 */

public function get_all($risk_id, $user_id, $limit = null, $offset = 0, $order_by = null, $direction = 'ASC') {
    //load risk model to check if user can read from project
    $this->load->model('Risk_model');
    if ($this->Risk_model->initialize($risk_id, $user_id) == false) {
        return false;
    }
    if ($limit !== null && $limit != 0) {
        $this->db->limit($limit, $offset);
    }
    if ($order_by !== null) {
        $this->db->order_by($order_by, $direction);
    }
    $query = $this->db->select('SQL_CALC_FOUND_ROWS *', false)->from('view_responses')->where('risk_id', $risk_id)->get();
    $data = $query->result_array();
    $this->load->model('Task_model');
    foreach ($data as &$response)
        $response['WBS'] = $this->Task_model->normalize_WBS($response['WBS']);
    $data['num_rows'] = $this->db->
                    query('SELECT FOUND_ROWS()', false)->row(0)->{'FOUND_ROWS()'};
    return $data;
}

sql view

的屏幕截图

enter image description here

收到

successful但未显示

http://imgur.com/MqCVAGm

1 个答案:

答案 0 :(得分:0)

我已经能够解决问题了。这是一个拼写问题。我从SQL视图中成功找到了一个缺失的c,现在工作正常。