1、数据库的设计
假设数据库服务器在“localhost”主机上,连接的用户名和密码分别为“admin”和“123456”,在该服务器上创建一个名为“mydb”的数据库,并在该数据库中创建一个名为“User”的用户表。创建该表的SQL査询语句如下所示:
CREATE TABLE User( id SMALLINT(3) NOT NULL AUTO_INCREMENT, name VARCHAR(10) NOT NULL DEFAULT '', sex VARCHAR(4) NOT NULL DEFAULT '', age SMALLINT(2) NOT NULL DEFAULT '0', email VARCHAR(20) NOT NULL DEFAULT '', PRIMARY KEY (id) );
用户表User创建完成以后,接着可以向该表中插入一些数据作为示例演示使用,SQL查询语句如下所示:
INSERT INTO User (name,sex,age,email) VALUES
("a","男",27,"a@a.com"),
("b","女",22,"b@b.com"),
("c","女",30,"c@c.com"),
("d","女",24,d@d.com);

2、模板的设计
模板的设计不要出现任何的PHP代码,可以由前端人员来完成。在自定义的模板引擎中,规定了要到指定的目录中去寻找模板文件,这个特定的目录可以在创建模板引擎对象时指定,也可以使用默认的目录设置,默认可以将模板文件存放在当前目录中的“templates”目录下。本例共需要三个模板文件main.tpl、header.tpl和footer.tpl,都存放在这个默认的目录设置中。这三个模板文件的代码如下所示:
模板的头部文件header.tpl
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title> <{$title}> </title>
</head>
<body>
模板的尾部文件footer.tpl
<div style="width:200px;margin: 0 auto;">##### <{$author}> #####</div>
</body>
</html>
主模板文件main.tpl
<{include 'header.tpl'}>
<table border="1" align="center" width="500">
<{ loop $users $user }>
<tr>
<{loop $user $u }>
<{if $u == "男" }>
<td style="color:green">
<{elseif $u == "女"}>
<td style="color:red">
<{else}>
<td>
<{/if}>
<{$u}></td>
<{/loop}>
</tr>
<{/loop}>
</table>
<{include 'footer.tpl'}>
文件main.tpl是主模板文件,在该文件中使用<{include"header.tpl"}>和<{include"footer.tpl"}>两个标记分别在该文件的顶部和底部,将独立的头部和尾部模板文件包含到这个主模板文件中。并在该文件中使用<{tableName}>标记获取从PHP中动态分配过来的表名,以及使用双层<{loop}>标记嵌套,遍历从PHP中动态分配过来的在数据库中获取到的二维数组$Users,还在<{loop}>标记中使用条件选择标记<{if}>组合,将数据中性别为“男”的表格背景设置为红色和一些其他判断。被包含进来的头部模板文件header.tpl和尾部模板文件footer.tpl也同样可以获取从PHP中动态分配给模板的数据







