当前位置:  编程技术>php
本页文章导读:
    ▪帖几个PHP的无限分类实现想法~       1、做网站的一般都会遇到处理分类的问题, 偶来帖几个处理无限分类的例子数据库的结构很简单: id, fatcher_id, name, ...... 这样的设计短小精悍,完全满足3NF..可以完全绝大多数要求,OK,让偶.........
    ▪PHP+MYSQL开发工具及资源收藏       PHP编辑工具DzSoftPHPEditor    专为 PHP 所设计的网页程序编辑软件,具有 PHP 编辑、侦错、浏览、原始码检视、档案浏览、可自订的原始码样本等功能,无须架设网站主机就可以测试 PHP 下载地.........
    ▪分享PHP入门的学习方法       每个人的学习方式不同,写这篇文章的目的是分享一下自己的学习过程,仅供参考,不要一味的用别人的学习方法,找对自己有用的学习方式原创:negoo(方晓)来源:http://phpinsider.cn经常在某.........

[1]帖几个PHP的无限分类实现想法~
    来源: 互联网  发布时间: 2013-11-30
1、做网站的一般都会遇到处理分类的问题, 偶来帖几个处理无限分类的例子
数据库的结构很简单:
id, fatcher_id, name, ......
这样的设计短小精悍,完全满足3NF..可以完全绝大多数要求,OK,让偶们看看这种数据库结构下的程序实现.

1.递归查询数据库
最要命的做法~也是最好实现的做法
  类别1
    类别1.1
      类别1.1.1
    类别1.2
  类别2
    类别2.1
  类别3
    类别3.1
    类别3.2
