冷月葬花魂 发表于 2015-2-4 00:07:43

PHP教程之用PHP完成多级树型菜单

刚开始觉得自己对这些多少有些基础,很简单,但是看了老师那么熟练的进行网页布局的时候,突然之间发现,其实,我的基础并没有自己想像的那么好,自己设计的页面其实并不好看,就连表格的边框为1像素都不会弄。   <?   
//树型目次布局模板法式   
//菜单目次库字段申明:   
//menu_id 菜单项目 id   
//menu 菜单称号   
//menu_grade 菜单品级 1 为主菜单 2 为二级菜单 ........   
//menu_superior 上一级菜单 id 号   

function my_menu($menu_content,$i,$menu_grade_temp,$menu_superior_temp)   
{   
    global $PHP_SELF;   
    $temp1=$menu_grade_temp+1;   
    $menu_superior_temp_array=split("/",$menu_superior_temp);   
    for ($t=0;$t<$i;$t++)   
    {   
      $menu_array=split("/",$menu_content[$t]);   
      If(($menu_array==$menu_grade_temp)&&($menu_array==$menu_superior_temp_array[$menu_grade_temp-1]))   
      {   
      for($p=1;$p<=$menu_grade_temp;$p++){echo "";}   
      $temp3=$menu_superior_temp_array;   
      $temp3[$menu_grade_temp]=$menu_array;   
      $temp2=implode("/",$temp3);   
      if ($menu_array==$menu_superior_temp_array[$temp1-1])   
      {   
          $temp5=$temp1-1;   
          $temp3[$menu_grade_temp]="";   
          $temp6=implode("/",$temp3);   
          echo "<a href="$PHP_SELF?menu_grade_temp=".$temp5."&menu_superior_temp=$temp6">$menu_array</a><br>";   
          my_menu($menu_content,$i,$temp1,$temp2);   
      }   
      else   
      {   
          $temp3[$menu_grade_temp+1]="";   
          $temp6=implode("/",$temp3);   
          echo "<a href="$PHP_SELF?menu_grade_temp=".$temp1."&menu_superior_temp=$temp6">$menu_array</a><br>";   
      }   
      }   
    }   
}   
// 毗连 MySql 数据库   
$db_host="localhost";   
$db_user="dkj";   
$db_password="123";   
$db_name="test";   
mysql_connect($db_host,$db_user,$db_password);   
mysql_select_db($db_name);   

//从数据库中获得数据   
$query_string="select * from menu order by menu_grade";   
$db_data=mysql_query($query_string);   

//第一次履行初始化   
if ($menu_grade_temp=="")   
{   
    $menu_superior_temp=0;   
}   

//将一切的信息读入数组,并统计数组个数   
$i=0;   
while (list($menu_id,$menu,$menu_grade,$menu_superior)=mysql_fetch_row($db_data))   
{   
    $menu_content[$i]=$menu_id."/".$menu."/".$menu_grade."/".$menu_superior;   
    $i++;   
}   
my_menu($menu_content,$i,1,$menu_superior_temp);   

/* 附数据库布局及摹拟数据   
# phpMyAdmin MySQL-Dump   
#   
# 主机: localhost 数据库 : test   
# --------------------------------------------------------   
   
#   
# 数据表的布局 'menu'   
#   

CREATE TABLE menu (   
menu_id int(11) NOT NULL auto_increment,   
menu varchar(20) NOT NULL,   
menu_grade int(11) NOT NULL,   
menu_superior int(11) NOT NULL,   
UNIQUE menu_id (menu_id)   
);   

#   
# 导出上面的数据库内容 'menu'   
#   

INSERT INTO menu VALUES( '1', '盘算机', '1', '0');   
INSERT INTO menu VALUES( '2', '编程', '2', '1');   
INSERT INTO menu VALUES( '3', '收集', '2', '1');   
INSERT INTO menu VALUES( '4', 'PHP与MySql', '3', '2');   
INSERT INTO menu VALUES( '5', 'C言语', '3', '2');   
INSERT INTO menu VALUES( '6', '网页制造', '3', '3');   
INSERT INTO menu VALUES( '7', 'TCP、IP协定', '3', '3');   
INSERT INTO menu VALUES( '8', '数学', '1', '0');   
INSERT INTO menu VALUES( '9', '初等数学', '2', '8');   
INSERT INTO menu VALUES( '10', '线性代数', '3', '9');   
INSERT INTO menu VALUES( '11', '团圆数学', '3', '9');   
INSERT INTO menu VALUES( '12', '初等数学', '2', '8');   
INSERT INTO menu VALUES( '13', '文学', '1', '0');   
INSERT INTO menu VALUES( '14', '中国文学', '2', '13');   
INSERT INTO menu VALUES( '15', 'php', '4', '4');   
INSERT INTO menu VALUES( '16', 'mysql', '4', '4');   
*/   
?>我先把我自己学习PHP的过程做一下概括:

柔情似水 发表于 2015-2-4 02:59:20

我要在声明一下:我是个菜鸟!!我对php这门优秀的语言也是知之甚少。但是我要在这里说一下php在网站开发中最常用的几个功能:

灵魂腐蚀 发表于 2015-2-7 10:00:11

php里的数组为空的时候是不能拿来遍历的;(这个有点低级啊,不过我刚被这个边界问题墨迹了好长一会)

admin 发表于 2015-2-12 09:38:46

曾经犯过一个很低级的错误,我在文件命名的时候用了一个横线\\\\\\\'-\\\\\\\' 号,结果找了好几个小时的错误,事实是命名的时候 是不能用横线 \\\\\\\'-\\\\\\\' 的,应该用的是下划线\\\\\\\'_\\\\\\\' ;

活着的死人 发表于 2015-3-3 00:50:01

基础有没有对学习php没有太大区别,关键是兴趣。

若天明 发表于 2015-3-4 12:00:06

环境搭建好,当你看见你的浏览器输出“it works\\\\\\\"时你一定是喜悦的。在你解决问题的时候,我强烈建议多读php手册。

透明 发表于 2015-3-17 03:07:51

当留言板完成的时候,下步可以把做1个单人的blog程序,做为目标,

金色的骷髅 发表于 2015-3-23 16:53:05

建议加几个专业的phper的群,当然啦需要说话的人多,一处一点问题能有人回答你的,当然啦要让人回答你的问题,平时就得躲在里面聊天,大家混熟啦,愿意回答你问题的人自然就多啦。

若相依 发表于 2015-3-24 21:06:01

最后介绍一个代码出错,但是老找不到错误方法,就是 go to wc (囧),出去换换气没准回来就找到错误啦。

精灵巫婆 发表于 2015-3-26 13:08:51

最后介绍一个代码出错,但是老找不到错误方法,就是 go to wc (囧),出去换换气没准回来就找到错误啦。

仓酷云 发表于 2015-3-26 19:38:41

最后介绍一个代码出错,但是老找不到错误方法,就是 go to wc (囧),出去换换气没准回来就找到错误啦。

飘飘悠悠 发表于 2015-4-1 01:04:47

作为一个合格的coder 编码的规范是必须,命名方面我推崇“驼峰法”,另外就是自己写的代码最好要带注释,不然时间长了,就算是自己的代码估计看起来都费事,更不用说别人拉。

再见西城 发表于 2015-4-1 10:10:21

在我安装pear包的时候老是提示,缺少某某文件,才发现 那群extension 的排列是应该有一点的顺序,而我安装的版本的排序不是正常的排序。没办法我只好把那群冒号加了上去,只留下我需要使用的扩展。

愤怒的大鸟 发表于 2015-4-2 06:02:53

作为一个合格的coder 编码的规范是必须,命名方面我推崇“驼峰法”,另外就是自己写的代码最好要带注释,不然时间长了,就算是自己的代码估计看起来都费事,更不用说别人拉。

深爱那片海 发表于 2015-4-13 23:38:06

本文当是我的笔记啦,遇到的问题随时填充

因胸联盟 发表于 2015-4-15 07:08:10

我还是强烈建议自己搭建php环境。因为在搭建的过程中你会遇到一些问题,通过搜索或是看php手册解决问题后,你会更加深刻的理解它们的工作原理,了解到php配置文件中的一些选项设置。

飘灵儿 发表于 2015-5-11 00:47:55

我还是推荐用firefox ,配上firebug 插件调试js能省下不受时间。谷歌的浏览器最好也不少用,因为谷歌的大侠们实在是太天才啦,把一些原来的js代码加了一些特效。

小魔女 发表于 2015-6-21 21:31:37

因为blog这样的可以让你接触更多要学的知识,可以接触用到类,模板,js ,ajax

兰色精灵 发表于 2015-6-30 00:56:02

在学习的过程中不能怕麻烦,不能有懒惰的思想。学习php首先应该搭建一个lamp环境或者是wamp环境。这是学习php开发的根本。虽然网络上有很多集成的环境,安装很方便,使用起来也很稳定、

不帅 发表于 2015-7-14 03:10:47

使用zendstdio 写代码的的时候,把tab 的缩进设置成4个空格是很有必要的
页: [1]
查看完整版本: PHP教程之用PHP完成多级树型菜单