亲宝软件园·资讯

展开

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

人气:0
想了解一个模仿oso的php论坛程序(之一)的相关内容吗,在本文为您仔细讲解的相关知识和一些Code实例,欢迎阅读和指正,我们先划重点:一个模仿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"> </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"> </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%"> '.$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%"> '.$tempstr.'</td>'; 
//      print '<td width="48%">'.$row["title"].'</td>'; 
      print '<td width="9%"> '.$row["createman"].'</td>'; 
      print '<td width="5%"><div 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%">  <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>

加载全部内容

相关教程
猜你喜欢
用户评论