【发布时间】:2021-12-07 07:33:55
【问题描述】:
Dbfiddle:https://dbfiddle.uk/?rdbms=mysql_8.0&fiddle=65b310b4b973a7577d4953e01c09a124
目前我有一个表格,显示每个来源的数据值的总数。我在比较 2 个表后得到了这个值,其中 1 个是 crm_leads 与我的所有产品信息,1 个是 crm_sources 与产品相关的来源。
现在这是输出:
现在您可以看到总计数显示在其来源旁边的每个标题下。如图所示,每个来源有 8 个单元格。现在这些计数值在一个标签内,一旦点击就可以查看所有页面。
现在这里基本上我想显示我点击的项目的数据。例如,如果我点击 Hot 状态下的 163,它会将我带到 viewall 页面并在表格中显示所有处于 Hot 状态下的人的 id、source、enquiry_date。
所以基本上它应该检测点击哪个来源和哪个状态的数据,然后相应地做出这样的声明?
select * from crm_leads where lead_source = '.$source.' and lead_status = '.$status.';
我想我可以在这里做的另一件事是将我的表格放在一个表单中,并将这些值作为帖子传递到我的控制器类leadstatus中,这会将那个值传递给viewall?不太确定如何进行。
模型类:
function get_statusreport($fdate='',$tdate='')
{
$this->db->select("l.lead_status,crm_sources.title,count(*) as leadnum,l.enquiry_date,l.sub_status");
$this->db->from($this->table_name." as l");
if($fdate !='')
$this->db->where("date(l.added_date) >=",date('Y-m-d',strtotime($fdate)));
if($tdate !='')
$this->db->where("date(l.added_date) <=",date('Y-m-d',strtotime($tdate)));
$this->db->where("lead_status <>",10);
$this->db->join("crm_sources ","crm_sources.id= l.lead_source","left");
$this->db->group_by("l.lead_status,crm_sources.title");
$this->db->order_by("leadnum DESC, crm_sources.title ASC,l.lead_status ASC");
$query = $this->db->get();
$results = $query->result_array();
return $results;
}
控制器类(leadstatus 保存我当前表的视图):
public function leadstatus($slug='')
{
$content='';
$content['groupedleads'] = $this->leads_model->get_statusreport($fdate,$tdate);
$this->load->view('crm/main',$main);
$this->load->view('crm/reports/leadstatus',$content);
}
public function viewall($slug='')
{
$content='';
$this->load->view('crm/main',$main);
$this->load->view('crm/reports/viewall',$content);
}
查看类:
<?php
$ls_arr = array(1=>'Open',8=>'Hot',2=>'Closed',3=>'Transacted',4=>'Dead');
foreach($groupedleads as $grplead){
$statuses[] = $status = $ls_arr[$grplead["lead_status"]];
if($grplead["title"] == NULL || $grplead["title"] == '')
$grplead["title"] = "Unknown";
if(isset($grplead["title"]))
$titles[] = $title = $grplead["title"];
$leaddata[$status][$title] = $grplead["leadnum"];
}
if(count($titles) > 0)
$titles = array_unique($titles);
if(count($statuses) > 0)
$statuses = array_unique($statuses);
?>
<table>
<tr">
<th id="status">Source</th>
<?php
if(count($statuses) > 0)
foreach($statuses as $status){
?><th id=<?php echo $status; ?>><?php echo $status; ?></th>
<?php
}
?>
<th>Total</th>
</tr>
<?php
if(is_array($titles))
foreach($titles as $title){
?>
<tr>
<?php
$total = 0;
echo "<td>".$title."</td>";
foreach ($statuses as $status) {
$num = $leaddata[$status][$title];
echo "<td><a target='_blank' href='".site_url('reports/viewall')."'>".$num."</a></td>";
$total += $num;
$sum[$status] += $num;
}
echo "<td>".$total."</td>";
$grandtotal += $total;
?>
</tr>
<?php } ?>
</table>
【问题讨论】:
标签: php mysql codeigniter