好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

一个模仿oso的论坛程序(之一)-PHP实例

我经常使用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与奥索网共同拥有,如需转载,请注明作者及出处】     

查看更多关于一个模仿oso的论坛程序(之一)-PHP实例的详细内容...

  阅读:60次