如何将新索引和值推送到php数组?

时间:2015-05-14 06:48:55

标签: php mysql

我使用分组付款方式从表中获取数据。在组中发生的事情是数据出现,对应于表中的那些数据。但我希望所有付款类型都显示在结果中。 我正在使用以下查询。

 $query = "select  paytype ,sum(totalamount)  from `tbl_payments` group by paytype";

有5种(现金,信用卡,PayPal ..)付款方式。我希望所有付款方式都包含结果,因此如果查询结果未找到paytype,则应将其添加为['credit'] =>[0],意为paytype => amount(which should be 0 at that case)

请帮我解决这个问题。

3 个答案:

答案 0 :(得分:1)

您没有说明包含有效付款方式列表的表格paytype

要获取结果中的所有付款方式,您必须使用左连接。类似的东西:

select pt.paytype, sum(p.totalamount)
from `tbl_paytypes` pt
left join `tbl_payments` p 
on pt.paytype = p.paytype 
group by pt.paytype

答案 1 :(得分:0)

使用带有paymettypes表格的左连接获取所有付款类型

答案 2 :(得分:0)

最好的方法是使用实​​体类, 离。

class PaymentTypes{  private $cash;  private $credit;  private $paypal;  ....

//constructor

//setters and getters }

在构造函数中,如果没有任何值,可以为字段设置默认参数

public function __construct($array){   $someDefaultValue = '';   if(!empty($array['name_of_column_in_databaseTable'])){   $this->$cash
= $array['name_of_column_in_databaseTable'];  }else{   $this->$cash = $someDefaultValue; } ... }

数据库的结果就像数组(array(),array(),...)

所以你可以:

foreach($result as $key=>$value){
 $paymentTypes[] = new PaymentTypes($value);
}