国产午夜成人免费看片无遮挡_日本免费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>

        精品久久久久久久人人人人传媒| 国产亚洲精品中文字幕| 91麻豆国产自产在线观看| 日本一区二区三级电影在线观看| 国产乱子伦视频一区二区三区| 久久婷婷色综合| 成人一道本在线| 亚洲黄色av一区| 69av一区二区三区| 久久精品国产在热久久| 欧美日韩一卡二卡三卡| 欧美国产精品专区| 成人精品小蝌蚪| 亚洲电影一区二区三区| 精品少妇一区二区三区在线视频 | 欧美年轻男男videosbes| 日韩制服丝袜av| 精品成人佐山爱一区二区| av不卡在线观看| 视频一区在线视频| 中文字幕免费观看一区| 欧美日本一道本| 成人丝袜高跟foot| 看电视剧不卡顿的网站| 亚洲午夜在线电影| 日本一区二区三区电影| 91麻豆精品国产91久久久资源速度| 麻豆91小视频| 亚洲成人在线网站| 国产精品传媒在线| 久久免费电影网| 7777精品伊人久久久大香线蕉经典版下载 | 亚洲欧洲精品一区二区三区不卡| 欧美三级电影在线看| 成人av在线一区二区三区| 日韩电影一区二区三区| 自拍偷拍国产亚洲| 精品国产露脸精彩对白| 欧美老年两性高潮| 色综合视频一区二区三区高清| 国产制服丝袜一区| 理论片日本一区| 亚洲成av人片| 一级日本不卡的影视| 中文字幕不卡一区| 中文字幕免费观看一区| 精品国产在天天线2019| 日韩精品一区二区三区中文精品| 欧美人体做爰大胆视频| av一区二区三区在线| 国产福利91精品一区二区三区| 日韩国产精品91| 亚洲国产视频a| 一区二区三区欧美| 国产精品国产a| 国产精品天美传媒沈樵| 久久久久国色av免费看影院| 精品国产精品一区二区夜夜嗨| 日韩免费看网站| 日韩一级免费一区| 91精品国产91久久久久久一区二区| 欧美日韩国产高清一区二区三区 | 久久成人免费电影| 精品一区精品二区高清| 国产成人精品亚洲午夜麻豆| 国产一区二区三区| 成人美女在线观看| 日本高清不卡一区| 欧美日韩视频第一区| 日韩精品资源二区在线| 日韩欧美中文字幕公布| 国产欧美一区二区精品性色| 欧美国产精品一区二区| 亚洲另类在线制服丝袜| 午夜视频一区二区三区| 久久国产精品99精品国产| 国产a区久久久| 一本色道综合亚洲| 欧美日韩国产首页在线观看| 欧美一区二区三区日韩视频| 精品久久久久久无| 国产精品丝袜91| 亚洲男人都懂的| 三级欧美韩日大片在线看| 精品亚洲aⅴ乱码一区二区三区| 国产一区二区看久久| 91麻豆福利精品推荐| 欧美日韩大陆一区二区| 国产蜜臀97一区二区三区| 亚洲国产婷婷综合在线精品| 91国偷自产一区二区三区观看| 日本福利一区二区| 欧美夫妻性生活| 久久精品欧美一区二区三区麻豆| 国产精品乱人伦中文| 亚洲3atv精品一区二区三区| 国产九色sp调教91| 欧美午夜免费电影| 久久一区二区三区国产精品| 亚洲精品菠萝久久久久久久| 国产在线播放一区三区四| 在线免费观看日本欧美| 久久久久久久久久久黄色| 亚洲成人中文在线| 国产白丝网站精品污在线入口| 欧美精品色一区二区三区| 亚洲国产高清aⅴ视频| 日韩电影一区二区三区| 色婷婷久久久久swag精品| 国产清纯在线一区二区www| 亚洲mv在线观看| 色噜噜久久综合| 亚洲同性同志一二三专区| 国产福利电影一区二区三区| 欧美成人乱码一区二区三区| 亚洲香肠在线观看| 在线免费视频一区二区| 中文字幕不卡一区| 三级影片在线观看欧美日韩一区二区| 色综合咪咪久久| 精品国产免费一区二区三区四区 | 国产一区二区三区蝌蚪| 成人a级免费电影| 日韩精品一区二区三区四区视频| 亚洲小说春色综合另类电影| 一本久久a久久免费精品不卡| 中文av一区二区| 国产精品99久久久久久久vr| 欧美成人在线直播| 亚洲亚洲精品在线观看| 色婷婷av一区二区三区gif| 国产午夜精品久久| 秋霞电影网一区二区| 欧美影片第一页| 亚洲国产中文字幕在线视频综合| 色哟哟国产精品| 亚洲女同ⅹxx女同tv| 中文字幕成人网| 福利视频网站一区二区三区| 久久午夜电影网| 国产毛片精品一区| 亚洲国产精品99久久久久久久久 | 成人黄色大片在线观看| 9191久久久久久久久久久| 丝袜美腿亚洲一区| 国产日韩欧美精品电影三级在线| 色婷婷综合视频在线观看| 欧美日韩三级一区二区| 6080国产精品一区二区| xf在线a精品一区二区视频网站| 久久精品亚洲麻豆av一区二区 | 国产亚洲一区二区三区| 亚洲色图在线视频| 亚洲一级二级在线| 国内成+人亚洲+欧美+综合在线| 欧美videos中文字幕| 国产精品夜夜爽| 午夜日韩在线电影| 亚洲一区二区三区四区在线观看| 一区二区三区在线观看网站| 日本欧美一区二区三区乱码| 狠狠狠色丁香婷婷综合久久五月| av在线播放一区二区三区| 欧美日韩国产高清一区二区 | 亚洲欧美激情在线| 蜜臀av国产精品久久久久| 不卡一区二区三区四区| 欧美在线观看你懂的| 久久亚洲综合av| 三级久久三级久久久| 国产成人av一区二区三区在线观看| 国产精品一二三四区| 91麻豆swag| 日本丶国产丶欧美色综合| 精品制服美女久久| 美女视频黄a大片欧美| 国产做a爰片久久毛片| 91年精品国产| 国产亚洲人成网站| 蜜臀久久久久久久| 一本色道亚洲精品aⅴ| 日韩欧美一级二级| 这里只有精品免费| 亚洲美女偷拍久久| 成人精品在线视频观看| 日韩欧美激情四射| 亚洲影视在线播放| 色婷婷综合久久久久中文一区二区| 欧美韩日一区二区三区四区| 视频一区免费在线观看| 久久久三级国产网站| 欧美成人国产一区二区| 久久精品免费看| 久久亚洲一区二区三区四区| 在线观看一区二区精品视频| 中文字幕一区二区不卡| 99九九99九九九视频精品| 91精品久久久久久久久99蜜臂| 中文字幕精品一区二区精品绿巨人 | 亚洲成在线观看|