日本国产亚洲-日本国产一区-日本国产一区二区三区-日本韩国欧美一区-日本韩国欧美在线-日本韩国欧美在线观看

當前位置:雨林木風下載站 > 技術開發教程 > 詳細頁面

另一種bbs設計的思路,請各位高手給予評價。

另一種bbs設計的思路,請各位高手給予評價。

更新時間:2022-05-08 文章作者:未知 信息來源:網絡 閱讀次數:

最近一段時間研究了一下bbs方面的一些程序,也拜讀了本站bbs的源程序,自己覺得受益匪淺,
很多程序都堪稱典范。在主要的論壇貼子處理方面,很多的論壇也都模仿此作。因為我不想總拿別
人的東西照抄,所以自己用了另一種處理方法來做的。至于方法如何還請大家評斷。(我當然覺得
自己的好了 8-))
1。貼子的排序
數據庫 Id,SortId,Title,Uname,Stime,BackTimes,ReadTimes,Face,Content
1 999999 .........................................
2 999998 .........................................
3 999997 .........................................
 id為自動編號,也即顯示的貼子號
引入一個SortId,50位字符型,
設根貼子為六位(如999999,你也可以更多,我想已經夠了)
設第一貼為999999 第二貼為999998 第三貼為999997 .............
(注意這都是根貼,是六位長)

為什么第一貼為999999,是為了以后便于輸出貼子。
要在999999下面回復一貼即第二層貼子就在數據庫中寫入
 Id,SortId,Title,Uname,Stime,BackTimes,ReadTimes,Face,Content
4 999999z .........................................
在999999后面加了一個“z” (增加一位可以用來區分貼子所在層數)
要在999999下面再回復一貼也即第二層的貼子就在數據庫中寫入
 Id,SortId,Title,Uname,Stime,BackTimes,ReadTimes,Face,Content
5 999999y .........................................
要在發貼,依此類推
Id,SortId,Title,Uname,Stime,BackTimes,ReadTimes,Face,Content
6 999999x .........................................
要在第二層貼子下面再回復貼子 如貼子999999z下 即第三層貼子就在數據庫中寫入
Id,SortId,Title,Uname,Stime,BackTimes,ReadTimes,Face,Content
7 999999zz .........................................

再回復999999z貼子就在數據庫中寫入
Id,SortId,Title,Uname,Stime,BackTimes,ReadTimes,Face,Content
8 999999zy .........................................

現在的貼子情況即為:
Id,SortId,Title,Uname,Stime,BackTimes,ReadTimes,Face,Content
1 999999 .........................................
2 999998 .........................................
3 999997 .........................................
4 999999z .........................................
5 999999y .........................................
6 999999x .........................................
7 999999zz .........................................
8 999999zy .........................................

我向大家也看出了我的思路至于輸出的時候使用
 sql = "select * from [plan] where boardid="+ strboardid+" ORDER BY SortId ";
 rs = conn.executeQuery(sql);

根據SortId排序后的結果:
1 999997 .........................................
2 999998 .........................................
3 999999 .........................................
4 999999x .........................................
5 999999y .........................................
6 999999z .........................................
7 999999zy .........................................
8 999999zz .........................................

現在大家應該明白為什么前六位貼子號和字母是遞減的了.(當然也能是遞增的)

