我经常使用oso的论坛,个人感觉挺好的,因此模仿oso的界面编了一个程序,与大家共享。
程序由三部分组成,即显示主题信息,显示论坛信息,增加论坛信息,主题与论坛内容采用主从表关系。
表结构如下:
drop table fr_t_forumtitle;
create table fr_t_forumtitle(
id integer,
state varchar(1),
readcount integer,
replycount integer,
title varchar(100),
createman varchar(20),
replyman varchar(20),
replytime datetime);
drop table fr_t_forumcontent;
create table fr_t_forumcontent(
id integer,
replyman varchar(20),
replytime datetime,
replyemail varchar(100),
replyhttp varchar(100),
replyface smallint,
content text);
drop table fr_t_parameter;
create table fr_t_parameter(
code varchar(10),
name varchar(40),
content varchar(10));
insert into fr_t_parameter(code,name,content) values(‘pageline’,’分页数’,’20’); /* 调整该参数可以修改每页行数 */
程序1:mainforum.php
<link rel=”STYLESHEET” type=”text/css” href=”fp_zhangcg.css”>
<meta http-equiv=”Content-Type” content=”text/html; charset=gb2312″>
<meta name=”Microsoft Theme” content=”none”>
<meta name=”Microsoft Border” content=”none”>
<body bgcolor=”#C0C0C0″ background=”backcolor.GIF”>
<?
include (“c:mydbheader.inc”);
?>
当前位置:主页——论坛 |   | 会员注册 | 论坛搜索 |   |
<?
$dbh = mysql_connect(‘localhost:3306′,’root’,”);
mysql_select_db(‘test’);
$res=mysql_query(“SELECT content FROM fr_t_parameter where code = ‘pageline'”,$dbh);
$row=mysql_fetch_array($res);
global $pageline;
$pageline = $row[“content”];
if (empty($pageline)) {
$res=mysql_query(“insert into fr_t_parameter(code,name,content) values(‘pageline’,’分页数’,’20’)”,$dbh);
$row=mysql_fetch_array($res);
$pageline = 20;
}
$res=mysql_query(“SELECT COUNT(*) AS rcnt FROM fr_t_forumtitle”,$dbh);
$row=mysql_fetch_array($res);
$rcount = $row[“rcnt”];
$res=mysql_query(“SELECT COUNT(*) AS rcnt_con FROM fr_t_forumcontent”,$dbh);
$row=mysql_fetch_array($res);
$rcon_count = $row[“rcnt_con”];
print ‘
‘; print “主题数:”.$rcount.” 帖子数:”.$rcon_count; print ‘ ‘; print ”; print ‘ | ‘; |
‘;
$pages=ceil($rcount / $pageline); //$pages变量现在包含所需的页数
if (empty($offset)) {
$offset=1;
$curline = 0;
} else
$curline = ($offset – 1) * $pageline;
//打印表头
print ‘
‘; if ($offset 1) { //如果偏移量是0,不显示前一页的链接 $newoffset=$offset – 1; print “前一页”; } else { print “前一页”; print ” “; } //计算总共需要的页数 $pages=ceil($rcount/$pageline); //$pages变量现在包含所需的页数 for ($i=1; $i <= $pages; $i ) { $temps = “”.$i.””; print $temps; print ” “; } //检查是否是最后一页 if ($pages!=0 && $offset!=$pages) { $newoffset=$offset 1; print “下一页”; } else print “下一页”; print ‘ | ‘; print “当前页:”.$offset.” 共”.$pages.”页”; print ‘ |
“;
//处理详细信息
print ‘
New | 点击 | 主题 | 本文来源gaodai$ma#com搞$$代**码)网8搞代gaodaima码 创建人 | 回复 | 最后修改时间 | 回复人 | |
‘.$row[“state”].’ | ‘.$row[“readcount”].’ | ‘.$tempstr.’ | ‘.$row[“title”].’ | ‘.$row[“createman”].’ | ‘.$row[“replycount”].’ | ‘.$temptime.’ | ‘.$row[“replyman”].’ |
“;
//打印表尾
print ‘
‘; if ($offset 1) { //如果偏移量是0,不显示前一页的链接 $newoffset=$offset – 1; print “前一页”; } else { print “前一页”; print ” “; } //计算总共需要的页数 for ($i=1; $i <= $pages; $i ) { $temps = “”.$i.””; print $temps; print ” “; } //检查是否是最后一页 if ($pages!=0 && $offset!=$pages) { $newoffset=$offset 1; print “下一页”; } else print “下一页”; print ‘ | ‘; print “当前页:”.$offset.” 共”.$pages.”页”; print ‘ |
“;
//end of 打印表尾
?>
<?
include (“c:mydbfooter.inc”);
?>
【本文版权归作者zhangcg与奥索网共同拥有,如需转载,请注明作者及出处】