仓酷云

标题: PHP教程之php:树形布局的算法 4 [打印本页]

作者: 因胸联盟    时间: 2015-2-3 23:53
标题: PHP教程之php:树形布局的算法 4
对我一点用处没有啊,我知道该怎么学,但是我想如何才能更快的学,一周速成,啊不,24小时速成那种,皮皮你有没?     <?php
  /**
  * 显示列表
  * @access public
  */
  function DispList()
  {
  //不缩进的显示体例
  // $this->mIsDispListIndex = true;
  // echo('<p align="right"><a href="?action=new&part=role">增添新脚色</a>  </p>'); _fcksavedurl=""?action=new&part=role">增添新脚色</a>  </p>');"
  //
  // $this->mListTitle = '用户脚色列表';
  // $this->SetDataOption('list');
  //
  // $this->SetQueryTable( array($this->mTableUserRole) );
  //
  // //查询按次
  // $this->SetQueryOrder( 'asc', $this->mTableUserRole, 'sequence' );
  //
  // $this->Query('list');
  // parent::DispList();
   
  // //别的一种显示体例,用数组作为仓库,A: 压栈时存role,压完就删除source
  // $this->CheckProperty('mrDb');
  // $this->CheckProperty('mrSql');
  // $this->mrSql->Select('role, title, parent');
  // $this->mrSql->From($this->mTableUserRole);
  // $this->mrSql->Orderby('parent, sequence');
  // $this->mRs = $this->mrDb->Execute($this->mrSql->Sql());
  // if (0 < count($this->mRs))
  // {
  // $source = & $this->mRs->GetArray(); //数字索引
  // $stack = array(''); //仓库
  // $stacki = array(-1); //和仓库对应,纪录仓库中数据在树中的条理
  // $target = array();
  // while (0 < count($stack))
  // {
  // $item = array_shift($stack);
  // $lev = array_shift($stacki);
  // if (!empty($item))
  // {
  // //在这里把加工过的数据放到target数组
  // array_push($target, str_repeat(' ', $lev) . $item);
  // //$s1 = str_repeat(' ', $lev) . $item;
  // }
  // $del = array(); //要从$source中删除的节点
  // $ar = array(); //需求添加到仓库中的节点
  // foreach ($source as $key=>$val)
  // {
  // //寻觅婚配的子节点
  // if (empty($item))
  // {
  // $find = empty($source[$key]['parent']);
  // }
  // else
  // {
  // $find = ($item == $source[$key]['parent']);
  // }
  // if ($find)
  // {
  // array_unshift($ar, $source[$key]['role']);
  // $del[] = $key;
  // }
  // }
  // foreach ($ar as $val)
  // {
  // array_unshift($stack, $val);
  // array_unshift($stacki, $lev + 1);
  // }
  // foreach ($del as $val)
  // {
  // unset($source[$val]);
  // }
  // echo(implode(', ', $stack) . '<br />' . implode(', ', $stacki) . '<br />' . implode(', ', $target) . '<br /><br />');
  // }
  // debug_array();
  // }
  // else
  // {
  // echo('<center>没有检索到数据</center>');
  // }
   
  //别的一种显示体例,用数组作为仓库,B: 压栈时存数组索引,出栈并利用完后再删除source
  $this->CheckProperty('mrDb');
  $this->CheckProperty('mrSql');
  $this->mrSql->Select('role, title, parent');
  $this->mrSql->From($this->mTableUserRole);
  $this->mrSql->Orderby('parent, sequence');
  $this->mRs = $this->mrDb->Execute($this->mrSql->Sql());
  if (!empty($this->mRs) && !$this->mRs->EOF)
  {
  $source = & $this->mRs->GetArray(); //数字索引
  $stack = array(-1); //仓库
  $stacki = array(-1); //和仓库对应,纪录仓库中数据在树中的条理
  $target = array();
  while (0 < count($stack))
  {
  $item = array_shift($stack);
  $lev = array_shift($stacki);
  if (-1 != $item)
  {
  //在这里把加工过的数据放到target数组
  $s1 = str_repeat(' ', $lev) . '<a href="?action=disp&part=role&role=' . $source[$item]['role'] . '">' . $source[$item]['title'] . '</a>';
  $s2 = '<a href="?action=edit&part=role&role=' . $source[$item]['role'] . '">编纂</a> <a href="?action=delete&part=role&role=' . $source[$item]['role'] . '">删除</a>';
  array_push($target, array($s1, $s2));
  }
  $del = array(); //要从$source中删除的节点
  $ar = array(); //需求添加到仓库中的节点
  foreach ($source as $key=>$val)
  {
  //寻觅婚配的子节点
  if (-1 == $item)
  {
  $find = empty($source[$key]['parent']);
  }
  else
  {
  $find = ($source[$item]['role'] == $source[$key]['parent']);
  }
  if ($find)
  {
  array_unshift($ar, $key);
  }
  }
  foreach ($ar as $val)
  {
  array_unshift($stack, $val);
  array_unshift($stacki, $lev + 1);
  }
  //从source中删除
  unset($source[$item]);
  //echo(implode(', ', $stack) . '<br />' . implode(', ', $stacki) . '<br />' . implode(', ', $target) . '<br /><br />');
  }
  //输入
  echo('<p align="right"><a href="?action=new&part=role">增添新脚色</a>  </p>');
  array_unshift($target, array('脚色', '操作'));
  $this->CheckProperty('mrLt');
  $this->mrLt->SetData($target);
  $this->mrLt->mListTitle = '用户脚色列表';
  $this->mrLt->mIsDispIndex = false;
  $this->mrLt->Disp();
  }
  else
  {
  echo('<center>没有检索到数据</center>');
  }
  } // end of function DispList
  ?>

