淺析經典的PHP論壇程式是如何寫成的?
作為一個論壇程式愛好者,趁空閑時間寫一下編寫論壇的心得。
以自己編寫的開源論壇為例,開發重點是在第一步,如何排列出版塊,寫出這個,接下去就比較順手了。
版塊分為大版塊,下面有各個小版塊,小版塊下面可能還有子版塊。為了減少難度,子版塊部分忽略不談。
設計庫設計分為2張表
大版塊2個欄位
id => 主鍵
bzone =>大版塊名稱
小版塊5個欄位
id => 主鍵
szone => 小版塊名稱
mark => 小版塊解說文字
bid => 大版塊ID,對應大版塊的主鍵
ssort => 小版塊排序,可以以小版塊影響大版塊的排序
以這2張表的設計就能夠全部搞定論壇版塊的功能部分?答案是肯定的
代碼實現
$sql_block = "select * from " . C('db_prefix') . "small_block order by ssort desc,bid desc,szone desc";
$query_block = mysql_query($sql_block);
$data_block = array();
$data_big = array();
$time1 = date("Y-m-d");
$time1 .= " 00:00:00";
$time2 = date("Y-m-d");
$time2 .= " 23:59:59";
while ($arr_block = mysql_fetch_array($query_block)) {
$data_block[] = $arr_block;
$bsql = "select * from " . C('db_prefix') . "big_block where id=" . $arr_block['bid'];
$barr = mysql_fetch_array(mysql_query($bsql));
$data_big[$arr_block['bid']] = $barr['bzone'];
${'zhuti' . $arr_block['id']} = mysql_num_rows(mysql_query("select * from " . C('db_prefix') . "talk where parentid=" . $arr_block['id']));
$this->assign("zhuti" . $arr_block['id'], ${'zhuti' . $arr_block['id']});
${'tiezi1' . $arr_block['id']} = mysql_num_rows(mysql_query("select * from " . C('db_prefix') . "talk where parentid=" . $arr_block['id']));
${'tiezi2' . $arr_block['id']} = mysql_num_rows(mysql_query("select * from " . C('db_prefix') . "reply where parentid2=" . $arr_block['id']));
${'tiezi' . $arr_block['id']} = ${'tiezi1' . $arr_block['id']} + ${'tiezi2' . $arr_block['id']};