【问题标题】:how to combine rows data of same id in one row如何将相同id的行数据合并到一行中
【发布时间】:2015-12-08 08:00:11
【问题描述】:

我的控制器功能:

function index()
{
    $data['user_clicks'] = $this->common_model->get_userClicks();
    $this->load->view('common/header');
    $this->load->view('content_pages/user_clicks',$data);
    $this->load->view('common/footer'); 
}

我的模型

function get_userClicks()
{
    $this->db->select('agent_id,click_type,click_count');
    $this->db->select_sum('click_count');
    $this->db->from('daily_clicks');
    $this->db->group_by('click_type,agent_id');
    $this->db->order_by('agent_id');
    $q = $this->db->get();
    return $q->result_array();
}

这是我得到的,我想要的是获得电话点击、电子邮件点击、离线点击相对于他们的列的点击计数,并且他们的总点击次数已经完成。 数据库图像是最后一个帮助我完成它。 谢谢

【问题讨论】:

  • 这行返回的是什么 $q->result_array();返回一个多维数组,每个内部数组包含一行结果表?
  • 您正在寻找的是WITH ROLLUP: dev.mysql.com/doc/refman/5.7/en/group-by-modifiers.html 至少在直接 SQL 中。不确定 Code Igniter 是否具有该功能。
  • @jefwa 在这里,我想获取与其点击类型相关的点击次数,并根据我的观点(第一张图片)管理该结果。如果点击类型是电话,那么点击计数应该在电话点击列中,每一列也是如此。
  • 发布返回的结果 $q->result_array();那么只有我们可以尝试创建代码
  • @SugumarVenkatesan 这将返回一个包含结果表行的数组

标签: php codeigniter mysqli


【解决方案1】:

试试这个,

$resarr=count($resultarray);
<table>
<tr>
<th>Agent_id</th>
<th>phone_click</th>
<th>email_click</th>
<th>offline_click</th>
<th>total_click</th>
</tr> 
for($i=1; $i<100; $i++){ //agent id
 for($j=1; $j<=$resarr; $j++) //number of records
 { 
   echo "<tr>";
   if($arr['user_clicks'][$j]['agent_id'] == $i)
   {
     if(!empty($arr['user_clicks'][$j]['agent_id']){
       echo "<td">
       echo $arr['user_clicks'][$j]['agent_id'];
       echo "</td>";  
     }

     if($arr['user_clicks'][$j]['click_type']=='phone'){
       echo "<td">
       echo $arr['user_clicks'][$j]['click_type'];
       echo "</td>";  
     }
     else 
     {
       echo "<td">
       echo '';
       echo "</td>";  
     }

     if($arr['user_clicks'][$j]['click_type']=='email'){
       echo "<td">
       echo $arr['user_clicks'][$j]['click_type'];
       echo "</td>";  
      }else 
      {
         echo "<td">
         echo '';
         echo "</td>";  
       }

       if($arr['user_clicks'][$j]['click_type']=='offline'){
           echo "<td">
          echo $arr['user_clicks'][$j]['click_type'];
          echo "</td>";  
        }
          else 
        {
        echo "<td">
         echo '';
        echo "</td>";  
         }

          if(!empty($arr['user_clicks'][$j]['click_count']){
             echo "<td">
            echo $arr['user_clicks'][$j]['click_count'];
             echo "</td>";  
           }
           else 
          {
          echo "<td">
          echo '';
              echo "</td>";  
           }


     }
       echo "</tr>";  
   }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-11-26
    • 2013-05-24
    • 1970-01-01
    • 2015-11-08
    • 1970-01-01
    • 2012-11-04
    • 1970-01-01
    • 2022-01-24
    相关资源
    最近更新 更多