传智播客 韩顺平 php视频教程 笔记心得 zend.framework.第7——14讲 数据采集系统源代码
2012-07-31 09:03 java环境变量 阅读(367) 评论(0) 编辑 收藏 举报源代码下载地址:http://download.csdn.net/detail/ibmfahsion/4465080
新增全局控制器,当希望多个视图view共享一个控制器Controller,建议创建一个全局控制器,有利于给项目减肥,减少控制器的个数。
提示成功或者失败的信息。
控制器链。
zend framework 第9讲综合应用-数据采集系统4
框架里面建议用绝对路径。
Ajax jquery在框架中的引用。定义都是一种资源。
Public
<img src='/images/logo.gif' />注意用这种引用路径。
验证与安全增强
<scripttype="text/javascript" src='/js/my.js'>
<!--
//-->
</script>
<linkrel='stylesheet'href='/css/my.css'type='text/css'/>
<h1>投票</h1>
//在服务对输入进行一个验证。
客户端有js验证,在服务对输入进行一个验证。
为了双重的安全。
Js正则表达式
服务器端:
使用php处理 ;异常;php正则表达式
render: 直接显示本控制器所对应的视图
不指定render
结果:{当前moule}/{当前Controller}/{当前Action}.phtml
一般不跳转到别的控制器去,用法比较单一。
_forward:代表本项目中的控制器之间来回的转发。
可以转向到本控制器的某个函数,也可以跳转到别的控制器的某个函数。
$this->_forward('bar') 转到当前控制器
{当前moule}/{当前Controller}/bar
{当前moule}/foo/bar
$this->_forward('err','fool');
$this->_forward('err','fool',’hoge’);
{hoge}/foo/bar
Redirect:代表本项目中的控制器之间来回的转发,同时还可以跳转到外网去。
可以再本网站的控制器转向
$this->redirect('/hoge');
$this-> redirect( ('/hoge/foo');
$this-> redirect( ('/hoge/foo/bar');
还可以直接调向外网的网址。
特殊情况layout:
zend+framework+第10讲+综合应用-数据采集系统5
<scripttype='text/javascript'>
alert('恭喜您,投票成功!');
//history.back();
window.location.href='/index/index';
</script>
返回刷新:
名称 |
描述 |
投票数 |
投票 |
李维斯 |
天仙配 |
11 |
|
刘德华 |
冰雨 |
5 |
|
张学友 |
情书 |
4 |
|
回音哥 |
我的歌声里 |
6 |
|
张柏芝 |
曾经 |
5 |
zend+framework+第11讲+多表操作1
--建立学生表
create table student(
sid char(8) primary key,
sname varchar(64) not null default '',
ssex char(2) not null default '女',
sdept varchar(32) not null default '',
sage tinyint unsigned default 0,
saddress varchar(64) not null default ''
)
--课程表
create table course(
cid char(2) primary key,
cname varchar(64) not null default '',
ccredit tinyint unsigned not null default 0
--建立选课表
create table studCourse
(
stuCouseId int unsigned primary key auto_increment,
sid char(8) not null default '',
cid char(2) not null default '',
grade tinyint unsigned not null default 0,
foreign key for_sid(sid) references student(sid),
foreign key for_cid(cid) references course(cid)
)
用外键 必须数据库引擎为 innodb
外键类型大小都一样
学生选课系统的三张表(可以扩展管理员表,老师表)
数据库三范式:数据可以通过关联的关系获取。当两张表之间有多对多的关系的时候,往往会需要一张中间表进行对应和转换。Many to many的关系。
多对多的关系处理不好,就会出现冗余。
Student studCourse course
部门表 雇员表
也可能存在多对多的关系
qq用户表例如好友表
zend studio ide 也可以通过编写phpunit来进行单元测试。
PHP视频教程+zend+framework+第12讲+多表操作2
select sname , ssex from student where ssex='女' and sdept='计算机'
//根据多个主键查询记录 查询学生号的信息 find中用数组,必须对应的是主键。
$stu=$studentModel->find(array("20040001","20040002"))->toArray();
韩顺平 PHP视频教程 zend framework第13讲多表操作3
取回一条记录。主要应对效率的提高,如果你认为只有1条记录或者有意识的认为只有一条记录,来提高效率。
//如何只取回一条记录 distinct
//一部分字段不能用fetchall 表模型,只能用适配器Adapter
//Adapter简单的原则:1如果是查询部分字段 2 如果是多表查询 3 如果要考虑sql注入问题也使用$adapter->query->fetchAll()
//表模型:1如果是增加、删除、修改、查询某张单表的全部字段,也可以考虑分页,可以使用表模型。
韩顺平+PHP视频教程+zend+framework+第14讲+多表操作4
//查询各科考试不及格的学生的名字,科目和分数
首先考虑到会使用到几张表:
学生的名字 student表
科目的名称 course表
分数 studcourse 选课表
三张表结合,三张表之间的关系。
三张表之间有相同的字段。
加条件限制,避免出现笛卡尔积。
Sql语句写的时候从左到右,执行的时候从右到左,写的好的sql专员,核心的关键字放在右边;
传说中sql关键字大写也能提高效率。
多表查询尽量少用;尽量不要用多表。
参数绑定: 同时能防止注入。
//参数绑定,写法1种
$sql=$db->quoteInto("select max(grade),min(grade) from studcourse where cid=?", 11);
$res=$db->query($sql)->fetchAll();
print'<pre>';
print_r($res);
print'</pre>';
exit();
//参数绑定,写法2种
$res=$db->query("select max(grade),min(grade) from studcourse where cid=:cid AND grade=:grade",
array(
'cid'=>11,
'grade'=>60
))->fetchAll();
print'<pre>';
print_r($res);
print'</pre>';
exit();
one to one 两张表1对1的关系;人和身份证号
one to many 员工表emp——部门表 dept
many to many 多对多的关系,往往需要中间表
多表查询,临时表。
select '林青霞' ,c.cname,temp.grade from( select sc.grade,sc.cid from
studcourse sc where sid=(select sid from student where sname= '林青霞' ) )temp,
course c where temp.cid=c.cid