您的位置:首页技术文章

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

【字号: 日期:2023-08-12 10:10:10浏览:5作者:馨心
我经常使用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='https://www.uahao.com/bcjs/$PHP_SELF?offset=$newoffset'>前一页</a>";;;;};;else { print "前一页"print ";;;"} //计算总共需要的页数;;;$pages=ceil($rcount/$pageline); //$pages变量现在包含所需的页数;;;for ($i=1; $i <= $pages; $i++);;{ ;;$temps = "<a href='https://www.uahao.com/bcjs/".$PHP_SELF.'?offset='.$i."'>".$i."</a>";print $temps;;;;;;print ";;;"};;;//检查是否是最后一页;;;if ($pages!=0 && $offset!=$pages);;{ ;;;$newoffset=$offset+1;;;;;;;print "<a href='https://www.uahao.com/bcjs/$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='https://www.uahao.com/bcjs/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='https://www.uahao.com/bcjs/$PHP_SELF?offset=$newoffset'>前一页</a>";;;;};;else { print "前一页"print ";;;"} //计算总共需要的页数;;;for ($i=1; $i <= $pages; $i++);;{ ;;$temps = "<a href='https://www.uahao.com/bcjs/".$PHP_SELF.'?offset='.$i."'>".$i."</a>";print $temps;;;;;;print ";;;"};;;//检查是否是最后一页;;;if ($pages!=0 && $offset!=$pages);;{ ;;;$newoffset=$offset+1;;;;;;;print "<a href='https://www.uahao.com/bcjs/$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与奥索网共同拥有,如需转载,请注明作者及出处】;;;;;
标签: PHP