我有下表,我正在尝试显示p_total
的总和以及表格中的所有其他记录。我已设法显示总金额,但如果我显示它,则只显示表格第一行的值。虽然p_total的总和正确显示为600。
请您告诉我下面代码中的问题:
提前致谢:)
我的数据库表:
p_id p_name p_quantity p_rate p_total user_id
1 Pepsi 12 30 360 1
2 Hot Breads 12 20 240 1
我的模型中有以下代码
$this->db->select('*,SUM(temporary_table.p_total AS Total');
$this->db->from('temporary_table');
$this->db->where('user_id',$user_id);
$getData = $this->db->get('');
if($getData->num_rows() > 0) {
return $getData->result_array();
}
else {
return null;
}
这是我的控制者:
$this->load->model('mod_sales');
$data['records']= $this->mod_sales->add_to_temporary_table($user_id);
我的观点:
foreach ($records as $row)
{
<td><?php echo $row['p_name'];?></td>
<td><?php echo $row['p_quantity'];?></td>
<td><?php echo $row['p_rate'];?></td>
<td><?php echo $row['p_total'];?></td>
}
<?php echo $row['Total'];?>
答案 0 :(得分:4)
在您的视图中:
$total_sum=0;
foreach ($records as $row){
<td><?php echo $row['p_name'];?></td>
<td><?php echo $row['p_quantity'];?></td>
<td><?php echo $row['p_rate'];?></td>
<td><?php echo $row['p_total'];?></td>
$total_sum+=$row['p_total'];
}
<?php echo $total_sum;?>
答案 1 :(得分:4)
您有一个完整且单独的列表。
$this->db->select_sum('total_price');
$this->db->from('order');
$this->db->where('dates BETWEEN DATE_ADD(NOW(), INTERVAL -7 DAY) AND NOW() ');
$query=$this->db->get();
$data['total']=$query->row()->total_price;
$this->db->select('*');
$this->db->from('order');
$this->db->where('dates BETWEEN DATE_ADD(NOW(), INTERVAL -7 DAY) AND NOW()');
$query=$this->db->get();
$data['count']=$query->num_rows();
输出:
Array (
[total] => 2759
[count] => 5
)
答案 2 :(得分:1)
您缺少GROUP BY
条款。
据我了解,你想要这个:
SELECT *, SUM(p_total) FROM temporary_table WHERE user_id = ... GROUP BY p_id
不熟悉CodeIgniter,但猜测在“where”后需要这一行:
$this->db->group_by('p_id');