要想从事软件开发工作,那么,还有很多的知识要学习,其实,不管是以后想去从事哪个工作,都需要自己去利用空闲的时间去不断的学习新的知识,不断的充实自己。
作者: 简单生活    时间: 2015-2-4 06:50
写js我最烦的就是 ie 和 firefox下同样的代码 结果显示的结果千差万别,还是就是最好不要用遨游去调试,因为有时候遨游是禁用js的,有可能代码是争取结果被遨游折腾的认为是代码写错。
作者: 老尸    时间: 2015-2-8 19:56
基础有没有对学习php没有太大区别,关键是兴趣。
作者: 愤怒的大鸟    时间: 2015-2-14 09:49
我还是强烈建议自己搭建php环境。因为在搭建的过程中你会遇到一些问题,通过搜索或是看php手册解决问题后,你会更加深刻的理解它们的工作原理,了解到php配置文件中的一些选项设置。
作者: 活着的死人    时间: 2015-2-17 11:25
不禁又想起那些说php是草根语言的人,为什么认得差距这么大呢。
作者: 变相怪杰    时间: 2015-2-17 16:35
找到的的资料很多都是在论坛里的,需要注册,所以我一般没到一个论坛都注册一个id,所有的id都注册成一样的,这样下次再进来的时候就不用重复注册啦。当然有些论坛的某些资料是需要的付费的。
作者: 不帅    时间: 2015-3-5 21:07
其实没啥难的,多练习,练习写程序,真正的实践比看100遍都有用。不过要熟悉引擎
作者: 柔情似水    时间: 2015-3-12 15:00
找到的的资料很多都是在论坛里的,需要注册,所以我一般没到一个论坛都注册一个id,所有的id都注册成一样的,这样下次再进来的时候就不用重复注册啦。当然有些论坛的某些资料是需要的付费的。
作者: 金色的骷髅    时间: 2015-3-19 23:16
有位前辈曾经跟我说过,phper 至少要掌握200个函数 编起程序来才能顺畅点,那些不熟悉的函数记不住也要一拿手册就能找到。所以建议新手们没事就看看php的手册(至少array函数和string函数是要记牢的)。
作者: 山那边是海    时间: 2015-3-20 01:09
建议加几个专业的phper的群,当然啦需要说话的人多,一处一点问题能有人回答你的,当然啦要让人回答你的问题,平时就得躲在里面聊天,大家混熟啦,愿意回答你问题的人自然就多啦。
作者: 兰色精灵    时间: 2015-3-27 19:10
先学习php和mysql,还有css(html语言很简单)我认为现在的效果比以前的方法好。
作者: 若相依    时间: 2015-4-1 13:09
先学习php和mysql,还有css(html语言很简单)我认为现在的效果比以前的方法好。
作者: 莫相离    时间: 2015-4-5 00:31
本人接触php时间不长,算是phper中的小菜鸟一只吧。由于刚开始学的时候没有名师指,碰过不少疙瘩,呗很多小问题卡过很久,白白浪费不少宝贵的时间,在次分享一些子的学习的心得。
作者: 飘飘悠悠    时间: 2015-4-16 21:09
你很难利用原理去编写自己的代码。对于php来说,系统的学习我认为还是很重要的,当你有一定理解后,你可你针对某种效果研究,我想那时你不会只是复制代码的水平了。
作者: 海妖    时间: 2015-4-18 11:32
你很难利用原理去编写自己的代码。对于php来说,系统的学习我认为还是很重要的,当你有一定理解后,你可你针对某种效果研究,我想那时你不会只是复制代码的水平了。
作者: 灵魂腐蚀    时间: 2015-4-23 17:14
建数据库表的时候,int型要输入长度的,其实是个摆设的输入几位都没影响的,只要大于4就行,囧。
作者: 深爱那片海    时间: 2015-4-27 15:19
你很难利用原理去编写自己的代码。对于php来说,系统的学习我认为还是很重要的,当你有一定理解后,你可你针对某种效果研究,我想那时你不会只是复制代码的水平了。
作者: 冷月葬花魂    时间: 2015-5-1 10:11
使用zendstdio 写代码的的时候,把tab 的缩进设置成4个空格是很有必要的
作者: 只想知道    时间: 2015-5-4 02:55
学习php的目的往往是为了开发动态网站,phper就业的要求也涵盖了很多。我大致总结为:精通php和mysql
作者: 精灵巫婆    时间: 2015-5-6 06:10
建数据库表的时候,int型要输入长度的,其实是个摆设的输入几位都没影响的,只要大于4就行,囧。




欢迎光临 仓酷云 (http://ckuyun.com/) Powered by Discuz! X3.2