㈠ php分组统计,排序问题。
不是很理解你的收入是怎么算的.就当假设的情况下
假如有张业务表 s,表中有业务来源字段 s_type,有收入字段s_in.
select sum(s_in) as money from s group by s_type order by money desc
㈡ php 产生数据统计图
首先,PHP生成数据统计图可以用jpgraph这个类库,很方面也很容易使用,官方网站是:http://jpgraph.net
jpgraph生成的的统计图其实就是图片格式,当然也可以放到Drupal中,直接在模板中引入这个图片链接或者在编辑器中插入图片都可以。Drupal的模板机制可以参考这篇文章:http://mimiz.cn/index.php/drupal/drupal-themes-template/
希望可以帮助到你。
㈢ PHP循环显示一个月的数据,并做当天统计
先说原理,首先就是根据你表里面记录时间的字段的格式要方便些,还有你是一三十天为一个单位还是安装自然月为一个月。不论那种你也可以多种方式就是选择要显示的时间。那么就比较复杂,不过都大同小异。你可以可以用正则对时间进行处理,之后得到你的数据库表数据调用循环范围。然后对日期进行分类,之后每个分类里面的钱数进行相加。要做好也挺麻烦主要是要顾虑各种情况。不懂再问我把,就说这些了。
㈣ PHP递归无限分类的 如何统计总条数 以及对显示的结果进行分页比如设置为每页显示10个 。
每个节点都要记录子节点的数量c。每新增一个节点都要对各父和祖节点的子节点计数加1。这样根节点会有总数的记录。
这样递归遍历时也可以根据子节点数量c的来确定读取的数量限制。比如 读取条数计数<10 就继续递归
在每个节点的表上 增加子节点的id集或计数,增加根节点到父节点路径,会方便这些操作。
㈤ 关于PHP中的统计成绩
查询出所有的finalgrade 的成绩 然后
int a b c d e =0;
$result=mysql_query(select * from mdl_grade_grades )
while($new_row=mysql_fetch_array($result))
if($new_row['分数字段']>90){
$a++;
} elseif(80<$new_row['分数字段']<90){
$b++;
}elseif.....直接到成绩<60的 为止
最后echo $a;就是a的个数 $b 就是b的 。。。。懂了么?辛苦敲打 采纳吧~~
㈥ MySQL按月分表PHP如何做汇总统计查询排序分页
1、UNION
2、若是innodb分表,则可以用merge处理。
直接搞一张专门针对统计数据用的汇总表
如果可能的话,不要采用分表的设计,采用表分区,这样就对于查询就不需要特殊处理了。规划好索引,性能应该不会有问题。
㈦ ThinkPHP分组汇总统计如何实现
分组查询原理都是SQL的分组查询,THINKPHP中只是用到他自己的一些自定义的方法!比如
join()、group()、having()方法等,实际对应的也是SQL里的这些关键字!
例如本次需求是要按照cid进行分组,按照通常的做法是 SELECT * FROM 表名 GROUP BY
cid,这样就能按照cid进行分组筛选!然后使用THINKPHP的时候则使用 M('表名')->group('cid')->select();
实际生成的语句和原始SQL代码是一样的。
join通常有下面几种类型,不同类型的join操作会影响返回的数据结果。
INNER JOIN: 等同于 JOIN(默认的JOIN类型),如果表中有至少一个匹配,则返回行
LEFT JOIN: 即使右表中没有匹配,也从左表返回所有的行
RIGHT JOIN: 即使左表中没有匹配,也从右表返回所有的行
FULL JOIN: 只要其中一个表中存在匹配,就返回行
㈧ php数组如何根据相同值再分组
这个答案是错误的!请及时认清。我想问一下答主你是这么想的?
请查考下面的这些PHP函数
统计:
array_count_values 统计数组中所有的值出现的次数
array_proct 计算数组中所有值的乘积
array_sum 计算数组中所有值的和
count 计算数组中的单元数目或对象中的属性个数
sizeof count() 的别名
搜索:
array_key_exists 检查给定的键名或索引是否存在于数组中
array_search 在数组中搜索给定的值,如果成功则返回相应的键名
in_array 检查数组中是否存在某个值
排序:
array_multisort 对多个数组或多维数组进行排序
arsort 对数组进行逆向排序并保持索引关系
asort 对数组进行排序并保持索引关系
krsort 对数组按照键名逆向排序
ksort 对数组按照键名排序
natcasesort 用“自然排序”算法对数组进行不区分大小写字母的排序
natsort 用“自然排序”算法对数组排序
rsort 对数组逆向排序
sort 对数组排序
uasort 使用用户自定义的比较函数对数组中的值进行排序并保持索引关联
uksort 使用用户自定义的比较函数对数组中的键名进行排序
usort 使用用户自定义的比较函数对数组中的值进行排序
shuffle 将数组打乱
交集:
array_intersect_assoc 带索引检查计算数组的交集
array_intersect_key 使用键名比较计算数组的交集
array_intersect_uassoc 带索引检查计算数组的交集,用回调函数比较索引
array_intersect_ukey 用回调函数比较键名来计算数组的交集
array_intersect 计算数组的交集
array_key_exists 用回调函数比较键名来计算数组的交集
array_uintersect_assoc 带索引检查计算数组的交集,用回调函数比较数据
array_uintersect 计算数组的交集,用回调函数比较数据
差集:
array_udiff_assoc 带索引检查计算数组的差集,用回调函数比较数据
array_udiff_uassoc 带索引检查计算数组的差集,用回调函数比较数据和索引
array_udiff 用回调函数比较数据来计算数组的差集
array_diff_assoc 带索引检查计算数组的差集
array_diff_key 使用键名比较计算数组的差集
array_diff_uassoc 用用户提供的回调函数做索引检查来计算数组的差集
array_diff_ukey 用回调函数对键名比较计算数组的差集
array_diff 计算数组的差集
获取数组的部分内容:
array_chunk 将一个数组分割成多个
array_filter 用回调函数过滤数组中的单元
array_keys 返回数组中所有的键名
array_slice 从数组中取出一段
array_values 返回数组中所有的值
加工出所需数组:
array_combine 创建一个数组,用一个数组的值作为其键名,另一个数组的值作 为其值
array_fill 用给定的值填充数组
array_flip 交换数组中的键和值
array_map 将回调函数作用到给定数组的单元上
array_merge_recursive 递归地合并一个或多个数组
array_merge 合并一个或多个数组
array_pad 用值将数组填补到指定长度
array_push 将一个或多个单元压入数组的末尾(入栈)
array_reverse 返回一个单元顺序相反的数组
array_shift 将数组开头的单元移出数组
array_splice 把数组中的一部分去掉并用其它值取代
array_unique 移除数组中重复的值
array_unshift 在数组开头插入一个或多个单元
array_walk_recursive 对数组中的每个成员递归地应用用户函数
array_walk 对数组中的每个成员应用用户函数
compact 建立一个数组,包括变量名和它们的值
range 建立一个包含指定范围单元的数组
单元:
array_pop 将数组最后一个单元弹出(出栈)
array_rand 从数组中随机取出一个或多个单元
current 返回数组中的当前单元
pos current() 的别名
each 返回数组中当前的键/值对并将数组指针向前移动一步
end 将数组的内部指针指向最后一个单元
key 返回数组中当前单元的键名
list 把数组中的值赋给一些变量
next 将数组中的内部指针向前移动一位
prev 将数组的内部指针倒回一位
reset 将数组的内部指针指向第一个单元
其他:
array_rece 用回调函数迭代地将数组简化为单一的值
extract 从数组中将变量导入到当前的符号表
array 新建一个数组
㈨ PHP分类显示输出
双重循环来实现,结构如下:
$sql1='select pro_nclass.id,pro_nclass.name,count(*) from pro_nclass,news where pro_nclass.id=news.cid group by 1,2 order by 1';
//上面的语句对news表中的新闻按照类别进行统计,并获取类别名称
$res1=mysql_query($sql1);
while(list($cid,$cname,$ncnt)=mysql_fetch_row($res1)){
echo "$cid $cname $ncnt<br>";//显示本类新闻的名称和数量
$sql2="select * from news where cid=$cid order by id desc limit 10";
$res2=mysql_query($sql2);
while($row=mysql_fetch_array($res2)){..显示一个新闻的语句..}
mysql_free_result($res2);
}
mysql_free_result($res1);
以上代码是基本的架构,你写的时候一定要加上错误检测。
㈩ php中如何用SQL查询实现分组后按某字段统计总数
实现上面sql查询结果的记录总数
$sql = select count(C.`cid`) as `c` from (select * from `ctable` group by pid) as C left join `ptable` as P on P.`pid` = C.`pid`;
详解,此语句用到了sql子查询,先使用子查询对ctable进行分组查询,然后对分组后的结果集进行统计.