国产午夜成人免费看片无遮挡_日本免费xxxx色视频_免费人成网上在线观看_黄网址在线永久免费观看

當前位置:雨林木風下載站 > 技術開發(fā)教程 > 詳細頁面

菜鳥初學設計,希望大家多多指點,并幫助完成。謝謝

菜鳥初學設計,希望大家多多指點,并幫助完成。謝謝

更新時間:2022-05-06 文章作者:未知 信息來源:網(wǎng)絡 閱讀次數(shù):

書寫的比較規(guī)范,思路清晰。希望大家各述己見 --- 嘮叨
================================================


分類管理(不完整設計-概述)(1)
qzhl 發(fā)表于 2002-3-13 17:57 PHP編程 ←返回版面 

class.id //分類號 唯一
class.classStr //分類字符串 = 父分類字符串+","+父id 用于 選出所有子分類
class.parentId//父Id 可以用上面的字段得到 不一定能實現(xiàn)


功能模塊說明:

addClass//添加分類
入口:
[parentId]//父分類號
<name>//類名
[其他字段]//非必須字段
出口:<errNo>
listClass//根據(jù)模版樣式輸出分類
入口:
<$rootId>//要顯示分類的根節(jié)點的 id即顯示所有 rootId 的子節(jié)點
[$tree]//是否全部展開
//默認的模版變量用來確定模版
modiClass//修改單獨分類的信息
入口:
<id>
<必要的字段>
[可選的字段]
modiClassForm
 入口
[$id]//分類號
出口
各字段值發(fā)送給 modiClass
delClass//刪除分類 如果包含子分類 則不允許刪除
入口:
<$id>



分類管理(不完整設計-數(shù)據(jù)結(jié)構(gòu))(2)

分類表

CREATE TABLE class (
classStr varchar(10) NOT NULL default '0',分類字符串*
parentId int(11) default '0',父分類號
id int(11) NOT NULL default '0',分類號*//自動增長
logo varchar(50) default NULL,圖標
name varchar(20) NOT NULL default '',類名*
description varchar(50) default 'Welcome',描述
dispOrder int(11) default NULL,顯示順序
masterId int(11) default NULL,管理員號
masterName varchar(20) default NULL,管理員名
[此處可再擴充發(fā)言表管理員的名字 用于在發(fā)言管理中]
childNum int(11) default NULL,子節(jié)點數(shù)量
modiTime datetime default NULL,最后修改時間
UNIQUE KEY id (id)分類號 唯一
) TYPE=MyISAM;

發(fā)言表

CREATE TABLE msg (
bid int(11) NOT NULL default '0',分類號
id int(11) NOT NULL default '0',分類內(nèi)序號
topic varchar(100) NOT NULL default '',主題
context text,內(nèi)容
author varchar(20) NOT NULL default '',作者
email varchar(40) default '',郵箱
wdate datetime NOT NULL default '0000-00-00 00:00:00',
發(fā)言時間
levelnum tinyint(3) unsigned NOT NULL default '0',
回復層次
orderid float NOT NULL default '0'排序號
) TYPE=MyISAM;


分類管理(不完整設計-添加分類)(3)

功能:

添加分類(addClass)
0.功能簡述:


1 接口參數(shù)

1.1 入口

[parentId]//父分類號

<name>//類名
[其他字段]//非必須字段

1.2 出口

[errNo]//錯誤碼用 include 發(fā)送給 錯誤 顯示功能(區(qū)分語言)

2 變量聲明

var parentId;
var classStr;

3 功能實現(xiàn)

if(empty($name)){
errNo = N;
include_once(錯誤功能頁面);//錯誤頁面根據(jù)語言輸出錯誤并返回(見 func.txt)
}
//if(empty($parentId)):

$parentId = 0;//默認就是 0 此句不用寫
// id 設置為自動增長
INSERT INTO class(classStr,parentId,name,[其他字段]) VALUES(0,0,$name,[其他字段]);

//if(!empty($parentId)):
SELECT @classStr:=CONCAT(classStr,',',id) FROM class WHERE id=$parentId; //CONCAT 連接字符串
INSERT INTO class(classStr,parentId,name,[其他字段]) VALUES(@classStr, $parentId, $name, [其他字段]);


