本帖最后由 选峰工作室 于 2009-11-20 06:43 编辑
很多站长会使用phpmyadmin管理数据库,会积累了一些MYSQL知识,但是对PHP程序不是很懂。此示例适用于他们。根据此示例,就可以简单的做一个显示数据库数据的页面了。
在根目录创建一个home.php- <?php
- require_once './include/common.inc.php';
- function a($sql)
- {
- global $db;
- return $db->fetch_first($sql);
- }
- function b($sql)
- {
- global $db;
- $array=array();
- $rs=$db->query($sql);
- while ($rw=$db->fetch_array($rs)) {
- $array[]=$rw;
- }
- return $array;
- }
- function c($sql)
- {
- global $db;
- return $db->result_first($sql);
- }
- //调用代码区
- //调用单条多字段记录:最新注册会员一名
- $newmember=a("SELECT * FROM `{$tablepre}members` ORDER BY `uid` DESC LIMIT 0 , 1");
- //调用多条多字段记录:最新发表主题多条
- $newthreadlist=b("select * from `{$tablepre}threads` order by tid desc limit 0,5");
- //调用单条单字段记录:用户UID为1的用户名称
- $adminname=c("select username from `{$tablepre}members` where uid=1 limit 1");
- //调用代码区
- include(template('home'));
- ?>
复制代码 然后在templates/default/下建立 home.htm- <p>调用单条多字段记录:最新注册会员一名 </p>
- <p>用户名称:{$newmember['name']} 用户UID:{$newmember['uid']}</p>
- <p>调用多条多字段记录:最新发表主题多条</p>
- <!--{loop $newthreadlist $o}-->
- <p>
- <a href="viewthread.php?tid=$o[tid]">$o[subject]</a>
- <a href="space.php?uid=$o[authorid]">$o[author]</a>
- <!--{echo date('Y-m-d',$o[dateline]);}-->
- </p>
- <p>
- <!--{/loop}-->
- </p>
- <p>调用单条单字段记录:用户UID为1的用户名称</p>
- <p>$adminname</p>
复制代码 就可以了。当然,以上只是示例,实际应用你需要根据自己需要来写程序和模板。但大多这三种数据库形式。以a,b,c的说法比较容易理解。
a实现的是调用单条记录,所获得是数组如$a,则里面的字段的值用$a['xx']表示,b实现的是多条记录,所获得的数组如$b,则在模板里要 {loop $b $o}$b['xx']{/loop}这样输出多条数据,而c实现的是调用单条记录里的单字段值,所获得的值如$c是字符串变量,直接在模板里用 $c 表示。
其中a,c函数DZ已经有现成了,但是b函数实现的功能如果按正常写法的话可能比较繁琐,调用的多的话,程序不够简洁方便,所以b函数可以很方便使用。
主要是 a,b,c 写起来方便简洁,方便对程序不是很熟悉的站长和比较想开发快速、简洁的开发者。
现在我们内部给客户做HOME页调用基本上就是用a,b,c,这样写起来快,也简洁,找起来比较好找,懒得起那些临时变量名称了(如果你看见某个插件里有abc函数,十有八九是我们做的)。我们也把这个应用到插件开发中去,给我们带来非常大的方便,因为我们在工作中太常用到这些了。
另外把一些外观显示的处理放在模板中来进行处理,当然,这需要一定的PHP知识。
关于DZ模板的规则可以参考其他教程,这里不详述。
有人认为在DZ本身$db外层加函数对效率有影响,个人认为可以忽略,很多时候开发效率与使用效率需要进行适当取舍。 |