home页制作
byland(我的渴望)
HOME页制作ABC 作者:联想锋行 ID:lcblbbs QQ:445663314 前言:很多人想在DZ论坛上做一个首页,这个首页调用论坛里的内容。下面,让我们动手做一个。 首先,让我们了解DZ程序和模板的基本结构。 Home.php <?php require_once './include/common.inc.php'; include(template('home')); ?> 这就是最简单的DZ程序,已经包含了我们创建一个HOME首页的基本要素,一,包含DZ核心程序,二,指定使用哪个模板。如上面,使用的是模板home.htm 这个文件要放在 templates/default/文件夹下或其它风格文件夹下。 程序中的变量,比如 $a=’xxxx’; 那么在模板中使用 $a 即可将它的值输出来,不过,为了防止和后面的字母混在一起,可以使用 {$a} 这样会比较保险。 对于数组列表的输出,使用 {loop $array $key $o} $o[name] {/loop} 这样,当然,也可以{loop $array $o} $o[name] {/loop} 其中的 $array 是要输出的数组, $o是数组里的其中的一条,当然,这些变量你可以起其它名字。$key并不是必需的,不过,$key通常在需要排列顺序的时候,比如前几名的时候,会用到。 也许我上面说的你不明白。 下面开始做一个简单的先。不过,为了我们做HOME首页方便,我们先学习一下基本的SQL语句。其实我的SQL知识也不多,不过,我通常会借助PHPMYADMIN。 另外,为了方便,我们要用到下面三个函数。请你记住,这三个函数很有用。 function a($sql) { return @mysql_fetch_assoc(mysql_query($sql)); } function b($sql) { $array=array(); $rs=mysql_query($sql); while ($rw=@mysql_fetch_assoc($rs)) { $array[]=$rw; } return $array; } function c($sql) { $rs=@mysql_fetch_row(mysql_query($sql)); return $rs[0]; } 这三个函数是我们做HOME首页的时候经常会用到的。 下面,我来说说用法。 比如,我要显示最新发表的主题的标题,作者,时间。仅调用一条的例子。 程序中写到 $newthread=a("SELECT * FROM `{$tablepre}threads` ORDER BY `tid` DESC LIMIT 0 , 1"); 接下来,在模板里输出$newthread[subject] 和 $newthread[author] 和 {echo date('Y-m-d H:i',$newthread[dateline])} 即可。 下面讲要调用多条的例子。 程序中 $newthreads=b("SELECT * FROM `{$tablepre}threads` ORDER BY `tid` DESC LIMIT 0 , 10"); 模板中 {loop $newthreads $o} <p>$o[author] <a href="viewthread.php?tid=$o[tid]">$o[subject]</a> </p> {/loop} 下面讲下调用单条单字段的例子。 比如要调用论坛的帖子总数。 程序中 $posts=c("SELECT count(*) FROM `{$tablepre}posts` "); 在模板里, 帖子总数:$posts 其实,我们做HOME首页要调用的无疑是这三种类型的调用。单条调用,多条调用,单字段调用。我们只要熟练使用a,b,c这三个函数就可以了。这样做的HOME首页程序很精巧,但是实现的功能却很多。 所以,我的HOME首页调用程序很简洁,代码也很清晰。有时候看到别人让我改的HOME页写的程序真的太乱了。 比如类似这样写 $array=array(); $sql=’xxxxxxx’; $rs=$db->query($sql); While($rw=$db->fetch_array($rs)) { $dateline=date(‘Y-m-d’,$rw[dateline]); $array[]=$rw; } 当然,不可否认这种写法没错,而且有利于做数据格式化以及判断,不过,大多数时候,我们做首页调用的时候,其实并不需要在那里做过多的处理。所以,试想一下,如果整个HOME程序里面一大堆这种程序,会显得非常非常臃肿,而且,写得也累啊。所以我们研究后可以发现,以上功能只要 $array=b($sql);就可以实现了。至于格式化,在模板里做也可以啊,而且,在模板里做,灵活性更大了。比如{echo date('Y-m-d H:i',$newthread[dateline])} 这里就可以控制显示的外观。当然,这需要一些DZ的模板知识,以及一定的PHP知识。比如在模板里{eval $key+1;}然后输出 $key 或干脆使用 {echo $key+1}。 可以说,掌握a,b,c的用法,就可以很轻松地完成数据调用。 我希望代码可以写得更少,控制可以更灵活。我追求简洁,高效。 以上仅供参考。如果你细心研究,领会了,也许对你是有帮助的。 另外说下, a实现的功能类似于 $db->fetch_array($db->query($sql)); c 实现的功能 类似于 $db->result_first($sql); b实现的功能类似 $rs=$db->query($sql); While($rw=$db->fetch_array($rs)){ $array[]=$rw; }
你的回复
回复请先 登录 , 或 注册相关内容推荐
最新讨论 ( 更多 )
- 学生时代真是愚蠢不堪 (byland)
- 论文搜索 (byland)
- 站长 (byland)
- php (byland)
- 我的wordpress (byland)