仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1071|回复: 19
打印 上一主题 下一主题

[学习教程] PHP网页设计php 进阶:完成无穷分类(3)

[复制链接]
不帅 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-2-4 00:20:46 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
不可能吃饭的时候咬了自己一下舌头就从此不吃饭了不是?放下畏惧,继续努力,咱们是来征服它的,而不是被它征服的,振奋起来吧同志。   3.法式掌握
------------------------------------------------------------

完成无穷分类这个功效中就属这一步最为庞杂辛劳,起首看看法式需求完成的步调:

1)创立分类上传;
2)创立信息上传;
3)明白显示各分类及其之间的关系;
4)处置查询功效;
5)若何处置编纂和删除的功效;

而这五步中最为坚苦的就是第五个步调,由于对分类的编纂和删除触及到一至性的成绩.

上面我就一一描写 php 的法式掌握:

1)创立分类上传

在引见这个功效前,先引见一下 explode( ) 这个函数,这是个字串处置函数,用来分化字串的,详细的用法,例:

分化"0:1:2:3:4"里的数字

$val='0:1:2:3:4';
$rid=explode(":",$val);

经由 explode( ) 函数处置,$val 内的一切数字都分化到 $rid 数组中了,要援用时只需打印:echo '$rid[0],$rid[1],$rid[2]..."; 就好了.explode( ) 函数在全部分类处置中起着十分主要的感化,好如今入手下手引见无现分类的法式掌握.

可以假定个总分类 0 ,一切的分类都是它的子孙分类,如今来创立第一个分类'体系',来看看它在数据库的存储模式:

id | uid | type | rout_id | rout_char
1 | 0 | 体系 | 0:1 | 体系

接着又鄙人面分'Linux':

id | uid | type | rout_id | rout_char
2 | 1 | Linux| 0:1:2 | 体系:Linux

以上就是数据库存储的模式,如今就来完成 php 的代码,这与服装论坛的代码很类似,咱们所要做的就是将分类的 id 放入 uid,而父分类的 uid 就放 0,上面来看看代码:

<?
.....
.....

//设置默许页
if (empty($func)) $func=='showtype';

//设置父分类的 uid
if (empty($uid)) $uid=0;

//数据库存储************************************************
if ($func=='save'):

$fields = "";
$values = "";

if ($id!="") {
$fields .= ",id";
$values.=",$id";
}

if ($uid!="") {
$fields .= ",uid";
$values.=",$uid";
}

if ($type!="") {
$fields .= ",type";
$values.=",'$type'";
}

if ($route_id=="") {

//获得父分类的 route_id
if ($uid!=0) {
$result = mysqlquery("select * from type where id=$uid");
$route_id=mysql_result($result,0,"route_id");
} else {
$routr_id='0';
}
$fields .= ",route_id";
//构成本人的 route_id
$route_id="$route_id:$id";
$values.=",'$route_id'";
}

//构成本人的 route_char
if ($route_char!="") {
$fields .= ",route_char";
$route_char="$route_char:$type";
$values.=",'$route_char'";
} else {
$fields .= ",route_char";
$route_char=$type;
$values.=",'$route_char'";
}

$fields = substr($fields,1,strlen($fields)-1);
$values = substr($values,1,strlen($values)-1);

$result = mysqlquery("insert into type ($fields) values ($values)");
...
endif; /* end save */


//分类上传************************************************
if ($func=='createtype'):

