用sql查询数据结果为
year mon
2012 12
2012 10
2011 12
2010 5如何让他循环输出结果为:
<ul>
<li>
<a>2012</a>
<ul>
<li>
<a>12</a>
</li>
<li>
<a>10</a>
</li>
</ul>
<li>
<li>
<a>2011</a>
<ul>
<li>
<a >12</a>
</li>
<li>
<a >6</a>
</li>
</ul>
<li>
..........
</ul>
代码怎么写
year mon
2012 12
2012 10
2011 12
2010 5如何让他循环输出结果为:
<ul>
<li>
<a>2012</a>
<ul>
<li>
<a>12</a>
</li>
<li>
<a>10</a>
</li>
</ul>
<li>
<li>
<a>2011</a>
<ul>
<li>
<a >12</a>
</li>
<li>
<a >6</a>
</li>
</ul>
<li>
..........
</ul>
代码怎么写
按照你的结构给个例子吧// 组建示例数据
$arr = array(array('year' => '2012', 'mon' => '10', 'day' => '8'),
array('year' => '2012', 'mon' => '10', 'day' => '9'),
array('year' => '2012', 'mon' => '10', 'day' => '10'));
// 将$arr数组赋予模版的Data变量
$this->assign('Date', $arr);以上就完成了后端给模版赋值的操作
下面是模版中通过模版引擎以及ThinkPHP提供的标签输出<!-- 这里的name是用来获取你赋值的变量,id是volist循环内部输出变量用的,可以随便起 -->
<volist name="Date" id="vo">
<ul>
<li><a>{$vo.Year}</a></li>
<li><a>{$vo.mon}</a></li>
<li><a>{$vo.day}</a></li>
</ul>
</volist>
这样就可以按照这个格式输出了
希望对你有用
建议你先大体看一遍ThinkPHP的手册
你把数据组织成多维的就是了
没明白你的意思
你的意思是不是假如year = '2012'的时候,有 mon = '12','10'这种情况,就把他输出在year = '2012' 的子节点下?
如果是这样的话,就像三楼版主说的,你可以在后台通过循环遍历,将year相同的项合并,作为多维数组。
然后赋值给模版。
模版使用标签嵌套就可以了<volist name='Date' id='vo'>
<ul>
<li><a>{$vo.year}</a>
<ul>
<volist name='vo.mons' id='v'>
<li><a>{$v.mon}</a></li>
</volist>
</ul>
</li>
</ul>
</volist>如果有日的话,也是这样。
不知道你的意思是不是这样。要注意的是,如果是这样的话,ThinkPHP默认设定的标签嵌套是最多三层,要是超过三层需要设置。具体方法手册中有