Thinkphp中数据按分类嵌套循环实现方法

本文实例讲述了Thinkphp中数据按分类嵌套循环实现方法。分享给大家供大家参考。具体实现方法如下:

做thinkphp时要用到循环里面嵌套循环的,并第二个循环是和外面的有关联的。
thinkphp官网给出的文档为:

代码如下:

<volist name="list" id="vo"> 
    <volist name="vo['sub']" id="sub"> 
        {$sub.name} 
    </volist> 
</volist>

我这里要用的表为:分类表(表1),数据表(表2)
要实现的效果为:

<表1_1> 
  <表2_1/> 
  <表2_2> 
</表1_1> 
<表1_2> 
  <表2_3/> 
  <表2_4> 
</表1_2>

其实原理也是先查出分类表(表1),再把表1和表2相关联查询,最后以二维数组的方式输出

后台代码如下:

代码如下:

$m=M('表1'); 
$m1=M('表2'); 
 
$parent=$m->select(); 
foreach($parent as $n=> $val){ 
    $parent[$n]['voo']=$m1->where('表2里和表1相关联的字段='.$val['表1id'].'')->select(); 

$this->assign('list',$parent); 
$this->display();

前台输出显示:

代码如下:

<volist name="list" id="vo"> 
    <li><b>{$vo.id}</b></li> 
    <volist name="vo['voo']" id="sub"> 
       <li>{$sub.title}</li> 
    </volist> 
</volist>

效果如下图所示:

希望本文所述对大家的ThinkPHP程序设计有所帮助。

(0)

相关推荐

  • PHP_MySQL教程-第二天while循环与数据库操作第1/2页

    第一页 while循环  在这一课里,我们将会继续深入下去,使用PHP和MySQL来写出一些简单而有用的页面.我们从昨天创建的数据库开始,显示库中的数据,但是会再稍微加以润色.  首先,我们用下面的代码来查询数据库内容. 复制代码 代码如下: <html>  <body>  <?php  $db = mysql_connect("localhost", "root");  mysql_select_db("mydb"

  • 解决PHP里大量数据循环时内存耗尽的方法

    最近在开发一个PHP程序的时候遇到如下一问题: PHP Fatal error: Allowed memory size of 268 435 456 bytes exhausted 错误信息显示允许的最大内存已经耗尽.遇到这样的错误起初让我很诧异,但转眼一想,也不奇怪,因为我正在开发的这个程序是要用一个foreach循环语句在一个有4万条记录的表里全表搜索具有特定特征的数据,也就是说,一次要把4万条数据取出,然后逐条检查每天数据.可想而知,4万条数据全部加载到内存中,内存不爆才怪. 毕竟编程这

  • php循环输出数据库内容的代码

    php do while方法     一般需要先$row=mysql_fetch_array($result)然后 do{something}while($row=mysql_fetch_array($result)) php while循环 while($row=mysql_fetch_array($result)){ }

  • PHP无限循环获取MySQL中的数据实例代码

    最近公司有个需求需要从MySQL获取数据,然后在页面上无线循环的翻页展示.主要就是一直点击一个按钮,然后数据从最开始循环到末尾,如果末尾的数据不够了,那么从数据的最开始取几条补充上来. 其实,这个功能可以通过JQ实现,也可以通过PHP + MYSQL实现,只不过JQ比较方便而且效率更高罢了. 每次显示10条数据. public function get_data($limit){ $sql="select * from ((select id,name from `mytable` limit

  • PHP提取数据库内容中的图片地址并循环输出

    复制代码 代码如下: /* 1 (?s) 代表 Pattern.DOTALL,也就是匹配换行,允许 img里出现在多行 2 .*?代表非贪婪匹配任意字符,直到后面的条件出现 3 ?: 代表这个匹配但不被捕获,也就是不在结果出现 [\.gif|\.jpg] 是或者的意思 */ $pattern="/<img.*?src=[\'|\"](.*?(?:[\.gif|\.jpg]))[\'|\"].*?[\/]?>/"; $str='<p style=&q

  • Thinkphp中数据按分类嵌套循环实现方法

    本文实例讲述了Thinkphp中数据按分类嵌套循环实现方法.分享给大家供大家参考.具体实现方法如下: 做thinkphp时要用到循环里面嵌套循环的,并第二个循环是和外面的有关联的. thinkphp官网给出的文档为: 复制代码 代码如下: <volist name="list" id="vo">      <volist name="vo['sub']" id="sub">          {$sub

  • ThinkPHP中数据操作案例分析

    本文实例分析了ThinkPHP中数据操作方法.分享给大家供大家参考.具体如下: 模板中使用函数,相信大部分的TPer都知道也用过吧. 案例: 获取用户名的方法 function get_username($uid){ $row = M('User')->getbyUid($uid); return $row['username']; } 在模板中通过uid显示用户名 <volist name="rows" id="row"> <tr>

  • Java中锁的分类与使用方法

    Lock和synchronized 锁是一种工具,用于控制对共享资源的访问 Lock和synchronized,这两个是最创建的锁,他们都可以达到线程安全的目的,但是使用和功能上有较大不同 Lock不是完全替代synchronized的,而是当使用synchronized不合适或不足以满足要求的时候,提供高级功能 Lock 最常见的是ReentrantLock实现 为啥需要Lock syn效率低:锁的释放情况少,试图获得锁时不能设定超时,不能中断一个正在试图获得锁的线程 不够灵活,加锁和释放的时

  • thinkPHP中配置的读取与C方法详解

    本文实例讲述了thinkPHP中配置的读取与C方法.分享给大家供大家参考,具体如下: 1.项目公共配置 Conf/config.php 内容如下 <?php /** *项目公共配置 *@package *@author **/ return array( 'LOAD_EXT_CONFIG' => 'db,info,email,safe,upfile,cache,route,app,alipay,sms,platform,store,pay', 'APP_AUTOLOAD_PATH' =>

  • thinkPHP中多维数组的遍历方法

    本文实例讲述了thinkPHP中多维数组的遍历方法.分享给大家供大家参考,具体如下: $drug=array( 'ACEI'=>array(array('ch_name'=>'我们','en_name'=>'captopril'),array('ch_name'=>'脚本下载','en_name'=>'enalapril'), array('ch_name'=>'赖诺普利','en_name'=>'lisinopril')), 'ARB'=>array(ar

  • Android实现内存中数据保存到sdcard的方法

    本文实例讲述了Android实现内存中数据保存到sdcard的方法.分享给大家供大家参考,具体如下: public static void writeToSdCard(String s) { try { File dst = new File("/sdcard/test_sensor/" + mName + ".txt"); File parent = dst.getParentFile(); if(!parent.exists()) { parent.mkdirs

  • JAVA中跳出当前多重嵌套循环的方法详解

    目录 前言 方法如下 总结 前言 在Java中,如何跳出当前的多重嵌套循环?很多复杂的运算以及逻辑可能用到嵌套循环,但是如何跳出当前的多重嵌套循环,很多同学特别是新手都操作的不是很清楚. 方法如下 (1)在Java中,要想跳出多重循环,可以在外面的循环语句前定义一个标号,然后在里层循环体的代码中使用带有标号的break语句,即可跳出外层循环. 例如: ok: for (int i = 0; i < 10; i++) { for (int j = 0; j < 10; j++) { System

  • Java 使用poi把数据库中数据导入Excel的解决方法

    Java 利用poi把数据库中数据导入Excel 效果: 使用时先把poi包导入工程的path,注意只需要导入poi包即可,下载后有三个jar包 核心代码: 连接数据库:DBConnection.java 复制代码 代码如下: package org.xg.db;import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;i

  • python中数据爬虫requests库使用方法详解

    一.什么是Requests Requests 是Python语编写,基于urllib,采Apache2 Licensed开源协议的 HTTP 库.它urllib 更加方便,可以节约我们大量的工作,完全满足HTTP测试需求. 一句话--requests是python实现的简单易用的HTTP库 二.安装Requests库 进入命令行win+R执行 命令:pip install requests 项目导入:import requests 三.各种请求方式 直接上代码,不明白可以查看我的urllib的基

  • Asp.net管理信息系统中数据统计功能的实现方法

    数据统计是每个系统中必备的功能,在给领导汇报统计数据,工作中需要的进展数据时非常有用. 在我看来,一个统计的模块应该实现以下功能: 能够将常用的查询的统计结果显示出来: 显示的结果可以是表格形式,也可以是图形形式,如果是图形的话能够以多种形式显示(柱状图.折线图.饼图.雷达图.堆叠柱状图等): 统计查询的结果,点击数字或者百分比能够显示详细的数据: 能够自由组合查询条件.筛选条件.分组条件.排序等: 统计结果最好有个实时预览: 查询统计能够保存,以便下次能直接调用并显示统计查询的结果: 对于保存

随机推荐