电脑技术学习

一个模仿oso的论坛程序(之一)

dn001
我经常使用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
<html>
<head>
<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">
<title>论坛</title>
</head>

<body bgcolor="#C0C0C0" background="backcolor.GIF">

<?
;;include ("c:mydbheader.inc");
?>

<table width="100%" border="0">
<tr class="text">;;
<td width="50%">;;;<div align="left">当前位置:主页——论坛</div> </td>
<td width="20%">;;;<div align="center">&nbsp</div> </td>
<td width="10%">;;;<div align="center">
<A href="addmember.php" target=_blank>会员注册</A></div> </td>
<td width="10%">;;;<div align="center">论坛搜索</div> </td>
<td width="10%">;;;<div align="center">&nbsp</div> </td>
</table>


;;<?
;;;;$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 '<table width="100%" border="0">';
;;;;print '<tr class="text">';;;
;;;;print '<td width="15%">;;;</td>';
;;;;print '<td width="35%">;;<div align="left"> ';
;;;;print "主题数:".$rcount.";;帖子数:".$rcon_count;
;;;;print '<td width="35%">;;<div align="right"> ';
;;;;print '<a href="addforum.php?theme_id=0" target="_top"><img src="post.gif" alt="加新帖子" border="0"></a>';
;;;;print '<td width="15%">;;;</td>';
;;;;print '</td></table>';


;;;;$pages=ceil($rcount / $pageline); //$pages变量现在包含所需的页数;;;
;;;;;
;;;;if (empty($offset));;{
;;;;;;$offset=1;;;;
;;;;;;$curline = 0;
;;;;} else
;;;;$curline = ($offset - 1) * $pageline;
//打印表头
print '<table width="100%" border="0">';
print '<tr class="text"> <td width="50%">;;<div align="center">';
if ($offset <> 1) { //如果偏移量是0,不显示前一页的链接;;;
;;$newoffset=$offset - 1;;;;
;;print "<a href='$PHP_SELF?offset=$newoffset'>前一页</a>";;;;
};;else {
print "前一页"
print ";;;"
}
//计算总共需要的页数;;;
$pages=ceil($rcount/$pageline); //$pages变量现在包含所需的页数;;;
for ($i=1; $i <= $pages; $i++);;{
;;$temps = "<a href='".$PHP_SELF.'?offset='.$i."'>".$i."</a>"
;;print $temps;;;;
;;print ";;;"
};;;
//检查是否是最后一页;;;
if ($pages!=0 && $offset!=$pages);;{
;;;$newoffset=$offset+1;;;;
;;;print "<a href='$PHP_SELF?offset=$newoffset'>下一页</a>";;;;
};;else print "下一页"
print '</div> </td>';
print '<td width="50%">;;<div align="center">';
print "当前页:".$offset." 共".$pages."页"
print '</div> </td>';
print "</table>"

//处理详细信息
;;;;;
;;;;print '<table width="100%" border="1">';
;;;;print '<tr class="text"> ';
;;;;print '<td width="6%">;;<div align="center">New</div>;;;;</td>';
;;;;print '<td width="5%">;;<div align="center">点击</div>;;;</td>';
;;;;print '<td width="53%"> <div align="center">主题</div>;;;</td>';
;;;;print '<td width="10%">;;<div align="center">创建人</div> </td>';
;;;;print '<td width="5%">;;<div align="center">回复</div>;;;</td>';
;;;;print '<td width="11%"> <div align="center">最后修改时间 </div> </td>';
;;;;print '<td width="10%">;;<div align="center">回复人</div> </td>';
;;;;print '</tr>';

;;;;$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 '<tr class="text"> ';
;;;;;;print '<td width="6%">&nbsp;'.$row["state"].'</td>';
;;;;;;print '<td width="5%"><div align="center">'.$row["readcount"].'</td>';
;;;;;;$tempstr = "<a href='readforum.php?readflag=".$row["id"]."'>".$row['title']."</a>"
;;;;;;print '<td width="53%">&nbsp;'.$tempstr.'</td>';
//;;;;;;print '<td width="48%">'.$row["title"].'</td>';
;;;;;;print '<td width="9%">&nbsp;'.$row["createman"].'</td>';
;;;;;;print '<td width="5%"><div align="center">'.$row["replycount"].'</td>';
;;;;;;$temptime = substr($row["replytime"],5,11);
;;;;;;print '<td width="11%">&nbsp;'.$temptime.'</td>';
;;;;;;print '<td width="10%">&nbsp;'.$row["replyman"].'</td>';
;;;;;;print '</tr>';
;;;;}
print "</table>"

//打印表尾
print '<table width="100%" border="0">';
print '<tr class="text"> <td width="50%">;;<div align="center">';
if ($offset <> 1) { //如果偏移量是0,不显示前一页的链接;;;
;;$newoffset=$offset - 1;;;;
;;print "<a href='$PHP_SELF?offset=$newoffset'>前一页</a>";;;;
};;else {
print "前一页"
print ";;;"
}
//计算总共需要的页数;;;
for ($i=1; $i <= $pages; $i++);;{
;;$temps = "<a href='".$PHP_SELF.'?offset='.$i."'>".$i."</a>"
;;print $temps;;;;
;;print ";;;"
};;;
//检查是否是最后一页;;;
if ($pages!=0 && $offset!=$pages);;{
;;;$newoffset=$offset+1;;;;
;;;print "<a href='$PHP_SELF?offset=$newoffset'>下一页</a>";;;;
};;else print "下一页"
print '</div> </td>';
print '<td width="50%">;;<div align="center">';
print "当前页:".$offset." 共".$pages."页"
print '</div> </td>';
print "</table>"
//end of 打印表尾
?>

<?
;;include ("c:mydbfooter.inc");
?>

</body>
</html>

【本文版权归作者zhangcg与奥索网共同拥有,如需转载,请注明作者及出处】;;;;;

标签: