扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
php 数据库设计
创新互联建站是一家集网站建设,长沙企业网站建设,长沙品牌网站建设,网站定制,长沙网站建设报价,网络营销,网络优化,长沙网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。
id title url pid leve
1 一级菜单 index.php 0 1
2 二级菜单 list.php 2 2
这种格式的 可以无限级分类
取数据的时候 按level 取 几级就是几级 ,
循环的话 就是先 循环 level=1的分类,然后再循环里面套小循环
这是最基本的方法
还有一种就是
自定义函数 生成tree 树形结构 最后用css, js美化加特效
本文只需要读者具备PHP、HTML的初步知识就可以基本读懂了。 译文:如大家所知PHP对于用数据库驱动的网站(making database-driven sites)来讲可谓功能强大,可是我们是否可以用它来做点其他事情呢?PHP给了我们所有我们期望的工具:for与while的循环结构、数学运算等等,还可以通过两种方式来引用文件:直接引用或向服务器提出申请。其实何止这些,让我们来看一个如何用它来做导航条的例子:完整的原代码:!—— This "?" is how you indicate the start of a block of PHP code, —— ?PHP # and this "#" makes this a PHP comment. $full_path = getenv("REQUEST_URI"); $root = dirname($full_path);$page_file = basename($full_path);$page_num = substr($page_file, strrpos($page_file, "_") + 1, strpos($page_file, ".html") - (strrpos($page_file, "_") + 1)); $partial_path = substr($page_file, 0, strrpos($page_file, "_")); $prev_page_file = $partial_path . "_" . (string)($page_num-1) . ".html";$next_page_file = $partial_path . "_" . (string)($page_num+1) . ".html"; $prev_exists = file_exists($prev_page_file);$next_exists = file_exists($next_page_file); if ($prev_exists) { print "a href="$root/$prev_page_file"previous/a";if ($next_exists) { print " | ";} if ($next_exists) { print "a href="$root/$next_page_file"next/a";} ?//原程序完。 代码分析:OK! 前面做了足够的铺垫工作,现在让我们来看看如何来用PHP来完成这项工作: !—— This "?" is how you indicate the start of a block of PHP code, —— ?PHP # and this "#" makes this a PHP comment. $full_path = getenv("REQUEST_URI"); $root = dirname($full_path);$page_file = basename($full_path); /* PHP函数getenv()用来取得环境变量的值,REQUEST_URI的值是紧跟在主机名后的部分URL,假如URL是, 那它的值就为/dinner/tuna_1.html. 现在我们将得到的那部分URL放在变量$full_path中,再用dirname()函数来从URL中抓取文件目录,用basename()函数取得文件名,用上面的例子来讲dirname()返回值:/dinner/;basename()返回:tuna_1.html.接下来的部分相对有些技巧,假如我们的文件名以story_x的格式命名,其中x代表页码,我们需要从中将我们使用的页码抽出来。当然文件名不一定只有一位数字的模式或只有一个下划线,它可以是tuna_2.html,同样它还可以叫做tuna_234.html甚至是candy_apple_3.html,而我们真正想要的就是位于最后一个“_”和“。html”之间的东东。可采用如下方法:*/ $page_num = substr($page_file, strrpos($page_file, "_") + 1, strpos($page_file, ".html") - (strrpos($page_file, "_") + 1));/* substr($string, $start,[$length] )函数给了我们字符串$string中从$start开始、长为$length或到末尾的字串(方括号中的参数是可选项,如果省略$length,substr就会返回给我们从$start开始直到字符串末尾的字符串),正如每一个优秀的C程序员告诉你的那样,代表字符串开始的位置开始的数字是“0”而不是“1”。 函数strrpos($string, $what)告诉我们字符串$what在变量$string中最后一次出现的位置,我们可以通过它找出文件名中最后一个下划线的位置在哪,同理,接着的strpos($string, $what)告诉我们“。html”首次出现的位置。我们通过运用这三个函数取得在最后一个“_”和“。html”之间的数字(代码中的strpos()+1代表越过“_”自己)。 剩下的部分很简单,首先为上页和下页构造文件名:*/ $partial_path = substr($page_file, 0, strrpos($page_file, "_")); $prev_page_file = $partial_path . "_" . (string)($page_num-1) . ".html";$next_page_file = $partial_path . "_" . (string)($page_num+1) . ".html"; /*(string)($page_num+1)将数学运算$page_num+1的结果转化为字符串类型,这样就可以用来与其他字串最终连接成为我们需要的文件名。 */ /*现在检查文件是否存在(这段代码假设所有的文件都位于同样的目录下),并最终给出构成页面导航栏的HTML代码。
!DOCTYPE html
html
head
meta charset="UTF-8"
title/title
!--页面关键词--
meta name="keywords" content=""
!--页面描述--
meta name="description" content=""
!--使用 viewport meta 标签在手机浏览器上控制布局--
meta name="viewport" content="width=device-width, initial-scale=1"
link href="css/font-awesome.min.css" rel="stylesheet"
!--[if lt IE 9]
script src="js/html5shiv.js"/script
script src="js/respond.min.js"/script
![endif]--
script src='js/bootstrap.min.js'/script
script src='js/parsley.min.js'/script
script src='js/common.js'/script
script src="js/jquery-latest.js"/script
!--jQuery更改class的值--
script
switch (window.location.pathname) {
/* case"/":*/
case"/Index.php":
$("#topbar_Index").addClass("active");
break;
case"/Product.php":
$("topbar_Product").addClass("active");
break;
case"/Service.php":
$("topbar_Service").addClass("active");
break;
case"/About.php":
$("topbar_About").addClass("active");
break;
case"/Business.php":
$("topbar_Business").addClass("active");
break;
case"/Contact.php":
$("topbar_Contact").addClass("active");
break;
default :
break;
}
/script
script
jQuery(window).scroll(function () {
var top = jQuery(document).scrollTop();
if (top 30) {
jQuery('.main-menu').addClass('tiny');
} else {
jQuery('.main-menu').removeClass('tiny');
}
});
/script
/head
body
!--导航开始 --
div class="navbar navbar-default navbar-fixed-top main-menu" role="navigation"
div class="container"
div class="navbar-header"
button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse"
span class="sr-only"菜单/span
span class="icon-bar"/span
span class="icon-bar"/span
span class="icon-bar"/span
/button
a class="navbar-brand" href="Index.php" title="点击回到首页"img src='images/blank.png'
alt="Website Design Dubai"/a
/div
div class="navbar-collapse collapse"
ul class="nav navbar-nav navbar-right"
li class='' id="topbar_Index"a href="Index.php"首 页/a/li
li class='' id="topbar_Product"a href="Product.php"产 品/a/li
li class='' id="topbar_Service"a href="Service.php"服 务/a/li
li class='' id="topbar_About"a href="About.php"关于我们/a/li
li class='' id="topbar_Business"a href="Business.php"加盟方式/a/li
li class='' id="topbar_Contact"a href="Contact.php"联系/a/li
/ul
/div
/div
/div
!--导航结束 --
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流