我想查看数据表行中的多个数组。我不知道该怎么做。数据表仅查询_get_datatables_query
内的内容。我无法查询其他引用的数据。
public function list_projects() {
$list = $this->foo_pro->get_datatables();
$data = array();
$ProjectID = $_POST['start'];
foreach ($list as $foo_pro) {
$ProjectID++;
$row = array();
// $row[] = $no;
$row[] = $foo_pro->P_Year.$foo_pro->Code.$foo_pro->ProjectID;
$row[] = $foo_pro->Contractor_Name;
$row[] = $foo_pro->User_Title.'. '.$foo_pro->Dp_LastName;
$row[] = '<div style="">₱'.number_format($foo_pro->Contract_Amount, 2).'</div>';
$row[] = $foo_pro->FirstName.' '.$foo_pro->Initial.'. '.$foo_pro->LastName.' #'.$foo_pro->Control_No;
$row[] = '';
$row[] = '';
$row[] = '';
$data[] = $row;
}
$output = array(
"draw" => $_POST['draw'],
"recordsTotal" => $this->foo_pro->count_all(),
"recordsFiltered" => $this->foo_pro->count_filtered(),
"data" => $data,
);
//output to json format
echo json_encode($output);
}
我想要实现的是1行和1列的数组。
$this->db->from($this->table);
$this->db->group_by('project.ProjectID');
$this->db->join('contractor', 'contractor.Contractor_No = project.Contractor_No');
$this->db->join('dpwh_user', 'dpwh_user.DPWH_User_No = project.DPWH_User_No');
$this->db->join('contractor_user', 'contractor_user.Contractor_User_No = project.Contractor_User_No');
$this->db->join('qcp', 'qcp.ProjectID = project.ProjectID');
$this->db->join('designmix', 'designmix.ProjectID = project.ProjectID');
$this->db->join('monthlyreport', 'monthlyreport.ProjectID = project.ProjectID');
答案 0 :(得分:2)
如果您提到两个表格,请找到下面提到的查询来完成它。
SELECT
p.ProjectId,
p.Year,
p.code,
p.contract_amount,
GROUP_CONCAT(CONCAT_WS('|',CONCAT_WS('|',mr.month,mr.year),CONCAT(mr.completion,'% <br/>'))) as monthly_report
FROM project p
INNER JOIN monthly_report mr
GROUP BY p.ProjectId;
此外,我在<br/>
函数中添加了group_concate()
,因此当您在浏览器中呈现此输出时,它将根据您的要求添加中断。
如果不起作用,请告诉我。
答案 1 :(得分:0)
这里对此comment的回复是查询 在积极的记录技术。
实际上,在处理subquerys时,codeigniter并不是很好。 (根据我的知识)我添加了两个选项来处理subquerys。如果两个查询都没有得到你所知的那么我会建议使用$this->db->query();
。
我还没有测试过。
$query = $this->db
->select('GROUP_CONCAT(CONCAT_WS('|',CONCAT_WS('|',mr.month,mr.year),CONCAT(mr.completion,'% <br/>'))) as monthly_report, p.ProjectId,p.Year,p.code,p.contract_amount,')
->from('project p')
->join('monthly_report mr', 'mr.ProjectId = p.ProjectId', 'left')
->group_by('p.ProjectId')
->get();
$subquery = "(select GROUP_CONCAT(CONCAT_WS('|',CONCAT_WS('|',mr.month,mr.year),CONCAT(mr.completion,'% <br/>'))) as monthly_report
from monthly_report as mr
where mr.ProjectId = p.ProjectId)";
$query = $this->db
->select('p.ProjectId,p.Year,p.code,p.contract_amount')
->select($subquery)
->from('project p')
->join('monthly_report mr', 'mr.ProjectId = p.ProjectId', 'left')
->group_by('p.ProjectId')
->get();