構建網站:用遞迴函式寫個論壇_PHP教程

來源:互聯網
上載者:User
論壇的實現方法較為複雜,只要把它分析一下,問題就迎刃而解了,先看看論壇的實現,有人發貼,然後有人跟貼,這個關係形成了一種父子的關聯關係,一般寫個實用論壇,只要解決了這個子父關係,論壇即已成形.
來看看完成論壇的方法,首先得用資料庫來記載這種子父的關係,一般的方法是用無重複的 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論壇的實現方法較為複雜,只要把它分析一下,問題就迎刃而解了,先看看論壇的實現,有人發貼,然後有人跟貼,這個關係形成了一種父子的關聯...

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.