ThinkPHP-<volist></volist>标签,模板调用循环输出数据如何按照指定顺序排列?

求大神帮忙`
如何实现<volist></volist>循环输出时,按照指定的顺序升序排列?
(volist默认输出是按ID降序输出的)

按这个字段升序排~

代码如下:
<volist name="list" id="r">
<dl>

<dt><a href="{$r.url}"><img src="{$r.thumb}" width="180" height="280" /></a></dt>

<dd>职务:{$r.keywords}</dd>

<dd>姓名:{$r.title}</dd>

</dl>

</volist>

排序还是能过SQL语句来操作,TP的排序语法是
$list = M('表名')->order("listorder ASC")->select();//升序排列
$list = M('表名')->order("listorder DESC")->select();//降序序排列
当然如果写的Model层,也可以将M("表名")换成D("Model层名")
温馨提示:内容为网友见解,仅供参考
第1个回答  2019-10-31
首先volist只是你输出的结果,foreach输出,所以传到你前端的volist就是一个固定的list.
所以你要在控制器里改,给你个参考:
$list = Db::name('user01')->where($map)->order(array('name'=>'asc'))->select();

user01就是数据库的名字,
$map是你查询的条件,
order就是排序,name就是你要排序的字段,当然也可以是ID,手机号,asc就是正序排列。

写到这,你再不懂我就没办法了
第2个回答  2014-04-28
你应该在mysql查询出来的时候就是排序好的,那样容易,而不是查询出来后用php来排序
第3个回答  推荐于2018-03-12
volist默认输出和ID顺序是无关的,你后端代码得到的顺序是什么,循环输出的顺序就是什么。我建议先建立好后端数据的顺序。本回答被网友采纳

ThinkPHP-<volist><\/volist>标签,模板调用循环输出数据如何按照指定顺 ...
list = M('表名')->order("listorder ASC")->select();\/\/升序排列 list = M('表名')->order("listorder DESC")->select();\/\/降序序排列 当然如果写的Model层,也可以将M("表名")换成D("Model层名")

thinkphp如何使volist中的编号$i从任意数开始
输出偶数记录:<volist name="list" id="vo" mod="2" > <eq name="mod" value="1"> {$vo.name} <\/eq> <\/volist>

thinkphp里volist输出序号,从2开始该怎么操作。
<volist name="result" id="vo"> <li <if condition="$key eq 1">class="hover"<\/if>>{$key}<\/li> <\/volist>

thinkphp中的volist标签详解
name(必须):指定数据模板变量。id(必须):循环变量。offset(可选):数据输出的起始位。length(可选):数据输出长度。key(可选):循环的key变量,默认为i。mod(可选):用于对key值取模,默认为2。empty(可选):数据为空时显示的字符串。volist标签常用于输出模型select方法返回的二维数组。

关于thinkPHP volist 嵌套循环的问题
<\/tr> <\/volist> <\/tbody> <\/table> 以上代码序号列不分页的情况下显示正常分页的话每一列序号都会从1开始,如果不想如此可在查询中加入序号,查询代码修改如下不:m = M()->table($topListSql." a, (select @rowNO := 0) b")->field("a.*,(@rowNO := @rowNo+1) AS rowNo");

关于thinkphp 中模板循环多维数值型数组的问题
关联查询查出来的是二维数组,不会在某个字段还是数组 如果你的某个字段还是数组,说明你的关联查询应该有问题,你可打印出来看一下 <volist name="list" id="vo">{$vo.id}|{$vo.name}<\/volist>这是最基本的,并且volist是支持嵌套使用的 ...

在thinkphp中 我怎么在模板中将循环和函数结合起来??
你这样查询出来的是一个二维数组,在模板中有专门的标签用来循环输出的,所以不必要去计算他的长度的,你直接用 volist这个标签 用法如下:<volist name='books' id='vo'> 显示书名:{$vo.name} <\/volist> name的值books就是你在控制器传过来的二维数组名 ...

ThinkPHP模板中如何多次输出同一个值或者输出下一个值?
那么调用{$res.0.xx}等同于$res[0]['xx'],你可以调用无数次。输出两行值,则用volist或者foreach标签循环。\/\/首先在控制器里注入变量$this->assgin('res',$res);以下是模版里的volist循环实例 <volist name="res" id="vo"> {$vo.id}:{$vo.name}<br\/><\/volist> ...

ThinkPHP中foreach和volist的区别
ThinkPHP中foreach和volist的区别 1.foreach标签 foreach标签用于循环输出:foreach(name,item,key)name(必须):要输出的数据模板变量 item(必须):循环单原变量 key(可选):循环的key变量,默认值为key 示例:<foreach name='list' item='vo'> {$vo.id} {$vo.name} <\/foreach> foreach标签...

thinkPHP这样的一组数组 怎么组合一下 在模板循环出来 见问题补充...
假设此数组名字叫$stu,php代码如下:this->assign($stu);模板调用如下:<table><tr><td>学号<\/td><td>姓名<\/td><td>专业<\/td><td>时间<\/td><\/tr><tr><td>{$student_number}<\/td><td><volist name='name' id='row'>{$row.name}<\/volist><\/td><td><volist name='class' id=...

相似回答