//获得本人的 id
$result = mysqlquery("select * from type order by
id desc");
$num=mysql_numrows($result);
if (!empty($num)) {
$cat = mysql_result($result,0,"id");
} else {
$cat=0;
}

//判别分类的形态
if ($uid != 0) {
$result=mysql_query("select * from type where id=$uid");
$type=mysql_result($result,0,"type");
$route_char=mysql_result($result,0,"route_char");
} else {
$type='父分类';
}
echo "<FORM ACTION="$PHP_SELF?func=save" METHOD=POST>";

echo "<table>";
echo "<tr><td>所属种别:$type</td></tr>";
echo "<tr><td>创立分类:<input type=text name='type' SIZE=10 MAXLENGTH=100></td></tr>";

echo "<tr><td>";
$cat=$cat+1;
echo "<input type=hidden name=id value='$cat'>";
echo "<input type=hidden name=uid value='$uid'>";
echo "<input type=hidden name=route_char value='$route_char'>";
echo "<INPUT TYPE=submit NAME='Save' VALUE='保留'></td></tr>";

echo "</table>";
echo "</form>";
endif; /* end createtype */

//显示分类************************************************
if ($func=='showtype'):

echo "<table>";

//判别分类的形态
if ($uid!=0) {
$result=mysql_query("select * from type where id=$uid");
$type=mysql_result($result,0,"type");
} else {
$type='父分类';
}

echo "<tr><td><a href='$php_self?func=createtype&uid=$uid'>创立分类</a></td></tr>";

echo "<tr><td>$type</td></tr>";

$result=mysql_query("select * from type where uid=$uid");
$num=mysql_numrows($result);

if (!empty($num)) {
for ($i=0;$i<$num;$i++) {

$id=mysql_result($result,$i,"id");
$type=mysql_result($result,$i,"type");

echo "<tr><td>";
echo "<a href='$php_self?func=showtype&uid=$id'>$type</a>";
echo "</td></tr>";
}
}

echo "</table>";
endif; /* end showtype */
.....
.....

?>
  我想在讲述自己的学习方式前,对那些期望能从我的文章中获得有用信息的人说一句心里话:
莫相离 该用户已被删除
沙发
发表于 2015-2-4 12:00:04 | 只看该作者
,熟悉html,能用div+css,还有javascript,优先考虑linux。我在开始学习的时候,就想把这些知识一起学习,我天真的认为同时学习能够互相呼应,因为知识是相通的。
若相依 该用户已被删除
板凳
发表于 2015-2-9 22:30:37 | 只看该作者
最后介绍一个代码出错,但是老找不到错误方法,就是 go to wc (囧),出去换换气没准回来就找到错误啦。
乐观 该用户已被删除
地板
发表于 2015-2-28 02:17:20 | 只看该作者
真正的方向了,如果将来要去开发团队,你一定要学好smarty ,phplib这样的模板引擎,
简单生活 该用户已被删除
5#
发表于 2015-3-9 18:23:39 | 只看该作者
对于懒惰的朋友,我推荐php的集成环境xampp或者是wamp。这两个软件安装方便,使用简单。但是我还是强烈建议自己动手搭建开发环境。
若天明 该用户已被删除
6#
发表于 2015-3-12 11:23:34 | 只看该作者
我学习了一段时间后,我发现效果并不好(估计是我自身的问题)。因为一个人的精力总是有限的,同时学习这么多,会导致每个的学习时间都得不到保证。
透明 该用户已被删除
7#
发表于 2015-3-12 11:34:03 | 只看该作者
说点我烦的低级错误吧,曾经有次插入mysql的时间 弄了300年结果老报错,其实mysql的时间是有限制的,大概是到203X年  具体的记不清啦,囧。
因胸联盟 该用户已被删除
8#
发表于 2015-3-19 21:27:20 | 只看该作者
我还是强烈建议自己搭建php环境。因为在搭建的过程中你会遇到一些问题,通过搜索或是看php手册解决问题后,你会更加深刻的理解它们的工作原理,了解到php配置文件中的一些选项设置。
金色的骷髅 该用户已被删除
9#
发表于 2015-3-19 23:35:37 | 只看该作者
Apache不是非得用80或者8080端口的,我刚开始安得时候就是80端口老占用,就用了个 81端口,结果照常,就是输localhost的时候,应该输入为 localhost:81
深爱那片海 该用户已被删除
10#
发表于 2015-3-22 04:09:30 | 只看该作者
本文当是我的笔记啦,遇到的问题随时填充
第二个灵魂 该用户已被删除
11#
发表于 2015-4-7 10:38:03 | 只看该作者
学好程序语言,多些才是王道,写两个小时代码的作用绝对超过看一天书,这个我是深有体会(顺便还能练打字速度)。
蒙在股里 该用户已被删除
12#
发表于 2015-4-19 06:21:36 | 只看该作者
这些中手常用的知识,当你把我说的这些关键字都可以熟练运用的时候,你可以选择自己
山那边是海 该用户已被删除
13#
发表于 2015-4-30 14:59:51 | 只看该作者
写js我最烦的就是 ie 和 firefox下同样的代码 结果显示的结果千差万别,还是就是最好不要用遨游去调试,因为有时候遨游是禁用js的,有可能代码是争取结果被遨游折腾的认为是代码写错。
再见西城 该用户已被删除
14#
发表于 2015-5-1 10:10:33 | 只看该作者
当然这种网站的会员费就几十块钱。
柔情似水 该用户已被删除
15#
发表于 2015-5-6 13:09:48 | 只看该作者
你很难利用原理去编写自己的代码。对于php来说,系统的学习我认为还是很重要的,当你有一定理解后,你可你针对某种效果研究,我想那时你不会只是复制代码的水平了。
谁可相欹 该用户已被删除
16#
发表于 2015-5-6 22:09:38 | 只看该作者
在我安装pear包的时候老是提示,缺少某某文件,才发现 那群extension 的排列是应该有一点的顺序,而我安装的版本的排序不是正常的排序。没办法我只好把那群冒号加了上去,只留下我需要使用的扩展。
兰色精灵 该用户已被删除
17#
发表于 2015-6-7 15:43:47 | 只看该作者
我还是推荐用firefox ,配上firebug 插件调试js能省下不受时间。谷歌的浏览器最好也不少用,因为谷歌的大侠们实在是太天才啦,把一些原来的js代码加了一些特效。
冷月葬花魂 该用户已被删除
18#
发表于 2015-6-21 12:42:35 | 只看该作者
使用zendstdio 写代码的的时候,把tab 的缩进设置成4个空格是很有必要的
admin 该用户已被删除
19#
发表于 2015-7-8 20:41:38 | 只看该作者
其实没啥难的,多练习,练习写程序,真正的实践比看100遍都有用。不过要熟悉引擎
再现理想 该用户已被删除
20#
发表于 2015-7-12 00:11:28 | 只看该作者
本人接触php时间不长,算是phper中的小菜鸟一只吧。由于刚开始学的时候没有名师指,碰过不少疙瘩,呗很多小问题卡过很久,白白浪费不少宝贵的时间,在次分享一些子的学习的心得。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-5-2 06:35

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表