• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
    • 軟件測試技術
    • 軟件測試博客
    • 軟件測試視頻
    • 開源軟件測試技術
    • 軟件測試論壇
    • 軟件測試沙龍
    • 軟件測試資料下載
    • 軟件測試雜志
    • 軟件測試人才招聘
      暫時沒有公告

    字號: | 推薦給好友 上一篇 | 下一篇

    樹型論壇遞歸加速

    發布: 2007-7-14 19:53 | 作者: 佚名    | 來源: 網絡轉載     | 查看: 10次 | 進入軟件測試論壇討論

    領測軟件測試網 一般的論壇都遞歸整個表
    如果僅遞歸result,那么速度會加快不少,況且訪問result是訪問服務器內存.
    我們一般通過下面的語句使游標移動
    while($row=mysql_fetch_array($res))
    其原理是當mysql_fetch_array($res)每執行一次則游標自動下移,直到結束為止
    但是遞歸result時,我們只有一個result,當游標不定時,我們無法知道當前游標記錄是否符合我們的要求
    php提供了一個函數讓用戶自己指定游標位置
    bool mysql_data_seek ( resource result_identifier, int row_number)
    這個函數大家應該能看懂吧
    下面我來講講我的思路.
    為實現論壇分頁,表結構設計如下:
    表名:newestbbs(最新帖子 以最后回復時間排序)
    結構:
    id 只記錄根帖的id
    time 如果沒有回帖,則為根帖提交時間,否則為最后回帖提交時間
    表名:bbs
    結構:
        id 帖子本身的id
        fathered 父帖id
        rootid    根帖id
        time      發帖時間
        ……….其它field
    思路:
    先由newestbbs得到最新帖列表(比如每頁列表20條根帖 select id from newestbbs order by time limit 頁數-1,20)
    得到result后從整個bbs表里得到并顯示所有result的根帖
        while(bbs=mysql_fetch_array($result))
        {
          select * from bbs where rootid=bbs[‘id’] order by time //(由此得到第二個result,命名為res)
          $root=mysql_fetch_array(res)
          顯示根帖
          dispreplybbs($root[‘id’],$res) //遞歸顯示此帖所有回帖
        }
    遞歸函數如下:
       function dispreplybbs($id,$mysqlres)
       {
         for($i=0;$i<mysql_num_rows($mysqlres);$i++)
         {
           mysql_data_seek($mysqlres,$i) //將游標移動到指定位置
           bbsreply=mysql_fetch_array($mysqlres) //得到此游標位置帖子的內容
           if(bbsreply[‘fatherid’]==$id)
           {
             //判斷此帖的父帖id是否為給定的id
             //如果是則縮回顯示
             dispreplybbs($bbsreply[‘id’],$mysqlres)//并且再遞歸搜索其有沒有子帖
             //如果不是則判斷下一條
           }
         }       //循環所有result
       }

        
    如有異議,請回帖或mailto: chensiping@163.net.本文無版權保護,歡迎隨意修改轉載

    延伸閱讀

    文章來源于領測軟件測試網 http://www.kjueaiud.com/


    關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
    版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
    北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備2023014753號-2
    技術支持和業務聯系:info@testage.com.cn 電話:010-51297073

    軟件測試 | 領測國際ISTQBISTQB官網TMMiTMMi認證國際軟件測試工程師認證領測軟件測試網

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>