分類管理(不完整設計-權(quán)限管理)(4)

權(quán)限管理
chkPower 功能
0 功能簡述
根據(jù) 管理模式 判斷當前用戶 是否可以通過本模塊。
1 接口參數(shù)
1.1 入口
session(user['id'])
<$id>//需要判斷權(quán)限的分類的 id
session(user['power'])//user['power'] = 'id,id,id'
1.2 出口
errNo//沒有權(quán)限
user['power'] .= ',id'//認證通過
2 實現(xiàn)

判斷 id 是否在 session(user['power']) 中
是:通過
否:管理模式 0:
SELECT @classStr:=classStr FROM class WHERE id = $id
 //判斷當前類的 分類字符串 是否包含 user[id] 所管理的任何一個分類 是 則通過 說明當前分類是子分類
 SELECT <任何字段> FROM class WHERE @classStr LIKE CONCAT('%',id,'%') AND masterId = session(user[id])
 如果返回的記錄集不為空 則通過。
并 user['power'] .= $id;
管理模式 1:
//判斷 當前用戶是否在 當前類管理員列表中 是 則通過。
SELECT <任何字段> FROM class WHERE masterId LIKE CONCAT('%',user['id'],'%') AND id = $id
如果沒有通過:
errNo = n;
include(error.php)


分類管理(不完整設計-顯示分類)(5)

顯示分類(listClass)

0 功能描述

1 接口參數(shù)

1.1 入口

$rootId要顯示分類的根節(jié)點的 id即顯示所有 rootId 的子節(jié)點
$tree是否全部展開
//默認的模版變量
1.2 出口
errNo

2 變量聲明

var $result;//記錄集
var $nodeNum;//節(jié)點數(shù)量
var $allNodeArray;//所有節(jié)點數(shù)組
var $html;//模板變量

3 函數(shù)聲明

function getResult(rootId,tree)
//得到一個需要的記錄集
function pAllNode1(level,rootNodeId,nodeArray[][])
//遍歷函數(shù) level 表示輸出層次 nodeArray 記錄集數(shù)組
function buildTree(black,currentNode)
//輸出函數(shù) 調(diào)用 模板類 調(diào)用模板 賦值模板變量 追加塊 得到樹形結(jié)構(gòu)

4 功能實現(xiàn)
//連接數(shù)據(jù)庫
$result = getResult($rootId,$tree);
$nodeNum = mysql_num_rows($result);
$allNodeArray = array(nodeNum);
$html = new Template();
//將記錄集放入二維數(shù)組。將父id放入數(shù)組第一個元素
for(i=0;i<nodeNum;i++){
$allNodeArray[i] = mysql_fetch_array($result);
}
//關閉數(shù)據(jù)庫
$html->set_file('listClass','listClass.tpl');
$html->set_block('listClass','node','nodes');

pAllNode1(0,n,$allNodeArray);

$html->pparse('out','listClass');

/*********** function **********************************************/

//得到一個需要的記錄集
function getResult(rootId,tree){
//參數(shù)說明:
//rootId 要顯示分類的根節(jié)點的 id即顯示所有 rootId 的子節(jié)點
//tree 是否全部展開

if(empty($rootId)) $rootId = 0;

if(tree=false){ // 只列出一層
strSQL =
SELECT @classStr:=classStr FROM class WHERE id=$rootId;
SELECT name,classStr,[其他字段] FROM class
WHERE classStr LIKE CONCAT(@classStr, ',', '%') AND classStr NOT LIKE CONCAT(@classStr, ',', '%,%');
}
if(tree=true){//列出整棵樹
strSQL =
SELECT @classStr:=classStr FROM class WHERE id=$rootId;
SELECT name,classStr,[其他字段] FROM class
WHERE classStr LIKE CONCAT(@classStr, ',', '%')
}
return mysql_quary(strSQL);
}

//遍歷函數(shù) level 表示輸出層次 nodeArray 記錄集數(shù)組

function pAllNode(level,rootNodeId,nodeArray){
//如果當前節(jié)點的父id等于跟節(jié)點id
while(current(nodeArray)[0]==rootNodeId){
//輸出當前節(jié)點
//遞歸調(diào)用,current(nodeArray)[1] 表示: 當前節(jié)點id, 數(shù)組不變
pAllNode(level+1,current(nodeArray)[1],nodeArray);
next(nodeArray);
}
}

