|
|
| 深入模板应用:循环处理 |
每个程序都会涉及到循环处理,引入循环到模板是模板引擎一个比较有特色的功能。
Ease Template 为了方便应用将在每次循环时增加一个递增变量$_i ,用户可以使用此变量来制作循环无数据等提示。
Ease Template提供了两种循环方式:foreach、while
先来介绍foreach用法(为了方便在Ease Template模板中的应用,对用法进行了一定的优化)。
test_4.php
-
<?php
- include"./template.ease.php";
- $tpl = new template();
- //参与循环的数组
- $user_list = array(
- array(
- 'name' => 'md-chinese',
- 'pass' => '654321',
- ),
- array(
- 'name' => 'test',
- 'pass' => '123456',
- )
- );
- $tpl->set_file('test_4');
- $tpl->p();
- ?>
test_4.htm
-
循环代码:
- <!-- $user_list AS $user -->
- ID:{_i}
- 账号:{user['name']}
- 密码:{user['pass']}
- <!-- END -->
- 无法得到循环数据代码:
- <!-- $user_list1 AS $users -->
- ID:{_i}
- 账号:{users['name']}
- 密码:{users['pass']}
- <!-- END -->
- <!-- 用于判断提示检测的方法$_i==0 -->
- <!-- IF[$_i==0] -->
- <font color="#800000">抱歉,没有得到循环数据!</font>
- <!-- 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
-
<?php
- include"./template.ease.php";
- //引入数据库类
- include"./mysql.php";
- $tpl = new template();
- //声明数据库
- $db = new Dirver();
- //连接数据库
- $db->DBLink('localhost','root','','test');
- //索引数据
- $query = $db->query("SELECT * FROM users");
- $tpl->set_file('test_5');
- $tpl->p();
- ?>
此次模板中与foreach循环一样也提供了一个没有数据的循环,将会提示没有数据效果。
test_5.htm
-
循环代码:
- <!-- while:$user = $db->fetch_array($query) -->
- ID:{_i}
- 账号:{user['username']}
- 密码:{user['password']}
- <!-- END -->
- 无法得到循环数据代码:
- <!-- while:$users = $db->fetch_array($query1) -->
- ID:{_i}
- 账号:{users['username']}
- 密码:{users['password']}
- <!-- END -->
- <!-- 用于判断提示检测的方法$_i==0 -->
- <!-- IF[$_i==0] -->
- <font color="#800000">抱歉,没有得到循环数据!</font>
- <!-- END -->
|
|