Ease Template Manual Version:E3
功能列表:
选择最合适的模板 ET
ET 无与伦比的优势
ET学习入门实例
深入模板应用:变量
深入模板应用:路径解析
深入模板应用:逻辑判断
深入模板应用:循环处理
深入模板应用:嵌套循环
深入模板应用:特殊循环
深入模板应用:弥补函数
深入模板应用:连载执行
深入模板应用:中层编译
深入模板应用:内部引用
深入模板应用:引用PHP
深入模板应用:多语言篇
深入模板应用:调试平台
下载ET
版本历史
联系作者
ET 经典案例
深入模板应用:循环处理
每个程序都会涉及到循环处理,引入循环到模板是模板引擎一个比较有特色的功能。

Ease Template 为了方便应用将在每次循环时增加一个递增变量$_i ,用户可以使用此变量来制作循环无数据等提示。

Ease Template提供了两种循环方式:foreach、while

先来介绍foreach用法(为了方便在Ease Template模板中的应用,对用法进行了一定的优化)。

test_4.php
  1. <?php  
  2. include"./template.ease.php";  
  3. $tpl = new template();  
  4. //参与循环的数组  
  5. $user_list = array(  
  6.   array(  
  7.     'name'  => 'md-chinese',  
  8.     'pass'  => '654321',  
  9.   ),  
  10.   array(  
  11.     'name'  => 'test',  
  12.     'pass'  => '123456',  
  13.   )  
  14. );  
  15. $tpl->set_file('test_4');  
  16. $tpl->p();  
  17. ?>

test_4.htm
  1. 循环代码:  
  2. <!-- $user_list AS $user -->  
  3.   ID:{_i}   
  4.   账号:{user['name']}  
  5.   密码:{user['pass']}  
  6. <!-- END -->  
  7. 无法得到循环数据代码:  
  8. <!-- $user_list1 AS $users -->  
  9.   ID:{_i}   
  10.   账号:{users['name']}  
  11.   密码:{users['pass']}  
  12. <!-- END -->  
  13. <!-- 用于判断提示检测的方法$_i==0 -->  
  14. <!-- IF[$_i==0] -->  
  15. <font color="#800000">抱歉,没有得到循环数据!</font>  
  16. <!-- END -->


现在我们进入更复杂的循环操作:while在模板中对数据库的操作。如果将数据库对象引入模板则不用在循环后得到数组再赋值给模板,节省了大量时间以及循环次数。

测试数据库内容:
[text character set utf8]
CREATE TABLE `users` (
`uid` INT( 3 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`username` VARCHAR( 64 ) NOT NULL ,
`password` VARCHAR( 32 ) NOT NULL
) TYPE = MyISAM ;

INSERT INTO `users` (`uid`, `username`, `password`) VALUES (1, 'md-chinese', '123456'),
(2, 'ease template', 'systn');
[/text character set utf8]

这里为了体现数据库操作效果,我们载入一个简单的数据库类,连接本地数据库,并且连接test库表。

test_5.php
  1. <?php  
  2. include"./template.ease.php";  
  3. //引入数据库类  
  4. include"./mysql.php";  
  5. $tpl = new template();  
  6. //声明数据库  
  7. $db = new Dirver();  
  8. //连接数据库  
  9. $db->DBLink('localhost','root','','test');  
  10. //索引数据  
  11. $query $db->query("SELECT * FROM users");  
  12. $tpl->set_file('test_5');  
  13. $tpl->p();  
  14. ?>


此次模板中与foreach循环一样也提供了一个没有数据的循环,将会提示没有数据效果。

test_5.htm
  1. 循环代码:  
  2. <!-- while:$user = $db->fetch_array($query) -->  
  3.   ID:{_i}   
  4.   账号:{user['username']}  
  5.   密码:{user['password']}  
  6. <!-- END -->  
  7. 无法得到循环数据代码:  
  8. <!-- while:$users = $db->fetch_array($query1) -->  
  9.   ID:{_i}   
  10.   账号:{users['username']}  
  11.   密码:{users['password']}  
  12. <!-- END -->  
  13. <!-- 用于判断提示检测的方法$_i==0 -->  
  14. <!-- IF[$_i==0] -->  
  15. <font color="#800000">抱歉,没有得到循环数据!</font>  
  16. <!-- END -->
我要啦免费统计