本文目录一览:
- 1、thinkphp如何按统计结果排序?
- 2、thinkphp如何查询某一条数据在所有查询到的数据中的跟它一个排序?
- 3、thinkphp 数据库查询连贯操作 order 当字段和排序两个都采用变量时,无法读取数据库
- 4、thinkPHP二维数组排序
- 5、thinkphp如何实现快速排序
- 6、thinkphp volist 排序问题
thinkphp如何按统计结果排序?
数据库表uid 应该是用户的id了吧 而评论表都会有对应的评论和用户id 就是取 这个用户id的所有数据进行核算条数。按desc排序就行了啊
thinkphp如何查询某一条数据在所有查询到的数据中的跟它一个排序?
foreach name="content" item="vo" key="key"
{$key}
/foreach
thinkphp 数据库查询连贯操作 order 当字段和排序两个都采用变量时,无法读取数据库
$list=D('QA1')-where($whereS)-limit($first,$pagesize)-order($sort $order)-select();这样试试吧。我记得order里面不是放数组的-thinkphparray排序
thinkPHP二维数组排序
从两个不同的表中获取各自的4条数据,然后整合(array_merge)成一个数组,再根据数据的创建时间降序排序取前4条。
遇到这个要求的时候就不是 ORDER BY 能解决的问题了。因此翻看 PHP 手册查找到了如下方法,做此笔记。
废话少说,奉上代码,清单如下:
[php] view plain copy
?php
/**
* 二维数组根据某个字段排序
* 功能:按照用户的年龄倒序排序
* @author ruxing.li
*/
header('Content-Type:text/html;Charset=utf-8');
$arrUsers = array(
array(
'id' = 1,
'name' = '张三',
'age' = 25,
),
array(
'id' = 2,
'name' = '李四',
'age' = 23,
),
array(
'id' = 3,
'name' = '王五',
'age' = 40,
),
array(
'id' = 4,
'name' = '赵六',
'age' = 31,
),
array(
'id' = 5,
'name' = '黄七',
'age' = 20,
),
);
$sort = array(
'direction' = 'SORT_DESC', //排序顺序标志 SORT_DESC 降序;SORT_ASC 升序
'field' = 'age', //排序字段
);
$arrSort = array();
foreach($arrUsers AS $uniqid = $row){
foreach($row AS $key=$value){
$arrSort[$key][$uniqid] = $value;
}
}
if($sort['direction']){
array_multisort($arrSort[$sort['field']], constant($sort['direction']), $arrUsers);
}
var_dump($arrUsers);
/*
输出结果:
array (size=5)
0 =
array (size=3)
'id' = int 5
'name' = string '黄七' (length=6)
'age' = int 20
1 =
array (size=3)
'id' = int 2
'name' = string '李四' (length=6)
'age' = int 23
2 =
array (size=3)
'id' = int 1
'name' = string '张三' (length=6)
'age' = int 25
3 =
array (size=3)
'id' = int 4
'name' = string '赵六' (length=6)
'age' = int 31
4 =
array (size=3)
'id' = int 3
'name' = string '王五' (length=6)
'age' = int 40
*/
thinkphp如何实现快速排序
thinkphp使用的数据库是mysql,mysql多个字段排序的语句:
select
* from `表名` where 条件 order by 字段1 desc,字段2
asc,...
thinkphp中排序方法为
$User-where('score0')-order('score desc')....;
但是例子中只能单字段排序,不过可以理解成字符串,那就可以这样写试试
$User-where('score0')-order('score desc,id asc,...')....;
thinkphp volist 排序问题
首先volist只是你输出的结果,foreach输出,所以传到你前端的volist就是一个固定的list.
所以你要在控制器里改,给你个参考:
$list = Db::name('user01')-where($map)-order(array('name'='asc'))-select();
user01就是数据库的名字,
$map是你查询的条件,
order就是排序,name就是你要排序的字段,当然也可以是ID,手机号,asc就是正序排列。
写到这,你再不懂我就没办法了