两种方式 :
1、可以直接用SQL 里的函数 sum() ;
如:"select sum(字段) as num from tab "; //sum 取该字段所有列的总和
2、用PHP函数 sum($array) ; //取数组中值的总和
当然 字段必须是int型的
sum(1)就是1这个数值,count(1)相当于第一列的名字,虽然统计行结果是一样的,从效率上还是推荐count。显然对于*和name知道主键列的直接指定会更好,不知道的话用星号也无妨。
你的问题有N多问题,说说我的建议,
通常,假如一张表纪录包子米饭的销售纪录
ID 售出类型 售出数量 售出时间
id type num time
1 baozi 10 2013.08.01 15:30
2 mifan 21 2013.08.01 11:30
查米饭今天的销售纪录 就
select sum(num) from table where type = 'mifan' and time 2013.08.01 00:00:00 and time 2013.08.01 23:59:59
当然这里的时间比较只是比较直观点的,具体比较时肯定用时间戳格式的,,,,
简单明了,
然后回到你的问题,
你已经查询出了1.1号的包子销量,你现在需要做的就是要查出1.1号的米饭数量对吧
TP我以前玩过,是MVC的,这样的话,你其实可以这样,
在取当天销售包子的数据时,根据日期查询当天的米饭数量,然后一同放进数组,然后的模板里直接打印,
直观点就是原本一个数组
?php
$data=array('20130101'=array('baozi'=12),
'20130102'=array('baozi'=16));
foreach($data as $k=$v){
select sum(mifan) from table where 时间在20130101这天,
得到数量$n
$data[$k]['mifan']=$n;
}
这样下来数组$data就会变成:
$data=array('20130101'=array('baozi'=12,'mifan'=...),
'20130102'=array('baozi'=16,'mifan'=...));
你直接在模板文件里取对应字段值就可以了,
因为没看到你的代码,所以解释的可能不清,有问题欢迎追问,
追问
Select url, Count(*) As c From `".$begin."` where is_uid='1' and ref_type='sina' group by url ORDER BY `c` desc
$begin 是一个表,表是按照时间命名的
sql 用 count
mysql_num_rows — Get number of rows in result
这二种方法都能得到单张表的记录号
然后将方法封装为函数,循环调用一下就可以得到总数
select sum("金额字段") as cmoney from 表 where 1;
然后你输出cmoney这个就是相加的效果。
还有一种比较差点的方法就是:
1、select 金额字段 from 表 where 1;
2、获取你得到的所有信息,然后foreach 把所有的金额相加就行,
实例:$sql = "select money from cg_money where 1";
$query = mysql_query($sql);
$m = 0;
while($rs = mysql_fetch_array($sql)){
$m = $m+$rs['money'];
}
echo $m;这个也是可以获取所有的money的,就是费事了点,还是上面的呢个方法好滴,也就是楼上的呢个方法
评论