繁体中文
设为首页
加入收藏
当前位置:PHP技术首页 >> PHP基础 >> 我写的一个用PHP+MYSQL轻松实现论坛里的分级+分页显示的例程!(很详细的哦!虽然效

我写的一个用PHP+MYSQL轻松实现论坛里的分级+分页显示的例程!(很详细的哦!虽然效

2004-11-15 08:00:00  作者:  来源:互联网  浏览次数:0  文字大小:【】【】【

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

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<$totalpage;$i++){

if($i!=$page){

$pagestr=$pagestr . " " . ($i+1) . " ";

}

else{

$pagestr=$pagestr . " " . ($i+1) . " ";

}

}

$pagestr=$pagestr . "页]";

if($page<$totalpage-1) $pagestr=$pagestr . "下一页

\n";

echo $pagestr;

//----------------------------------------------------------------------

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

echo "

    \n";

    for($i=$start;$i<$end;$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";

//----------------------------------------------------------------------?>

责任编辑:admin
相关文章