Heim Backend-Entwicklung PHP-Tutorial 一个模仿oso的php论坛程序(之一)_php实例

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

May 17, 2016 am 09:40 AM

我经常使用oso的论坛,个人感觉挺好的,因此模仿oso的界面编了一个程序,与大家共享。 
程序由三部分组成,即显示主题信息,显示论坛信息,增加论坛信息,主题与论坛内容采用主从表关系。 
表结构如下: 
drop table fr_t_forumtitle; 

1

2

3

4

5

6

7

8

9

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);

Nach dem Login kopieren

drop table fr_t_forumcontent;

1

2

3

4

5

6

7

8

create table fr_t_forumcontent( 

   id          integer, 

   replyman    varchar(20), 

   replytime   datetime, 

   replyemail  varchar(100), 

   replyhttp   varchar(100), 

   replyface   smallint, 

   content     text);

Nach dem Login kopieren

drop table fr_t_parameter;

1

2

3

4

5

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'); /* 调整该参数可以修改每页行数 */

Nach dem Login kopieren

程序1:mainforum.php

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

100

101

102

103

104

105

106

107

108

109

110

111

112

113

114

115

116

117

118

119

120

121

122

123

124

125

126

127

128

129

130

131

132

133

134

135

136

137

138

139

140

141

142

143

144

145

146

<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>

Nach dem Login kopieren


Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße Artikel -Tags

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

11 beste PHP -URL -Shortener -Skripte (kostenlos und Premium) 11 beste PHP -URL -Shortener -Skripte (kostenlos und Premium) Mar 03, 2025 am 10:49 AM

11 beste PHP -URL -Shortener -Skripte (kostenlos und Premium)

Arbeiten mit Flash -Sitzungsdaten in Laravel Arbeiten mit Flash -Sitzungsdaten in Laravel Mar 12, 2025 pm 05:08 PM

Arbeiten mit Flash -Sitzungsdaten in Laravel

Vereinfachte HTTP -Reaktion verspottet in Laravel -Tests Vereinfachte HTTP -Reaktion verspottet in Laravel -Tests Mar 12, 2025 pm 05:09 PM

Vereinfachte HTTP -Reaktion verspottet in Laravel -Tests

Einführung in die Instagram -API Einführung in die Instagram -API Mar 02, 2025 am 09:32 AM

Einführung in die Instagram -API

Erstellen Sie eine React -App mit einem Laravel -Back -Ende: Teil 2, reagieren Erstellen Sie eine React -App mit einem Laravel -Back -Ende: Teil 2, reagieren Mar 04, 2025 am 09:33 AM

Erstellen Sie eine React -App mit einem Laravel -Back -Ende: Teil 2, reagieren

Curl in PHP: So verwenden Sie die PHP -Curl -Erweiterung in REST -APIs Curl in PHP: So verwenden Sie die PHP -Curl -Erweiterung in REST -APIs Mar 14, 2025 am 11:42 AM

Curl in PHP: So verwenden Sie die PHP -Curl -Erweiterung in REST -APIs

12 Beste PHP -Chat -Skripte auf Codecanyon 12 Beste PHP -Chat -Skripte auf Codecanyon Mar 13, 2025 pm 12:08 PM

12 Beste PHP -Chat -Skripte auf Codecanyon

Ankündigung von 2025 PHP Situation Survey Ankündigung von 2025 PHP Situation Survey Mar 03, 2025 pm 04:20 PM

Ankündigung von 2025 PHP Situation Survey

See all articles