......
为了生成这样的目录结构,程序递归一次就查询一次数据库,在您任何涉及分类的地方(翻页,查询....),数据库都会悲壮地操作硬盘....阿门~so~跳一下吧...
2.查询一次数据库,递归数组生成以上目录结构
帖一个大致的思路
function SelectList(&$Data, $RootID = 0')
{
     for($i = 0; $i < count($Data); $i++)
     {
           if($Data[$i]['UID'] == $RootID)
           {
                 ......//处理,直接生成HTML或者保存入数组都OK啦
                 $this->SelectRecursion($Data, $Data[$i]['ID'], $blank, $Match);
           }
     }
     return $this->Output;
}
这种强度的递归一般的网站系够用啦~不过碰到BT点的,有几K甚至上W的分类,递归一遍可能要百毫秒以上,在考虑并发的情况下....呵呵~我们再跳一下吧
3.查询一次数据库,非递归生成目录结构
这一步,程序的技巧来了~只对结果遍历一次就能生成上面那样的目录结构,想要把它格式化成网页的显示样式就很方便咯~下面的系别人写的,偶试过完全可行
function GetArray($RootID = 0)
{
     $Data      = array();

     $Data      = $tblObj->MapResult($tblObj->Select());

    $Output = Array();
    $i = 0;
    $len = Count($Data);
    if($RootID)
    {
        while($Data[$i]['UID'] != $RootID && $i < $len)      $i++;
    }
    $UpID   = $RootID;     //上个节点指向的分类父ID
    for($cnt = Count($Data); $i < $cnt;)   //历遍整个分类数组
    {
        $j = 0;     //初始化此次分类下子分类数据计数
        if ($UpID == $RootID)   //在第一次循环时将所有一级分类保存到$Output这个数组中
        {
          while($Data[$i]['UID'] == $UpID && $i < $len) //判断上一个节点是否为兄弟节点
          {
            $Output[$j] = $Data[$i];                   //保存该节点到Output这个数组中
            $tmp[$Data[$i]['ID']] = &$Output[$j]; //并且将该节点ID在Output中的位置保存起来.
            $i++;
            $j++;
          }
        }
        else
        {
          while($Data[$i]['UID'] == $UpID && $i < $len)
          {
            if($tmp[$UpID])
            {
                $tmp[$UpID]['Child'][$j] = $Data[$i];
                $tmp[$Data[$i]['ID']] = &$tmp[$UpID]['Child'][$j];   //保存该节点ID在Output中的位置
            }
            $i++;
            $j++;
          }
        }
        $UpID = $Data[$i]['UID'];
    }
    return $Output;
  }

程序看着好累人啊~这段代码的效率比上一段快了十几倍呢,强度系够大了...
不过....90%的网站用这样的代码都浪费啦~偶遇到过的网站分类一般都在四级以下,那么,还能再优化一下么?........再....再跳一下吧..
4.从数据库入手~
稍微改动一下数据库的结构,加一个layer的冗余字段,这个是db desing高手想出来的,偶把他帖出来而已
id         name       father_id       layer
1         总类别       0           000000
2         类别1           1           010000
3         类别1.1         2           010100
4         类别1.2         2           010200
5         类别2           1           020000
6         类别2.1         5           020100
7         类别3           1           030000
8         类别3.1         7           030100
9         类别3.2         7           030200
10         类别1.1.1         3           010101

现在按layer的大小来检索一下:SELECT * FROM Type_table_2 ORDER BY type_layer

列出记录集如下:

id         name       father_id       layer
1         总类别       0           000000
2         类别1           1           010000
3         类别1.1         2           010100
10         类别1.1.1         3           010101
4         类别1.2         2           010200
5         类别2           1           020000
6         类别2.1         5           020100
7         类别3           1           030000
8         类别3.1         7           030100
9         类别3.2         7           030200

看见了么~一次查询连目录结构都生成好咯~,这样程序就轻松很多了,只是多了维护layer字段的工作,这个例程中layer字段每一级能处理99个分类,如果有BT的应用,改大些就行了,呵呵,先分析你的需求吧

OK~OVER~闪人~

    
[2]PHP+MYSQL开发工具及资源收藏
    来源: 互联网  发布时间: 2013-11-30
PHP编辑工具
DzSoftPHPEditor
    专为 PHP 所设计的网页程序编辑软件,具有 PHP 编辑、侦错、浏览、原始码检视、档案浏览、可自订的原始码样本等功能,无须架设网站主机就可以测试 PHP
下载地址:
http://down.chinaz.com/s/8174.asp

EngInSitePHPEditor

    一款允许创建、编辑、运行和调试 PHP4 或 PHP5 脚本的软件
下载地址:
http://down.chinaz.com/s/15075.asp

PHPExpertEditor4
  一个容易使用的 PHP 开发工具,它的功能照顾到初级者及专业开发人员,内建 http server 用作测试及除错(你也可以使用其他 http server),PHP 语法检查,FTP 功能等功能

下载地址:
http://down.chinaz.com/s/17209.asp


EditPlus

    一套功能强大,可取代记事本的文字编辑器,拥有无限制的 Undo/Redo、英文拼字检查、自动换行、列数标记、搜寻取代、同时编辑多文件、全屏幕浏览功能。而它还有一个好用的功能,就是它有监视剪贴簿的功能,能够同步于剪贴簿自动将文字贴进 EditPlus 的编辑窗口中,让你省去做贴上的步骤。另外它也是一个好用的 HTML 编辑器,除了可以颜色标记 HTML Tag (同时支持 C/C++、Perl、Java) 外,还内建完整的 HTML 和 CSS1 指令功能,对于习惯用记事本编辑网页的朋友,它可帮你节省一半以上的网页制作时间,若你有安装 IE 3.0 以上版本,它还会结合 IE 浏览器于 EditPlus 窗口中,让你可以直接预览编辑好的网页 (若没安装 IE,也可指定浏览器路径)。
下载地址:http://down.chinaz.com/s/16183.asp

ZEND Studio

    一个屡获大奖的专业 PHP 集成开发环境,具备功能强大的专业编辑工具和调试工具,支持PHP语法加亮显示,支持语法自动填充功能,支持书签功能,支持语法自动缩排和代码复制功能,内置一个强大的PHP代码调试工具,支持本地和远程两种调试模式,支持多种高级调试等功能
下载地址:
http://down.chinaz.com/s/2635.asp



PHP环境搭建




mysql管理工具
phpmyadmin

    一个用PHP编写的,可以通过互联网控制和操作MySQL,通过phpMyAdmin可以完全对数据库进行操作,例如建立、复制、删除、导出、导入数据等
下载地址:http://www.phpmyadmin.net


mysqlcc
MySQL Control Center(MySQLCC) 是 MySQL 数据库服务器的交互式图形化界面管理工具,也就是 GUI 图形使用者介面型态的软件。主要特性包括多文档界面,语法突出,拖拽方式的数据库和表格,可编辑/可增加/删除的域,可编辑/可插入/删除的记录,可显示的成员,可执行的SQL 脚本,提供与外程序接口,保存数据到CSV文件等
下载:
http://www.baidu.com/s?wd=mysqlcc%CF%C2%D4%D8

SQLyog
SQLyog 是一个简洁高效功能强大的,GUI 图形化用户管理接口的 MySQL 数据库管理工具。使用 SQLyog 可以让您从世界的任何角落透过网络来维护远端的 MySQL 数据库。相比类似的 MySQL 数据库管理工具其有如下特点:
  1、方便快捷的数据库同步与数据库结构同步工具;
  2、易用的数据库、表的备份与还原功能;
  3、数据导入与导出为XML、HTML、CSV等多种格式;
  4、直接运行大的SQL脚本文件,速度极快;
  SQLyog第一个开源版本可以从Webyog官方网站下载。
http://www.webyog.com/en/downloads.php

Navicat MySQL

Navicat MySQL Windows版7.2.6发布,增加了对HTTP通道的支持和外键数据选取的功能。 Navicat MySQL是一套适用于MySQL数据库系统的图形化数据库管理、报告以及监控的工具,具有高性能的、商业智能的、强大的备份功能等特点。 此次更新的功能包括: 1、增加HTTP通道支持 增加了可以通过HTTP协议访问MySQL服务器。只需要上传指定的名为ntunnel_mysql.php的文件到web服务器就可以。 2、支持外键数据选择 Table视图增加通过外键数据参考表得到指定的数据。 官方网站http://pgsql.navicat.com/news.html?yr=2006&mth=9

    
[3]分享PHP入门的学习方法
    来源: 互联网  发布时间: 2013-11-30
每个人的学习方式不同,写这篇文章的目的是分享一下自己的学习过程,仅供参考,不要一味的用别人的学习方法,找对自己有用的学习方式

原创:negoo(方晓)
来源:http://phpinsider.cn

经常在某些论坛和QQ群里看到一些朋友会问“怎样才能学好PHP,怎样才能学好***语言 ”,但别人回答最多的是:从最“简单”的开始。 

这个简单也许真的不简单,呵呵。下面我想分享一下自己学习的一些过程。
先说些费话,语言组织能力差,说了不少费话,愿意看的就看,不要骂我就行

其实学习一门新语言并不是太难,重要的是你有没有准备好去学好它,时间的长短和个人的能力和决心有关。黑客界也流行一句话就是“没有入侵不了的计算机”,这句话大概的意思是说:如果你的技术比维护这台计算机的管理员更胜一筹,那么就能拿下这台计算机甚至能拿下这个管理员管理的所有计算机,如果技不如人,只能继续学习超过对方。我说这些话的意思就是让准备学习陌生语言朋友一定要下决心去学习,只要你下了决心去学了,就一定能学好,千万不要半途而废。(退一万步来说,即使是没学好,但你懂的必然比别人多)

了解什么是最简单:

1、网页的基本构成就是html代码,所以必须熟悉HTML/CSS/JS等基本元素
2、熟悉PHP语法,了解PHP和HTML的运行方式,学习将PHP与HTML结合完成简单页面

PHP手册是比较好的入门老师,PHP官方写的手册不会比市场上的教程差
.....

影响学习进度和程序强大是否的几个可能因素:
1、记忆力
一门语言的强大是否,应该看它的函数库和代码执行效率。
每门语言都是有自己强大的函数库,要学好它,就必须得花很多的时间去记忆,良好的记忆力能使学习达到事半功倍的效果。

2、数学和逻辑思维
这个当然不是绝对影响,因为看开发项目的复杂程度。
小的项目不需要太多的数学和逻辑思维能力,但如果是开发类似于财务或大量运算相关项目,这一点就是非常重要了。

3、有其它语言的基础
“一通百通”,这句话的道理也是不容置疑。都说有C语言基础的人,学习PHP比较容易,我没学过C语言,所以不知道这句话的效果

4、多看别人写的代码
学习别人的长处,补自己的不足,当然不完全为这个
我始终相信:一个有组织的团队写出来的程序不会比个人差
我PHP入门就是从看代码开始的,我喜欢看别人写的代码(入门是从disucz,PHPWind和国外的phpbb看起,还有就是目前最流行的开源BLOG程序),我尽可能的收集网络上的PHP开源程序,到目前为止,我收集并下载的PHP开源程序有2GB大小,包括BBS,BLOG,CMS等。我下载并不是为了收藏他们,是学习他们的编程方式和实现方法,如果自己想实现的功能不知道怎么去实现,我就会学习他们的实现方法,并不是抄袭代码,最终结果是想通过学习,将技术变成属于自己的
ASP我也是以同样的方式学习的(动易和讯的程序及其它ASP开源程序)

5、实践
理论固然重要,但实践必不可少。你理论知识再好,如果不实践,就不能看到理论所产生的结果或效果,并不能使你的记忆深刻,所以不能纸上谈兵

6、恒心
广告不是有句话是这样说的么:“世界上最高的山是自己”,这句话相信朋友们都能理解
过自己这关,其它的都好办


7、找对自己有用的学习方式
这条可以参照4,我的入门是从看代码开始
可能有朋友会问:“一开始看那些强大的代码,你能看懂么?”
我的学习方式是从“使用”学“函数”:PHP的函数太多,短时间不可能记住所有的函数,因为我相信,一个大的项目肯定会使用常见和必须的函数,找到这些函数,才会有重点的学习这些函数,难道你能说写BBS的函数会比写BLOG用的函数少么?难道会写BBS还不会写BLOG么?
找对学习方式是要经过多种学习方式的尝试,所以这个只有自己把握,毕竟每个人的学习方式不一样


8、尽可能的找视屏教程看
别人说十句,还不如一个操作看的明白,这个相信朋友们都有体会吧

9、从项目开始
一定要"逼"自己从写项目开始。
任何一个高手的“成长”都是要经历一个过程,这个过程是一步步走过来的,来之不易
很多朋友学习PHP的第一个作品几乎都是“留言簿”,因为是最简单的程序了
会写留言簿,也并不能完全代表你已经入门了,也并不代表就会了PHP,我自己开始想以一个“网络书签”作为自己的第一个作品,但写了基本功能后就没继续了,感觉没多大意思。现在写一个完全正确针对企业的CMS系统,包括针对企业的一些常用功能,我想以这个作为自己PHP入门的第一个作品

10、了解并学习和PHP有关的技术
真正的高手必须得学习和PHP关联的技术,要想学好PHP,就必须得学习数据库,PHP+MYSQL被认为是“黄金搭档”
所以你必须得接触MYSQL或你认为比较好的数据库,开始设计比较"合理"的数据库,这里的合理就比较广泛了,包括数据库优化和查询优化等等

最后想说的是:“不要依靠别人”没人愿意理会一个新手的提问,因为新手提问的在他们眼里太简单,不想去解释。师傅教徒弟,最终还是留上一手,更何况素不相识的人。当然,如果有朋友愿意指点你一下,虚心请教他是个不错的选择。
女性朋友很流行一句话是“男人靠的住,母猪会上树”  引用这句话没别的意思,只是让朋友们知道这句话的意思,不要完全依靠别人来教你学习

还想说的是:“珍惜别人回答的次数”人的忍耐都是有限度的,一定要珍惜这个限度,不要什么问题都去问,有些问题自己花点时间能找到答案的也去问,每问一次,别人的耐心就减去一次,等你真正需要帮助的时候,正好是别人不愿意回答你的时候,可以想像一下,你失去的太多了

建议的是:“有问题?baidu一下”相信朋友们都已经注意到了,你问的问题,在搜索引擎里都能找到相关的提问,并且有详细的解决方案,你可以使用搜索引擎来找到自己的答案,何必去问别人呢
目前最大的中文搜索引擎是 baidu.com ,全球的google,当然还有其它的搜索引擎,一个找不到,多试几个,除非你的问题是第一个提问的  ,那么你是幸运的,也可能是你“长相”问题,呵呵,说笑的,不要介意,不过这句话倒是挺流行

祝正准备入门的PHP的朋友能找到适合自己的学习方式,早日成功!!

    
最新技术文章:
▪PHP函数microtime()时间戳的定义与用法
▪PHP单一入口之apache配置内容
▪PHP数组排序方法总结(收藏)
▪php数组排序方法大全(脚本学堂整理奉献)
▪php数组排序的几个函数(附实例)
▪php二维数组排序(实例)
▪php根据键值对二维数组排序的小例子
▪php验证码(附截图)
WEB前端 iis7站长之家
▪php获取数组长度的方法举例
▪判断php数组维度(php数组长度)的方法
▪php获取图片的exif信息的示例代码
▪PHP 数组key长度对性能的影响实例分析
▪php函数指定默认值的方法示例
▪php提交表单到当前页面、提交表单后页面重定...
▪php四舍五入的三种实现方法
▪php获得数组长度(元素个数)的方法
▪php日期函数的简单示例代码
▪php数学函数的简单示例代码
▪php字符串函数的简单示例代码
▪php文件下载代码(多浏览器兼容、支持中文文...
▪php实现文件下载、支持中文文件名的示例代码...
▪php文件下载(防止中文文件名乱码)的示例代码
▪解决PHP文件下载时中文文件名乱码的问题
▪php数组去重(一维、二维数组去重)的简单示例
▪php小数点后取两位的三种实现方法
▪php Redis 队列服务的简单示例
▪PHP导出excel时数字变为科学计数的解决方法
▪PHP数组根据值获取Key的简单示例
▪php数组去重的函数代码示例
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3