PHP + MYSQL を使用してフォーラムの階層 + ページング表示を実装します
<
/*投稿を保存するためのテーブル構造-------------- -- -------------------------------------
テーブル bbsrow(
bbsrow_id int(6) not null auto_increment, //投稿 ID 番号
bbsrow_auth varchar(20) not null, //投稿者
bbsrow_parentid int(6), //投稿者の父親の投稿 ID 番号post 、最初の投稿の場合は空になります
bbsrow_title varchar(200) not null, //投稿タイトル
bbsrow_returncount int(3), //投稿への返信数 (存在する場合)応答なし、空になります
主キー (bbsrow_id)
); -------------------------------------------------------* /
//息子が投稿した再帰関数を表示------------------------------ --------------- -----------
function showchildren($parent_id){
global $connect_id
$query=" select * from bbsrow where bbsrow_parentid='" . $parent_id . "' "; " lt ;li>";
echo $myrow_child[0];
echo $myrow_child[1];
echo $myrow_child [2];
echo $myrow_child[3];
e cho $myrow_child[4]; > showchildren($myrow_child[0]);
}
}
echo ""
}
//---------- ------- -------------------------------- ----------
//データベースに接続し、すべての最初の投稿を $mainrow 配列に入れます------ ---------
$connect_id= mysql_connect("localhost","test","test") または die("データベースに接続できません");
mysql_select_db("bbs" ) または die("データベースを選択できません"); query="select * from 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]; 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)
$totalpage=$i/$ページサイズ;
/" . ceil($totalpage) . "page
n";
echo $info;
if($page>0) $pagestr="< ;a href=bbsrow.php4 ?currentpage=" . ($page-1) . ">前のページ";
$pagestr=$pagestr . " [page"; 0;$i<$ totalpage;$i++){
if($i!=$page){
$pagestr=$pagestr . " " $i+1) . " ";
}
. " ";
}
}
$pagestr . "ページ]"; 次のページn";
echo $pagestr ;
//------------------------------------------ ------ -----------------------
//階層表示開始 -------------------------------------- --- -------------
echo "
n";
for($i=$start;$i<$end;$i++ ){
echo "- n";
echo $mainrow[$i][0];
echo $mainrow[$]; i][ 2];
echo $mainrow[$i][3];
echo $mainrow[$i][4] "n";空ではありません。息子の投稿がある場合、息子の投稿を表示し続けることを意味します
if($mainrow[$i][4]!=''){
showchildren($mainrow[$i][0] );
}
}
エコー "
"; ---------- -------------------------------------- ?>