• <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 | 作者: 佚名    | 來源: 網絡轉載     | 查看: 11次 | 進入軟件測試論壇討論

    領測軟件測試網 現將本人的實踐結果show給大家,不足之處就是分頁的方法不太好,不能顯示具體的頁數,可實在又沒有其它更好的解決辦法,只好先如此了,如果哪位有類似本論壇的分頁方法,表賜教一二,二泉不勝感激!具體可訪問我的個人小網站:http://web.nyist.net/~wbgwrq,不廢話了,開始吧......

    //表的結構如下:
    //creat.sql
    //簡單說明:RootId 論題序數;Layer:帖子層次,縮進的依據;Orders:帖子的順序
    CREATE TABLE over_post (
      id int(11) NOT NULL auto_increment,
      title varchar(80) NOT NULL default '',
      content text,
      postat datetime NOT NULL default '0000-00-00 00:00:00',
      readed int(11) NOT NULL default '0',
      size int(11) NOT NULL default '0',
      rootid int(11) NOT NULL default '0',
      orders int(4) NOT NULL default '0',
      layer int(4) NOT NULL default '0',
      PRIMARY KEY  (id)
    ) TYPE=MyISAM;
    //creat.sql End

    //發表根帖,即RootId,Layer,Orders為0的帖子
    //said.php
    //begin
    <form method="post" action="post.php">
      <table width="81%" border="0" cellspacing="1" cellpadding="0" align="center">
        <tr bgcolor="#66CCCC">
          <td height="35" width="23%">
            <div align="right">你的想法:
            </div>
          </td>
          <td height="35" width="77%">
            <input type="text" name="title" size="50" class="eq">
          </td>
        </tr>
        <tr bgcolor="#66CCCC">
          <td height="39" width="23%">
            <div align="right">你的內容:
            </div>
          </td>
          <td height="39" width="77%">
            <textarea name="content" cols="50" rows="10" class="eq"></textarea>
          </td>
        </tr>
        <tr bgcolor="#66CCCC">
          <td colspan="2" height="24">
          </td>
        </tr>
        <tr bgcolor="#66CCCC">
          <td colspan="2" height="28">
            <div align="center">
              <input type="submit" name="said" value="先說這些">
              <input type="reset" name="Submit2" value="從頭再來">
            </div>
          </td>
        </tr>
      </table>
      </form>
    //said.php End


    //帖子內容,且在本頁進行跟帖
    //content.php
    //Begin
    <?php

    $result=mysql_query("select

    over_post.title,over_post.content,over_post.postat,over_post.readed,over_post.rootid,over_post.la

    yer,over_post.orders from over_post where over_post.id=$id");
    $readed=mysql_result($result,0,"readed");
    $title=mysql_result($result,0,"title");
    $content=mysql_result($result,0,"content");
    $date=mysql_result($result,0,"postat");
    $rootid=mysql_result($result,0,"rootid");
    $orders=mysql_result($result,0,"orders");
    $layer=mysql_result($result,0,"layer");
    ?>
    <table width="90%" cellspacing="1" bgcolor="red" align="center">
      <tr bgcolor="#FFFFFF">
       <td width="12%">發表人:</td>
      </tr>
      <tr bgcolor="#FFFFFF">
         <td width="12%">主 題:</td>
         <td colspan="5">《<?php echo $title; ?>》  <font color="666666"><i>【

    Readed:<?echo"$readed";?>】  <?echo"$date";?></i></font></td>
                  </tr>
       <tr bgcolor="#FFFFFF">
         <td width="12%">內 容:</td>
         <td colspan="5"><?php echo $content; ?></td>
       </tr>
    </table>
    <br>
    <center>
      論壇發表跟帖
      <form method="post" action="post.php">
        <table width="78%" cellspacing="0" align="center" cellpadding="0" border="0">
          <tr bgcolor="#FFFFFF">
            <td height="24" width="12%">
              <div align="right">題目:</div>
            </td>
            <td height="24" width="88%">
              <input type="text" name="title" class="eq" size="50">
            </td>
          </tr>
          <tr bgcolor="#FFFFFF">
            <td height="63" width="12%">
              <div align="right">內容:</div>
            </td>
            <td height="63" width="88%">
              <textarea name="content" class="eq" cols="50" rows="10"></textarea>
            </td>
          </tr>
          <tr bgcolor="#FFFFFF">
            <td height="57" colspan="2">
            </td>
          </tr>
          <tr bgcolor="#FFFFFF">
            <td height="20" colspan="2">
              <div align="center">
              <input type="submit" name="reply" value="跟帖" class=in>
              <input type="reset" value="重寫" class=in name="reset">
              <input type="hidden" name="rootid" value="<?echo $rootid;?>">
              <input type="hidden" name="orders" value="<?echo$orders;?>">
              <input type="hidden" name="layer" value="<?echo$layer;?>">
              </div>
            </td>
          </tr>
        </table>
    //content.php End

    //更新數據庫
    //post.php
    //Begin

    <?
    $content=nl2br(htmlspecialchars($content));
    $title=htmlspecialchars($title);        //決不允許在標題上使用html
    $date=date("Y-m-d H:i:s");
    $length=strlen($content);

    if(isset($said))    //發表新帖子
    {
    $query="insert into over_post

    values(null,'$title','$content',$user_id,'$date',0,$length,$img,'','','')";
    $result=mysql_query($query) or die(mysql_error());
    $r=mysql_query("select max(id) from over_post");
    $rootid = mysql_result($r,0)+0;
    mysql_query("update over_post set rootid=$rootid where ID=$rootid")or die(mysql_error());
    }

    if(isset($reply)):    //發表跟帖

    mysql_query("update over_post set orders=orders+1 where rootid=$rootid and orders>$orders")or

    die(mysql_error());

    $layer=$layer+1;
    $orders=$orders+1;
    $query="insert into over_post

    values(null,'$title','$content',$user_id,'$date',0,$length,$img,$rootid,$orders,$layer)";

    $result=mysql_query($query) or die(mysql_error());

    endif;
         if($result) {
        include"list.php";
    }
    ?>
    //post.php End

    //重頭戲,顯示所有帖子,并實現分頁
    //list.php
    //Begin

    <?php
    //找到最新論題的rootid
    $query = "select max(rootid) as maxid1, min(rootid) as minid1 from over_post";
    $result = mysql_query($query);
    $maxid1 = mysql_result($result, 0, "maxid1");
    $startid1 = mysql_result($result, 0, "minid1");
    if(!($maxid1>0)) $maxid1=0;
    if(!($startid1>0)) $startid1=0;
    $totalid1 = $maxid1; //這是真正的最大的rootid值, $maxid1要根據$nextmaxid1變的
    if($nextmaxid1>0) $maxid1=$nextmaxid1; //翻頁

    //計算最小rootid:注意下面的desc,與limit結合,保證選取記錄的范圍.
    //如果使用asc, 在mysql_result中檢索第0個,將大大錯誤!
    $itemsperpage=30;
    $query="select distinct rootid from over_post where rootid<=$maxid1 order by rootid desc limit

    $itemsperpage";
    $r=mysql_query($query);
    $n=mysql_num_rows($r);
    if($n>0) {
      $minid1=mysql_result($r,$n-1);
    $query="select * from over_post where rootid<=$maxid1 and rootid>=$minid1 order by rootid

    desc,orders";
    $result=mysql_query($query);
    $num=mysql_num_rows($result);

    }
    else {
      $minid1=0;
      $maxid1=0;
      echo "<p><center><font color='#ff0000'>沒有更多的發言內容</font></center>";
    }

    $query="select distinct rootid from over_post where rootid>$maxid1 order by rootid limit

    $itemsperpage";
    $r=mysql_query($query);
    $n=mysql_num_rows($r);
    if($n>0) $up=mysql_result($r,$n-1);
    else $up=$totalid1;

    $query="select distinct rootid from over_post where rootid<$minid1 order by rootid desc limit

    $itemsperpage";
    $r=mysql_query($query);
    $n=mysql_num_rows($r);
    if($n>0) $down=mysql_result($r,0);
    else $down=$maxid1;
    ?>
    <div align=center>
    <br>
      <table width="90%" border="0" cellspacing="1" cellpadding="0" align="center">
        <tr bgcolor="2880AC">
          <td height="20" align="center"><font color="#FFFFFF"><a

    href="javascript:window.location.reload()" class=a1>刷新</a>
            <a href="list.php" class=a1>首頁</a> <a href="list.php?nextmaxid1=<?echo$up;?>" class=a1>

    上頁</a>
            <a href="list.php?nextmaxid1=<?echo$down;?>" class=a1>下頁</a>  <?echo" 現存論題

    :$startid1-$totalid1 ";?>
            </font></td>
        </tr>
        <tr>
          <td  height="40" bgcolor="#E0F0F8" cellspacing="1">
    <?php
    echo"<ul>";
    while ($array=mysql_fetch_array($result)){
            $id=$array["id"];
            $title=$array["title"];
            $content=$array["content"];
            $postat=$array["postat"];
            $readed=$array["readed"];
            $size=$array["size"];
                if($size==0) $size="無內容";
                    else $size.=" Bytes";
            $rootid=$array["rootid"];
            $orders=$array["orders"];
            $layer=$array["layer"];
                
            $ul="";        //開始樹型結構
            $_ul="";
        for($j=0;$j<$layer;$j++){
                $ul=$ul."<ul>";
                $_ul=$_ul."</ul>";    
                }
    echo $ul."<li>"."<a href=\"content.php?id=$id\" class=big>$title</a><font color=006699>($size) 【

    ".作者."】 $postat <被讀:$readed> </font><br>".$_ul;
    flush();
                    //樹型結構結束
    }
    ?><br></td>
        </tr>
        <tr bgcolor="2880AC">
          <td height="20" align="center"><font color="#FFFFFF"><a

    href="javascript:window.location.reload()" class=a1>刷新</a>
            <a href="list.php" class=a1>首頁</a> <a href="list.php?nextmaxid1=<?echo$up;?>" class=a1>

    上頁</a>
            <a href="list.php?nextmaxid1=<?echo$down;?>" class=a1>下頁</a>  <?echo" 現存論題

    :$startid1-$totalid1 ";?>
            </font></td>
        </tr>
      </table>
    </div>

    //list.php End

    文章來源于領測軟件測試網 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>