2.貼子的顯示輸出,主要是處理<UL></UL>.程序如下
/*
取得數據集rs
*/
String Id,SortId,Title,Uname,Stime,BackTimes,ReadTimes,Face,Content; 
int length=6,ContentLength;//初始化第一貼為根貼
boolean isnew=false;
out.println("<UL>");
 while (rs.next()) {
Id=rs.getString("Id");
 SortId=rs.getString("SortId");
Title=china.asHTML(rs.getString("Title")); 
 Uname=china.asHTML(rs.getString("Uname")); 
Stime=china.asHTML(rs.getString("Stime").substring(0,19));
//if (System.currentTimeMillis() - rs.getDate("Stime").getTime()< 86400000){isnew =true;} else {isnew =false;}
 BackTimes=rs.getString("BackTimes");
ReadTimes=rs.getString("ReadTimes");
Face=rs.getString("Face");
ContentLength = rs.getString("Content").length();
String dot = ",";
String yh = "\"";
//控制部分
if(length>SortId.length())//用來計算上貼到本貼需要輸出多少個</UL>
while(length>SortId.length())
{ length--;
out.println("</UL>");
}

//舉例 從3到4
//<ul>1 .......................SortId=6
//<ul>2 .......................SortId=7
//<ul>3.......................SortId=8
//</ul>//此標記是由if(BackTimes.equals("0"))out.println("</UL>");輸出的
//</ul>
//</ul>//此標記和上一個</UL>是由if(length>SortId.length())......這一部分生成的
//<ul>4........................SortId=6</ul>
//
//if (8>6)//條件成立進入循環
//while(8>6)//開始循環輸出兩個</UL>


out.println("<UL>");//因為任何一貼前都有<UL>
out.println(china.turnGb("<SCRIPT>o("+yh+Title+yh+dot+yh+Uname+yh+dot+yh+Stime+yh+dot+Id+dot+ContentLength+dot+BackTimes+dot+ReadTimes+dot+isnew+dot+Face+");</SCRIPT>"));
if(BackTimes.equals("0"))out.println("</UL>");//因為任何回復次數為0的貼子后都有</UL>
length=SortId.length();//記錄貼子SortId的長度,用來與下一貼比較

}//循環結束
while((length-6)!=0)//因為最后一條記錄不能再與下一條比較,所以要補齊最后的</UL>
{ length--;
out.println("</UL>");
}
out.println("</UL>");

catch(SQLException ex) {out.println(ex.getMessage());}
3。發貼子
發根貼按SortId升序排序取第一條減一為新貼子的SortId(要轉整數)
回復貼子根據回復次數0時為z,1時為y,.......加到你所要回復的貼子的SortId后。增加回復次數。


大體上這就是我的做法,上面的例子僅僅為了說明輸出,所以沒有涉及其他問題。如分頁,刪貼子,中文問題等。可能
其中會有問題,還請大家發表意見,給予我提示。wflm@263.net

溫馨提示:喜歡本站的話,請收藏一下本站!

本類教程下載

系統下載排行

主站蜘蛛池模板: 日日爽爽 | 手机在线看片日韩 | 国产日韩精品欧美一区喷水 | 在线视频人人视频www | 亚洲偷自拍另类图片二区 | 久久久青青草 | 亚洲精品美女久久久 | 久久是免费只精品热在线 | 中文字幕在线亚洲 | 操在线视频| 青草视频在线观看免费资源 | 国内精品久久久久影院嫩草 | 91久久色| 爱爱视频免费网站 | 午夜欧美性视频在线播放 | 国产精选一区二区 | 日本人成18在线播放 | 久久亚洲国产中v天仙www | 综合伊人| 免费观看黄视频 | 性荡视频在线播放视频 | 在线欧洲成人免费视频 | 亚洲 欧美 日韩在线综合福利 | 7m凹凸精品视频大全 | 亚洲福利一区二区三区 | 久久亚洲精品国产亚洲老地址 | 亚洲视频三区 | 蜜桃视频一日韩欧美专区 | 国产日本在线播放 | 国产三香港三韩国三级不卡 | 黑人边吃奶边扎下面激情视频 | 天天看天天摸天天操 | 高清国产美女一级a毛片录 高清国产美女一级毛片 | 一区二区三区四区五区 | 波多野结衣一区在线观看 | 乡村乱妇一级毛片 | 久久久久久综合七次郎 | 日韩精品一区二区三区在线观看l | 免费视频观看在线www日本 | 青青青国产成人久久111网站 | 天天干2018|