4

次のテーブルがありp_total、テーブル内の他のすべてのレコードと一緒に合計を表示しようとしています。合計金額を表示することができましたが、表示すると、テーブルの最初の行の値のみが表示されます。p_totalの合計は600として正しく表示されていますが。

以下の私のコードのどこに問題があるのか​​教えてください:

前もって感謝します :)

私のDBテーブル:

 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'];?>
4

3 に答える 3

5

完全な個別のリストがあります。

$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 

)
于 2015-08-11T14:04:37.473 に答える
3

あなたの見解:

$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;?>
于 2012-10-02T18:40:59.047 に答える
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');
于 2012-05-24T19:54:22.600 に答える