当前位置:Gxlcms > PHP教程 > 一个模仿oso的论坛程序_PHP

一个模仿oso的论坛程序_PHP

时间:2021-07-01 10:21:17 帮助过:6人阅读

我经常使用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






论坛




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 '';
print '';
print '';
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 '';
print '';
print '';
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 '';
print ' ';
print '';
print '';
print '';
print '';
print '';
print '';
print '';
print '';

$query = 'select id,state,readcount,title,createman,replycount,replytime,replyman
from fr_t_forumtitle order by replytime desc LIMIT '.$curline.',20';
$res = mysql_query($query, $dbh);
// $li_rownum = mysql_num_rows($res);
// for ($i=1; $i<=$li_rownum; $i ) {
// $row = mysql_fetch_row($res);
while ($row = mysql_fetch_array($res)) {
print ' ';
print '';
print '';
$tempstr = "".$row['title']."";
print '';
// print '';
print '';
print '';
$temptime = substr($row["replytime"],5,11);
print '';
print '';
print '';
}
print "
New 点击 主题 创建人 回复 最后修改时间 回复人
'.$row["state"].''.$row["readcount"].' '.$tempstr.''.$row["title"].' '.$row["createman"].''.$row["replycount"].' '.$temptime.' '.$row["replyman"].'
";

//打印表尾
print '';
print '';
print '';
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与奥索网共同拥有,如需转载,请注明作者及出处】

人气教程排行