Home  >  Article  >  Database  >  用PHP+MYSQL 实现论坛里的分级+分页显示_MySQL

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

WBOY
WBOYOriginal
2016-06-01 14:04:581401browse

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

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;$iif($i!=$page){
$pagestr=$pagestr . " " . ($i+1) . " ";
}
else{
$pagestr=$pagestr . " " . ($i+1) . " ";
}
}

$pagestr=$pagestr . "页]";

if($page下一页

\n";

echo $pagestr;
//----------------------------------------------------------------------

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

echo "

    \n";
    for($i=$start;$iecho "
  • \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";
//----------------------------------------------------------------------?>

摘自:http://www.chinaasp.com/columns/php/article1367.asp
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn