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://azwzsj.com/article/hiddig.html