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) , // 投稿への返信数、返信がない場合は空になります
主キー(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 "< li&gt; ";
echo $ myrow_child [0;息子の投稿があることを示し、息子の投稿を表示し続けているif($ myrow_child [4]!= ''){
showChildren($ 0]; //-- ------------------------------------------------ ---- -------------------
//データベースに接続し、すべての最初の投稿を $mainrow 配列に入れます---------- --- ---------------
$connect_id=mysql_connect("localhost","test","test") または die("データベースに接続できません");
mysql_select_db( " bbs") または 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) ". ;n";
echo $info;
if($page>0) $pagestr="前のページ< ;";
$pagestr=$pagestr . " ";
}
else{
$pagestr= $pagestr . " " . ($i+1) . " ";
}
}
$pagestr=$pagestr . "page]";
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";
//------------- -------------------------------------- ----------------?>