如何用PHP从MySQL中拆分数据
我尝试横向报告,如下图所示:如何用PHP从MySQL中拆分数据,php,mysql,codeigniter,Php,Mysql,Codeigniter,我尝试横向报告,如下图所示: NO | ITEMS NAME | 01 June | 02 June | 03 June 1 | Paper A4 | 3 | 4 | 5 2 | Pencil | 0 | 3 | 1 我在模型中完成了MySQL的查询调用,如: $this->db->select('namatoko, GROUP_CONCAT(DAY(tgl_inpt
NO | ITEMS NAME | 01 June | 02 June | 03 June
1 | Paper A4 | 3 | 4 | 5
2 | Pencil | 0 | 3 | 1
我在模型中完成了MySQL的查询调用,如:
$this->db->select('namatoko, GROUP_CONCAT(DAY(tgl_inpt) ORDER BY tgl_inpt ASC) as tgl, GROUP_CONCAT(omz ORDER BY tgl_inpt ASC) as mny');
$this->db->from('mzharian');
$this->db->join('toko','toko.idtoko = mzharian.toko');
$this->db->where('MONTH(tgl_inpt) = MONTH(NOW()) AND YEAR(tgl_inpt) = YEAR(NOW())');
$this->db->group_by('namatoko');
$omz = $this->db->get();
return $omz;
结果和我想要的一样
但现在问题可能来自控制器或视图,我不太确定,因为当我使用这些代码调用数据以查看时,它并不像我上面想要的那样。
这里是我的查看页面代码:
<?php while($row = mysqli_fetch_row($omz)) {
$tgl [] = $row->tgl;
$money [] = $row->mny;
$split = array_combine(explode(',', $tgl),explode(',', $money)); ?>
<tr>
<td><?php echo $row->namatoko ?></td>
<?php foreach($row as $v) { echo $split[$v] ? '<td>' .$split[$v].'</td> ':'' ; } ?>
</tr>
<?php }; ?>
$data['omz'] = $this->Model_omzet->loadomzet();
$data['datcb'] = $this->Model_omzet->datacb();
$this->load->view('header');
$this->load->view('omzet',$data);
导致如下错误:
mysqli\u fetch\u row()期望参数1是给定对象的mysqli\u结果
。这里有人能帮我找到解决方案吗?您可以从模型中将omz
结果作为对象返回,并确保它不是空的:
$this->db->select('namatoko, GROUP_CONCAT(DAY(tgl_inpt) ORDER BY tgl_inpt ASC) as tgl, GROUP_CONCAT(omz ORDER BY tgl_inpt ASC) as mny');
$this->db->from('mzharian');
$this->db->join('toko','toko.idtoko = mzharian.toko');
$this->db->where('MONTH(tgl_inpt) = MONTH(NOW()) AND YEAR(tgl_inpt) = YEAR(NOW())');
$this->db->group_by('namatoko');
$omz = $this->db->get();
if ($omz->num_rows() > 0)
{
return $omz->result();
}
然后在视图上添加验证:
您可以从模型中将
omz
结果作为对象返回,并确保它不是空的:
$this->db->select('namatoko, GROUP_CONCAT(DAY(tgl_inpt) ORDER BY tgl_inpt ASC) as tgl, GROUP_CONCAT(omz ORDER BY tgl_inpt ASC) as mny');
$this->db->from('mzharian');
$this->db->join('toko','toko.idtoko = mzharian.toko');
$this->db->where('MONTH(tgl_inpt) = MONTH(NOW()) AND YEAR(tgl_inpt) = YEAR(NOW())');
$this->db->group_by('namatoko');
$omz = $this->db->get();
if ($omz->num_rows() > 0)
{
return $omz->result();
}
然后在视图上添加验证:
mysqli\u fetch\u row()
需要一个由mysqli\u query()
、mysqli\u store\u result()或mysqli\u use\u result()返回的结果集标识符作为参数。您当前正在向它提供对象$omz
。检查$this->db
和var_dump($omz)
中发生的情况,以确定如何检索所需的结果集标识符。类似于:if($result=mysqli_query($link,$query)){while($row=mysqli_fetch_row($result)){
mysqli_fetch row()
需要一个结果集标识符作为参数,该标识符由mysqli_query()
、mysqli_store_result()
或mysqli_use_result()
返回。您当前正在向它提供对象$omz
。检查$this->db
和var\u dump($omz)中发生了什么
确定如何检索所需的结果集标识符。类似于:if($result=mysqli\u query($link,$query)){while($row=mysqli\u fetch\u row($result)){