看了标题你也许要说,留言本,很基本的东东啊!谁不会啊,还要用Smarty,这不找累吗?别急,我要表达的是一种编程的思想和结构,而不是证明我做的东西多有意义,通过它相信对初学者学习Smarty和ajax有些启发。原本用ajax做的,可惜始终调试不成功,只好用手写JS来弄了,不过不要紧,还是有一定价值的。站点结构大家下了源代码自己看,代码不长,应该不会看烦^_^,听我慢慢道来。 现在都PHP5了OO(面向对象)很流行了都,这里也不错过,首先来看下我们用OO来实现数据库操作和连接: [php] <?php /**************************
页面:dbclass.php 作者:辉老大 功能:定义数据库操作类 **************************/ <?php /**************************
页面:dbclass.php 作者:辉老大 功能:定义数据库操作类 **************************/ class db{ //创建构造函数,作用:数据库连接并选择相应数据库 public function __construct(){ require('config.inc.php'); mysql_connect($dbhost,$dbuser,$dbpassword) or die("error!"); mysql_query("SET NAMES 'GBK'"); mysql_select_db($dbname); } //执行SQL语句函数 public function query($sql){ return mysql_query($sql); } //取得结果集数组函数 public function loop_query($result){ return mysql_fetch_array($result); } //创建析构函数,作用:关闭数据库连接 public function __destruct(){ return mysql_close(); } } ?> 这个类有什么特点呢?首先介绍下__construct()是构造函数,啥是构造函数?通俗点讲就是类被实例化后就自动执行的函数,__destruct()是啥?是析构函数,它的作用就是在没有任何方法指向这个对象时,便自动销毁对象,里面一般包含一些收尾的操作,比如关闭文件,关闭数据库连接之类的方法,看到这你是不是明白一些了?没错!在类实例化的时候自动执行带有数据库连接方法的构造函数,在实例销毁的时候执行关闭数据库连接的析构函数,对于一些基本数据操作我们只要new一个$db对象,然后$db->query()...是不是很方便,当然,这只是一个简单的例子,你还可以继续扩展。来看看 config.inc.php里面是什么: 很容易对不对,感兴趣就接着看吧^_^,来看下模板文件:
<?php /*************************
页面:config.inc.php 作者:辉老大 功能:数据库参数变量设定 $dbhost:主机名 $dbuser:连接帐户 $dbpassword:连接密码 $dbname:数据库名 *************************/ $dbhost = "localhost"; $dbuser = "root"; $dbpassword = "7529639"; $dbname = "testdb"; ?>
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=gbk" /> <title><{$title}></title> <style type="text/css"> <!-- .username { height: 20px; width: 250px; } .comment { height: 100px; width: 660px; } body,td,tr { font-size: 9pt; } --> </style> <script language="javascript" src="http://www.jb51.net/article/inc/ajax.js"></script> </head> <body> <div></div> <div><{*这里显示留言内容*}> <{section name=loop loop=$bookinfo}><{*循环显示留言*}> 用户名:<{$bookinfo[loop].username}> 内容:<{$bookinfo[loop].comment}><p> <{/section}> </div> <form method="post"> <table cellpadding="0" cellspacing="0"> <tr> <td>用户名:</td> <td> <input type="text"></td> </tr> <tr> <td>留言内容:</td> <td> <textarea></textarea></td> </tr> </table> <input type="button" value="发布"> </form> </body> </html>
模板中的内容在<{}>中的一会会被PHP替换掉,这就实现了美工和程序员的分工,不错吧有关Smarty的内容还请参考手册,这里就不便多说。来看下页面是怎么输出模板的吧:
(编辑:焦作站长网)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|