Heim  >  Artikel  >  php教程  >  用PHP+MYSQL实现论坛里的分级+分页显示

用PHP+MYSQL实现论坛里的分级+分页显示

WBOY
WBOYOriginal
2016-06-21 09:02:531544Durchsuche
用PHP+MYSQL实现论坛里的分级+分页显示


/*存放贴子的表结构------------------------------------------------------

create table bbsrow(
    bbsrow_id int(6) not null auto_increment,  //贴子ID号
    bbsrow_auth varchar(20) not null,  //贴子作者
    bbsrow_parentid int(6),  //贴子的父亲贴子ID号,如为首发贴则为空
    bbsrow_title varchar(200) not null,  //贴子标题
    bbsrow_returncount int(3),  //贴子的回复贴数,如果没有回贴则为空
    primary key (bbsrow_id)
);
-----------------------------------------------------------------------------*/


//显示儿子贴的递归函数--------------------------------------------------
function showchildren($parent_id){
    global $connect_id;
    $query="select * from bbsrow where bbsrow_parentid='" . $parent_id . "'";     
    $result_top=mysql_query($query,$connect_id);
    echo "
    n";
        while($myrow_child=mysql_fetch_row($result_top)){
            echo "
  • ";
            echo $myrow_child[0];
            echo $myrow_child[1];
            echo $myrow_child[2];
            echo $myrow_child[3];
            echo $myrow_child[4] . "n";
            //如果回复贴数不为空,则表示有儿子贴,继续显示儿子贴
            if($myrow_child[4]!=''){
                showchildren($myrow_child[0]);
            }
        }
        echo "
";
}
//----------------------------------------------------------------------

//连接数据库并将所有首发贴放到$mainrow数组里----------------------------

$connect_id=mysql_connect("localhost","test","test") or die("无法连接数据库");
mysql_select_db("bbs") or die("无法选择数据库");
$query="select * from bbsrow where bbsrow_parentid=''";
$result=mysql_query($query,$connect_id);

$i=0;
while($myrow=mysql_fetch_row($result)) {
    $mainrow[$i][0]=$myrow[0];
    $mainrow[$i][1]=$myrow[1];
    $mainrow[$i][2]=$myrow[2];
    $mainrow[$i][3]=$myrow[3];
    $mainrow[$i][4]=$myrow[4];
    $i++;
}
mysql_free_result($result);
//----------------------------------------------------------------------

//开始构建分页显示------------------------------------------------------

if($currentpage!=""){
    $page=$currentpage;
}
else{
    $page=0;
}

$pagesize=10;//每页显示的首发贴数!
$start=$page*$pagesize;
$end=$start+$pagesize;
if($end>$i) $end=$i;
$totalpage=$i/$pagesize;

     
$info=" 共有" . $i . "条纪录,分" . ceil($totalpage) . "页,当前为第" . ($page+1) . "/" . ceil($totalpage) . "页
n";
echo $info;

if($page>0) $pagestr="上一页";
$pagestr=$pagestr . " [第 ";
     
for($i=0;$i    if($i!=$page){
        $pagestr=$pagestr . " " . ($i+1) . " ";
    }
    else{
        $pagestr=$pagestr . " " . ($i+1) . " ";
    }
}

$pagestr=$pagestr . "页]";
     
if($page下一页

n";
     
echo $pagestr;
//----------------------------------------------------------------------

//开始分级显示----------------------------------------------------------

echo "

    n";
    for($i=$start;$i    echo "
  • n";
        echo $mainrow[$i][0];
        echo $mainrow[$i][1];
        echo $mainrow[$i][2];
        echo $mainrow[$i][3];
        echo $mainrow[$i][4] . "n";
        //如果回复贴数不为空,则表示有儿子贴,继续显示儿子贴
        if($mainrow[$i][4]!=''){
            showchildren($mainrow[$i][0]);
        }
    }
    echo "
n";
//----------------------------------------------------------------------?> 



Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn