[英]GROUP_CONCAT in CodeIgniter
我只是阻止在CodeIgniter中使用我的sql請求創建我的group_concat。 我使用Jtable庫在表中列出了所有查詢。
一切正常,除非我嘗試插入GROUP_CONCAT。
這是我的模型頁面:
function list_all()
{
$login_id = $this->session->userdata('User_id');
$this->db->select('p.project_id, p.Project, p.Description, p.Status, p.Thumbnail, t.Template');
$this->db->from('assigned_projects_ppeople a');
$this->db->where('people_id', $login_id);
$this->db->join('projects p', 'p.project_id = a.project_id');
$this->db->join('project_templates t', 't.template_id = p.template_id');
$this->db->select('GROUP_CONCAT(u.Asset SEPARATOR ",") as assetslist', FALSE);
$this->db->from('assigned_assets_pproject b');
$this->db->join('assets u', 'u.asset_id = b.asset_id');
$query = $this->db->get();
$rows = $query->result_array();
//Return result to jTable
$jTableResult = array();
$jTableResult['Result'] = "OK";
$jTableResult['Records'] = $rows;
return $jTableResult;
}
我的控制器頁面:
function listRecord(){
$this->load->model('project_model');
$result = $this->project_model->list_all();
print json_encode($result);
}
並完成我的視圖頁面:
<table id="listtable"></table>
<script type="text/javascript">
$(document).ready(function () {
$('#listtable').jtable({
title: 'Table test',
actions: {
listAction: '<?php echo base_url().'project/listRecord';?>',
createAction: '/GettingStarted/CreatePerson',
updateAction: '/GettingStarted/UpdatePerson',
deleteAction: '/GettingStarted/DeletePerson'
},
fields: {
project_id: {
key: true,
list: false
},
Project: {
title: 'Project Name'
},
Description: {
title: 'Description'
},
Status: {
title: 'Status',
width: '20px'
},
Thumbnail: {
title: 'Thumbnail',
display: function (data) {
return '<a href="<?php echo base_url('project');?>/' + data.record.project_id + '"><img class="thumbnail" width="50px" height="50px" src="' + data.record.Thumbnail + '" alt="' + data.record.Thumbnail + '" ></a>';
}
},
Template: {
title: 'Template'
},
Asset: {
title: 'Assets'
},
RecordDate: {
title: 'Record date',
type: 'date',
create: false,
edit: false
}
}
});
//Load person list from server
$('#listtable').jtable('load');
});
</script>
我讀了很多關於這個的帖子,比如替換','分隔符“,”或者使用OUTER到連接,或者在使用get方法之前使用group_by('p.project_id'),不起作用。
這是json中查詢的輸出:
{"Result":"OK","Records":[{"project_id":"1","Project":"Adam & Eve : A Famous Story","Description":"The story about Adam & Eve reviewed in 3D Animation movie !","Status":"wip","Thumbnail":"http:\/\/localhost\/assets\/images\/thumb\/projectAdamAndEve.png","Template":"Animation Movie","assetslist":"Apple, Adam, Eve, Garden of Eden"}]}
我們可以看到GROUP_CONCAT在這里(在“assetslist”之后),但是列仍然是空的。
如果被問到,我可以發布數據庫SQL文件。
你可以試試這個(編輯):
$ this-> db-> select('GROUP_CONCAT(u.Asset)AS assetslist');
如此簡單,在我的鼻子下,但我沒有看到它...... GROUP_CONCAT使用新的相應列的別名(作為“assetslist”)。 我必須使用此名稱,而不是Jtable配置中我的非連接表列“Asset”的默認名稱:
<table id="listtable"></table>
<script type="text/javascript">
$(document).ready(function () {
$('#listtable').jtable({
title: 'Table test',
actions: {
listAction: '<?php echo base_url().'project/listRecord';?>',
createAction: '/GettingStarted/CreatePerson',
updateAction: '/GettingStarted/UpdatePerson',
deleteAction: '/GettingStarted/DeletePerson'
},
fields: {
project_id: {
key: true,
list: false
},
Project: {
title: 'Project Name'
},
Description: {
title: 'Description'
},
Status: {
title: 'Status',
width: '20px'
},
Thumbnail: {
title: 'Thumbnail',
display: function (data) {
return '<a href="<?php echo base_url('project');?>/' + data.record.project_id + '"><img class="thumbnail" width="50px" height="50px" src="' + data.record.Thumbnail + '" alt="' + data.record.Thumbnail + '" ></a>';
}
},
Template: {
title: 'Template'
},
assetslist: {
title: 'Assets'
},
RecordDate: {
title: 'Record date',
type: 'date',
create: false,
edit: false
}
}
});
//Load person list from server
$('#listtable').jtable('load');
});
</script>
謝謝 !
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.