//遍歷函數(shù)1
function pAllNode1(level,rootNodeId,nodeArray[][]){
i=0;
//用于存放本層的元素
tmpArr = array();
//從數(shù)組中搜索所有元素 生成第一層元素
while(list($k,$v)=each(nodeArray)){
//如果元素的 父id 即nodeArray[][0] 或者 $v[0]==rootNodeId
if($v[0]==rootNodeId){
//生成新的數(shù)組只包含第一層的元素 即 父節(jié)點為 rootNodeId
tmpArr[i]=$v[0];
//刪除原數(shù)組中已選出的元素
unset(nodeArray[$k]);
//新數(shù)組的下標加一
i++;
}
}
while(list($k,$v)=each(tmpArr)){
//生成縮進
for(i=0;i<level;i++) $str .= " ";
//建立當前節(jié)點
buildTree($str,$v[2]);
//此時數(shù)組 nodeArray 已經(jīng)去除了第一層的元素
pAllNode1(level+1,$v[1],nodeArray);
}
}

//輸出函數(shù) 調(diào)用 模板類 調(diào)用模板 賦值模板變量 追加塊 得到樹形結(jié)構(gòu)
//對所有需要的變量進行替換 模板不同 則生成兩種類型的頁面(只有類名的樹形結(jié)構(gòu),有詳細信息的列表)
//black 生成的縮進空格
function buildTree(black,currentNode){
set_var('鏈接',currentNode[1]);
set_var('name',currentNode[2]);
set_var('black',black):
parse('nodes','row',ture);
}
//塊結(jié)構(gòu)
<!-- node BEGIN -->
{black縮進空格}<a href={鏈接?classid=n}>{name}</a>[其他需要輸出的內(nèi)容]
<!-- node END -->

/*******************************************************************/



分類管理(不完整設計-修改分類)(6)

修改分類信息(modiClass)
0.實現(xiàn)簡述:


1 接口參數(shù)

1.1 入口
<id>
<必要的字段>
[可選的字段]

1.2 出口

[errNo]

2 變量聲明


3 功能實現(xiàn)
if (<必要字段> 不存在) errNo = n include(錯誤處理功能)

update 數(shù)據(jù) where id = $id;



分類管理(不完整設計-修改表單)(7)

修改表單(modiClassForm)
0.實現(xiàn)簡述:


1 接口參數(shù)

1.1 入口

[$id]//分類號

1.2 出口
各字段值發(fā)送給 modiClass

2 變量聲明


3 功能實現(xiàn)

//根據(jù) $id 查詢數(shù)據(jù)庫得到相應的信息
//調(diào)用 修改類表單模板用查到的數(shù)據(jù)替換相應的表單元素值。
//輸出給用戶。
//用戶修改后提交給 modiClass 功能。


分類管理(不完整設計-遍歷函數(shù))(8)

<?
function pAllNode($level,$rootNodeId,$nodeArray){
reset($nodeArray);
$i=0;
//用于存放本層的元素
$tmpArr = array();
//從數(shù)組中搜索所有元素 生成第一層元素
while(list($k,$v)=each($nodeArray)){
//如果元素的 父id 即nodeArray[][0] 或者 $v[0]==rootNodeId
if($v[0]==$rootNodeId){
//生成新的數(shù)組只包含第一層的元素 即 父節(jié)點為 rootNodeId
$tmpArr[$i]=$v;
//刪除原數(shù)組中已選出的元素
//unset($nodeArray[$k]);
//新數(shù)組的下標加一
$i++;
}
}
reset($tmpArr);
//生成縮進
for($j=0;$j<$level;$j++) $str .= " ";
while(list($k,$v)=each($tmpArr)){
//輸出當前節(jié)點
print($str.$v[1].$v[2]."<br>");
//此時數(shù)組 nodeArray 已經(jīng)去除了第一層的元素
pAllNode($level+1,$v[1],$nodeArray);
}
}

