因胸联盟 发表于 2015-2-3 23:53:14

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:27

写js我最烦的就是 ie 和 firefox下同样的代码 结果显示的结果千差万别,还是就是最好不要用遨游去调试,因为有时候遨游是禁用js的,有可能代码是争取结果被遨游折腾的认为是代码写错。

老尸 发表于 2015-2-8 19:56:36

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

愤怒的大鸟 发表于 2015-2-14 09:49:51

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

活着的死人 发表于 2015-2-17 11:25:39

不禁又想起那些说php是草根语言的人,为什么认得差距这么大呢。

变相怪杰 发表于 2015-2-17 16:35:29

找到的的资料很多都是在论坛里的,需要注册,所以我一般没到一个论坛都注册一个id,所有的id都注册成一样的,这样下次再进来的时候就不用重复注册啦。当然有些论坛的某些资料是需要的付费的。

不帅 发表于 2015-3-5 21:07:17

其实没啥难的,多练习,练习写程序,真正的实践比看100遍都有用。不过要熟悉引擎

柔情似水 发表于 2015-3-12 15:00:26

找到的的资料很多都是在论坛里的,需要注册,所以我一般没到一个论坛都注册一个id,所有的id都注册成一样的,这样下次再进来的时候就不用重复注册啦。当然有些论坛的某些资料是需要的付费的。

金色的骷髅 发表于 2015-3-19 23:16:41

有位前辈曾经跟我说过,phper 至少要掌握200个函数 编起程序来才能顺畅点,那些不熟悉的函数记不住也要一拿手册就能找到。所以建议新手们没事就看看php的手册(至少array函数和string函数是要记牢的)。

山那边是海 发表于 2015-3-20 01:09:18

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

兰色精灵 发表于 2015-3-27 19:10:42

先学习php和mysql,还有css(html语言很简单)我认为现在的效果比以前的方法好。

若相依 发表于 2015-4-1 13:09:07

先学习php和mysql,还有css(html语言很简单)我认为现在的效果比以前的方法好。

莫相离 发表于 2015-4-5 00:31:44

本人接触php时间不长,算是phper中的小菜鸟一只吧。由于刚开始学的时候没有名师指,碰过不少疙瘩,呗很多小问题卡过很久,白白浪费不少宝贵的时间,在次分享一些子的学习的心得。

飘飘悠悠 发表于 2015-4-16 21:09:22

你很难利用原理去编写自己的代码。对于php来说,系统的学习我认为还是很重要的,当你有一定理解后,你可你针对某种效果研究,我想那时你不会只是复制代码的水平了。

海妖 发表于 2015-4-18 11:32:43

你很难利用原理去编写自己的代码。对于php来说,系统的学习我认为还是很重要的,当你有一定理解后,你可你针对某种效果研究,我想那时你不会只是复制代码的水平了。

灵魂腐蚀 发表于 2015-4-23 17:14:09

建数据库表的时候,int型要输入长度的,其实是个摆设的输入几位都没影响的,只要大于4就行,囧。

深爱那片海 发表于 2015-4-27 15:19:12

你很难利用原理去编写自己的代码。对于php来说,系统的学习我认为还是很重要的,当你有一定理解后,你可你针对某种效果研究,我想那时你不会只是复制代码的水平了。

冷月葬花魂 发表于 2015-5-1 10:11:40

使用zendstdio 写代码的的时候,把tab 的缩进设置成4个空格是很有必要的

只想知道 发表于 2015-5-4 02:55:55

学习php的目的往往是为了开发动态网站,phper就业的要求也涵盖了很多。我大致总结为:精通php和mysql

精灵巫婆 发表于 2015-5-6 06:10:46

建数据库表的时候,int型要输入长度的,其实是个摆设的输入几位都没影响的,只要大于4就行,囧。
页: [1] 2
查看完整版本: PHP教程之php:树形布局的算法 4