論壇的實現方法較為複雜,只要把它分析一下,問題就迎刃而解了,先看看論壇的實現,有人發貼,然後有人跟貼,這個關係形成了一種父子的關聯關係,一般寫個實用論壇,只要解決了這個子父關係,論壇即已成形.
來看看完成論壇的方法,首先得用資料庫來記載這種子父的關係,一般的方法是用無重複的 id 號來完成的,記載父貼的 id 號欄位一般用 "parentid" 來記載,子貼儲存時記載父貼的 id 號,而父貼的 parentid 則一率為 0,看看資料庫的記載形式:
父1:id:1 | parentid:0
子1:id:2 | parentid:1
子子1:id:3 | parentid:2
父2:id:4 | parentid:0
子2:id:5 | parentid:4
子2:id:6 | parentid:4
......
如此資料庫記載的子父關係已確立,接著來分析 php 是如何來實現這種父子關係的確立並加入到資料庫的,首先使用者想發言時,他的貼為一個父貼,因此 php 可將 parentid 設定為 0,當有使用者跟貼時,php 將該使用者所跟的父貼的 id 號附值給 parentid,這樣 php 就完成了,子父關係的確立.
實現了子父關係的確立和儲存,接下來就是把這種關係顯示出來,這兒就需要用到遞迴函式來實現了,看下面的代碼:
.....
$result=mysql_query("select * from table where parentid=0");
$num=mysql_numrows($result);
if (!empty($num)) {
for ($i=0;$i<$num;$i++) {
$parentid=mysql_result($result,$i,"id");
function showchild($parentid) {
//加入 ul 控制層進
$result=mysql_query("select * from table where parentid=$parentid");
$numb=mysql_numrows($result);
if (!empty($numb)) {
for ($i=0;$i<$numb;$i++) {
....
$parentid=mysql_result($result,$i,"id");
....
showchild($parentid);
}
....
....
}
....
....
}
showchild($parentid);
....
....
}
....
....
}
上面這段代碼就是利用遞迴函式來實現論壇的方法,當然這個論壇是極其原始的,在不同部分加上功能代碼,就能夠使這個論壇逐漸強大起來,有興趣的讀者不妨自己動手試試.
http://www.bkjia.com/PHPjc/445183.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/445183.htmlTechArticle論壇的實現方法較為複雜,只要把它分析一下,問題就迎刃而解了,先看看論壇的實現,有人發貼,然後有人跟貼,這個關係形成了一種父子的關聯...