$tt = array(
array(0,1,"b"),
array(0,2,"b"),
array(1,3,"b"),
array(1,4,"b"),
array(0,5,"b"),
array(2,6,"b"),
array(6,7,"b")
);
pAllNode(0,0,$tt);

?>


分類管理(不完整設計-配置文件)(9)

配置文件說明:
<?
/*安裝時需要初始化的本地信息內(nèi)容*************************************/
//分類管理的目錄信息
global $PATH_INFO;
$PATH_INFO = array ();
//數(shù)據(jù)庫配置信息
global $DB_INFO;
$DB_INFO = array ();
/********************************************************************/
/*可用的模板設置添加*************************************************/
//模板樣式添加
global $TPL_TYPE;
$TPL_TYPE = array (
'管理'=> '',
'用戶'=> ''
);
//語言添加
global $LANGUAGE;
$LANGUAGE = array ();
/********************************************************************/
//定義程序運行時消息包括兩種語言
global $RUNTIME_MSG;
$RUNTIME_MSG = array(
'cannot_is_null'=> array('不能為空','e不能為空'),
'submit_success'=> array('提交成功','e提交成功')
);
//界面默認配置
global $MSGBD_CONF;
$MSGBD_CONF = array (
'tpltype'=> $TPL_TYPE[0],//默認模板樣式設置
'language'=> $LANGUAGE[0] //默認語言設置
);
//默認管理模式
global $MANAGE_MODEL;// 0,繼承樹形管理,1,管理員判斷管理
?>

溫馨提示:喜歡本站的話,請收藏一下本站!

本類教程下載

系統(tǒng)下載排行

