php查询数据表分组 mysql分组查询最新数据

PHP查询信息通过分组名字查出该分组下所有的成员

?php

十余年的平罗网站建设经验,针对设计、前端、开发、售后、文案、推广等六对一服务,响应快,48小时及时工作处理。网络营销推广的优势是能够根据用户设备显示端的尺寸不同,自动调整平罗建站的显示方式,使网站能够适用不同显示终端,在浏览器中调整网站的宽度,无论在任何一种浏览器上浏览网站,都能展现优雅布局与设计,从而大程度地提升浏览体验。创新互联从事“平罗网站设计”,“平罗网站推广”以来,每个客户项目都认真落实执行。

if($_POST['cid']){//拿到分组的ID值

$sql  = "SELECT * FROM `deptuser` WHERE `cid` = ".$_POST['cid'];

$result = mysql_query($sql);

if($result  mysql_num_rows($result)){

while($rows = mysql_fetch_assoc($result)){

$arr[] = $rows;

}

}else{

   echo "没有成员数据";

}

}

foreach ($arr as $key = $value) {

if ($key == 'uid') {

$newname['name'] = getUserName($value);

}else{

$newname[$key] = $value;

}

}

//这个就是分组下带用户名的数组

print_r($newname);

function getUserName($uid){

$sql = "SELECT name FROM `user` WHERE `uid` = ".$uid;

$result = mysql_query($sql);

if ($result) {

$rows = mysql_fetch_assoc($result);

return $rows;

}else{

echo "查询没有用户名";

}

}

?

//也可以这样 

//?php

$sql = "SELECT a.name,a.id,b.uid,b.cid FROM user as a,deptuser as b WHERE a.uid = b.uid AND b.cid = ".$_POST['cid'];

?

望采纳 Thx

Thinkphp数据查询group分组如何取每组的最新记录

本人用ThinkPHP3.2,今天正在开发一个需要分组显示的功能,可是从数据库中把相应数据读取后直接用group分组,结果每组显示的是最老的记录,我的需求是要显示每组的最新记录。在网上大搜一翻后,未果,本人决定自行研究,现将方法记录于此以防遗忘。

其实很简单,以供就两步:

第一步:

将符合条件的数据全部取出,暂不用group分组,作为子查询:

[php] view plain copy

$subQuery = $model-field('id,name')-table('tablename')-where($where)-order('time desc')-select(false);

第二部:

利用子查询进行查询分组

[php] view plain copy

$model-table($subQuery.' a')-group('field')-select();span style="font-family: Arial, Helvetica, sans-serif;" /span

好了,思路就是这样。希望对大家有帮助!

THINKPHP中怎么对数据进行分组查询?

分组查询原理都是SQL的分组查询,THINKPHP中只是用到他自己的一些自定义的方法!比如 join()、group()、having()方法等,实际对应的也是SQL里的这些关键字!

例如本次需求是要按照cid进行分组,按照通常的做法是 SELECT * FROM 表名 GROUP BY cid,这样就能按照cid进行分组筛选!然后使用THINKPHP的时候则使用 M('表名')-group('cid')-select(); 实际生成的语句和原始SQL代码是一样的。


本文名称:php查询数据表分组 mysql分组查询最新数据
分享地址:http://hbruida.cn/article/hiddig.html