一个模仿oso的php论坛程序(之一)_php实例

PHP中文网
发布: 2016-05-17 09:40:49
原创
1287人浏览过

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

魔匠AI论文
魔匠AI论文

专业原创的AI论文写作工具,一站式解决论文选题、写作、文献综述、答辩PPT全流程,支持毕业论文、课程论文等多种类型,轻松助力高质量论文写作。

魔匠AI论文 53
查看详情 魔匠AI论文
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%">   <p align="left">当前位置:主页——论坛</p> </td>  
<td width="20%">   <p align="center">&nbsp</p> </td>  
<td width="10%">   <p align="center">  
<A href="addmember.php" target=_blank>会员注册</A></p> </td>  
<td width="10%">   <p align="center">论坛搜索</p> </td>  
<td width="10%">   <p align="center">&nbsp</p> </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%">  <p align="left"> ';  
    print "主题数:".$rcount."  帖子数:".$rcon_count;  
    print '<td width="35%">  <p 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%">  <p 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 '</p> </td>';  
print '<td width="50%">  <p align="center">';  
print "当前页:".$offset." 共".$pages."页";  
print '</p> </td>';  
print "</table>";  
//处理详细信息  
    print '<table width="100%" border="1">';  
    print '<tr class="text"> ';  
    print '<td width="6%">  <p align="center">New</p>    </td>';  
    print '<td width="5%">  <p align="center">点击</p>   </td>';  
    print '<td width="53%"> <p align="center">主题</p>   </td>';  
    print '<td width="10%">  <p align="center">创建人</p> </td>';  
    print '<td width="5%">  <p align="center">回复</p>   </td>';  
    print '<td width="11%"> <p align="center">最后修改时间 </p> </td>';  
    print '<td width="10%">  <p align="center">回复人</p> </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%"> '.$row["state"].'</td>';  
      print '<td width="5%"><p align="center">'.$row["readcount"].'</td>';  
      $tempstr = "<a href='readforum.php?readflag=".$row["id"]."'>".$row['title']."</a>";  
      print '<td width="53%"> '.$tempstr.'</td>';  
//      print '<td width="48%">'.$row["title"].'</td>';  
      print '<td width="9%"> '.$row["createman"].'</td>';  
      print '<td width="5%"><p align="center">'.$row["replycount"].'</td>';  
      $temptime = substr($row["replytime"],5,11);  
      print '<td width="11%"> '.$temptime.'</td>';  
      print '<td width="10%"> '.$row["replyman"].'</td>';  
      print '</tr>';  
    }  
print "</table>";  
//打印表尾  
print '<table width="100%" border="0">';  
print '<tr class="text"> <td width="50%">  <p 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 '</p> </td>';  
print '<td width="50%">  <p align="center">';  
print "当前页:".$offset." 共".$pages."页";  
print '</p> </td>';  
print "</table>";  
//end of 打印表尾  
?>  
<?  
  include ("c:mydbfooter.inc");  
?>  
</body>  
</html>
登录后复制
PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号