国产午夜成人免费看片无遮挡_日本免费xxxx色视频_免费人成网上在线观看_黄网址在线永久免费观看

  • <label id="pxtpz"><meter id="pxtpz"></meter></label>
      1. <span id="pxtpz"><optgroup id="pxtpz"></optgroup></span>

        成人激情小说乱人伦| 综合久久国产九一剧情麻豆| 日本精品一区二区三区高清| 久久福利视频一区二区| 色88888久久久久久影院野外| 国产亚洲精品bt天堂精选| 偷窥国产亚洲免费视频| 99riav久久精品riav| 精品国产露脸精彩对白| 日本三级亚洲精品| 欧美福利视频一区| 偷拍日韩校园综合在线| 欧美亚洲综合久久| 亚洲电影第三页| 欧美性大战久久| 亚洲成av人在线观看| 国产精品99久久久久久有的能看| 精品欧美乱码久久久久久1区2区| 日韩福利电影在线观看| 日韩精品一区二区三区视频在线观看 | 91久久国产综合久久| 日韩av电影免费观看高清完整版| 国产亚洲一本大道中文在线| 色成人在线视频| 国产在线不卡一区| 亚洲一区二区在线播放相泽| 久久免费午夜影院| 欧美群妇大交群的观看方式| 国产91色综合久久免费分享| 午夜精品久久久久久久久| 中文字幕不卡的av| 日韩免费看的电影| 欧美三级欧美一级| 成人美女视频在线观看| 日韩电影免费一区| 一区二区三区在线观看欧美| 久久久久综合网| 7777精品伊人久久久大香线蕉超级流畅 | 国产一区二区三区高清播放| 亚洲风情在线资源站| 国产精品人妖ts系列视频| 日韩欧美一二三四区| 欧美日韩久久不卡| 91美女片黄在线观看91美女| 国产99精品在线观看| 韩国精品一区二区| 日韩黄色在线观看| 日精品一区二区| 午夜免费久久看| 悠悠色在线精品| 玉米视频成人免费看| 亚洲欧美一区二区三区孕妇| 中文字幕精品—区二区四季| 国产片一区二区三区| 久久综合成人精品亚洲另类欧美| 日韩一区二区三区视频| 91精品国产手机| 欧美一区二区三区性视频| 91精品欧美综合在线观看最新| 欧美性三三影院| 欧美性受xxxx黑人xyx性爽| 91福利在线免费观看| 欧美在线制服丝袜| 欧美日韩精品一区二区三区蜜桃 | 国产成人在线观看| 国产在线播精品第三| 国产福利91精品一区二区三区| 国内精品久久久久影院色| 国产一区二区在线电影| 丰满岳乱妇一区二区三区| 成人免费观看视频| 在线精品观看国产| 欧美浪妇xxxx高跟鞋交| 日韩一区二区视频| 国产网红主播福利一区二区| 国产精品久久久久毛片软件| 一区二区三区精品| 欧美a级理论片| 国产福利电影一区二区三区| 成人18精品视频| 欧美日韩不卡一区二区| 久久久亚洲精品石原莉奈| 国产精品久久三| 午夜精品久久久久久久99樱桃| 男女男精品网站| 成人污视频在线观看| 欧美亚洲国产bt| 26uuu亚洲| 亚洲一区二区精品视频| 九九久久精品视频| 91视频免费观看| 欧美变态tickle挠乳网站| 中文字幕在线不卡一区| 日本视频中文字幕一区二区三区| 国产成人鲁色资源国产91色综 | 日日夜夜免费精品| 成人听书哪个软件好| 91精品国产麻豆| 亚洲日本韩国一区| 麻豆精品在线观看| 色偷偷一区二区三区| 日韩一区二区三区视频| 亚洲色图在线视频| 国精产品一区一区三区mba视频| 91美女片黄在线观看91美女| 精品乱人伦一区二区三区| 亚洲免费成人av| 国产一区二区精品久久91| 欧美在线小视频| 国产精品毛片久久久久久| 免费观看日韩av| 欧美在线制服丝袜| 中文一区二区完整视频在线观看| 日本伊人午夜精品| 欧美在线观看一区| 国产精品网站在线| 国产在线播放一区三区四| 91精品国产综合久久香蕉的特点 | 欧美在线色视频| 国产精品久久99| 国产成人av影院| 久久久久久电影| 精品制服美女丁香| 欧美一级黄色片| 日韩av一区二| 日韩午夜精品电影| 日本美女一区二区三区视频| 欧美亚洲综合色| 亚洲国产精品久久人人爱| 色婷婷亚洲婷婷| 亚洲免费观看在线观看| 在线免费一区三区| 亚洲一区在线观看网站| 欧美色成人综合| 日韩精品一二三| 欧美不卡123| 国产呦精品一区二区三区网站| 欧美电影免费观看高清完整版在线 | 国产精品久久久久四虎| av在线一区二区三区| 中文字幕在线一区| 91麻豆精东视频| 亚洲成av人在线观看| 欧美精品久久久久久久多人混战| 香蕉影视欧美成人| 欧美一区二区三区免费观看视频| 老司机精品视频一区二区三区| 精品久久人人做人人爱| 国产suv精品一区二区6| 中文字幕一区二区三区在线不卡 | 黄网站免费久久| 国产拍揄自揄精品视频麻豆| 不卡的av中国片| 亚洲一区二区三区四区五区中文| 9191国产精品| 国产一区二区在线看| 国产精品久久久久一区| 欧美在线免费视屏| 激情都市一区二区| 亚洲精品免费看| 日韩一区二区高清| 成人性生交大片| 亚洲成人精品影院| 久久免费偷拍视频| 欧美亚洲禁片免费| 激情五月激情综合网| 亚洲欧洲精品天堂一级| 欧美久久久久免费| 国产成人av网站| 亚洲综合一区二区| 精品91自产拍在线观看一区| 91免费看`日韩一区二区| 人人精品人人爱| 亚洲欧美二区三区| 久久综合九色综合97婷婷女人 | 久久99精品久久久久久| 国产精品国模大尺度视频| 欧美怡红院视频| 成人综合在线网站| 日韩影视精彩在线| 亚洲欧美偷拍三级| 精品福利av导航| 欧美日韩国产片| 97成人超碰视| 国产一区欧美二区| 日韩精品一级中文字幕精品视频免费观看 | 久久99国产精品免费| 一区二区三区四区激情| 国产亚洲成aⅴ人片在线观看| 欧美日韩高清不卡| 色婷婷综合久色| 成人免费毛片a| 精品一区二区三区免费毛片爱| 亚洲国产精品久久不卡毛片| 欧美国产日韩精品免费观看| 日韩视频免费观看高清在线视频| 色老汉av一区二区三区| 97久久人人超碰| 不卡电影一区二区三区| 丁香天五香天堂综合|