毕业设计顺利完成
感谢国家。
感谢指导老师郭老师的帮助,我的毕业设计< 教学质量测评系统的设计与实现 >获得了优秀的成绩,而且作为系里公开答辩的论文,我很欣慰,上午郭老师又打电话来推荐我的毕业设计为院级优秀毕业论文,十分感谢老师。
6月28日1:52分,等会要有阿根廷的比赛。
在过几个钟头就要举行毕业典礼,学位授予仪式了,我要毕业了。
我要毕业了。这次是真的毕业了。
十几年的学生生涯结束了。
以后我不在是学生,我要独立了,我该自己撑起我的一片天。
我毕业了。
感谢老师。
感谢国家。
感谢指导老师郭老师的帮助,我的毕业设计< 教学质量测评系统的设计与实现 >获得了优秀的成绩,而且作为系里公开答辩的论文,我很欣慰,上午郭老师又打电话来推荐我的毕业设计为院级优秀毕业论文,十分感谢老师。
6月28日1:52分,等会要有阿根廷的比赛。
在过几个钟头就要举行毕业典礼,学位授予仪式了,我要毕业了。
我要毕业了。这次是真的毕业了。
十几年的学生生涯结束了。
以后我不在是学生,我要独立了,我该自己撑起我的一片天。
我毕业了。
感谢老师。
前面写过一篇PHP读取EXCEL插入Mysql数据库中,应用phpExcelReader导入, 这次做毕业设计时用的ThinkPHP,有个上传学生信息(excel)插入数据库的功能,其实原理一样,先是上传,然后读取内容,然后根据phpExcelReader的read读取各sheet值然后插入数据库。其代码为:
import.html
1 2 3 4 5 6 7 | <form method="post" action="__URL__/import" name="form1" enctype="multipart/form-data">
<table cellspacing="0" cellpadding="0" border="1">
<tr>
<td ><input type="file" name="myfile" /> <input type="submit" class="mybutton" name="import" value="导入" ></td>
</tr>
</table>
</form> |
StudentsAction.class.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 | class StudentsAction extends Action { public function import() { header("Content-Type:text/html; charset=utf-8"); Vendor('Excel.reader'); // 加载reader类。 if(!$this->isPost()) { $this->display(); } else { if($_FILES['myfile']['name']!='') { $tmp_file=$_FILES['myfile']['tmp_name']; $file_types=explode(".",$_FILES['myfile']['name']); $file_type=$file_types[count($file_types)-1]; if(strtolower($file_type)!="xls"){ // echo "<span style=\"color:red;line-height: 25px;\">格式错误 <a href=\"#\" onclick=history.go(-1);>请返回</a> </span>"; $this->assign('jumpUrl',__URL__/import); $msg="格式错误,请重新上传"; $this->success($msg); } $savePath="Excel/xls/"; $str = date('Ymdhis'); $file_name=$str.".".$file_type; if(!copy($tmp_file,$savePath.$file_name)){ //echo "<span style=\"color:red;line-height: 25px;\">上传错误请重试!!<a href=# onclick=history.go(-1);>[返回]</a></span>"; $this->assign('jumpUrl',__URL__/import); $msg="上传错误,请重新上传"; $this->success($msg); }else{ $data = new Spreadsheet_Excel_Reader(); $data->setOutputEncoding('utf-8'); $data->read("Excel/xls/".$file_name); for ($i = 2; $i <= $data->sheets[0]['numRows']; $i++) { $number=$data->sheets[0]['cells'][$i][1]; $passwd=$data->sheets[0]['cells'][$i][1]; $name=$data->sheets[0]['cells'][$i][2]; $catid=$data->sheets[0]['cells'][$i][3]; $sex=$data->sheets[0]['cells'][$i][4]; $tel=$data->sheets[0]['cells'][$i][5]; $home=$data->sheets[0]['cells'][$i][6]; $minzu=$data->sheets[0]['cells'][$i][7]; $Students=D("Students"); $info=array( 'number'=>$number, 'passwd'=>$passwd, 'name'=>$name, 'catid'=>$catid, 'sex'=>$sex, 'tel'=>$tel, 'home'=>$home, 'minzu'=>$minzu, ); $Students->create($info); $Students->add(); } $this->assign('jumpUrl',__URL__); $msg="学生信息导入成功"; $this->success($msg); } } } } } |
mysql表类型MyISAM和InnoDB区别
MyISAM:这个是默认类型,它是基于传统的ISAM类型,ISAM是Indexed Sequential Access Method (有索引的顺序访问方法) 的缩写,它是存储记录和文件的标准方法.与其他存储引擎比较,MyISAM具有检查和修复表格的大多数工具. MyISAM表格可以被压缩,而且它们支持全文搜索.它们不是事务安全的,而且也不支持外键。如果事物回滚将造成不完全回滚,不具有原子性。如果执行大量的SELECT,MyISAM是更好的选择。
InnoDB:这种类型是事务安全的.它与BDB类型具有相同的特性,它们还支持外键.InnoDB表格速度很快.具有比BDB还丰富的特性,因此如果需要一个事务安全的存储引擎,建议使用它.如果你的数据执行大量的INSERT或UPDATE,出于性能方面的考虑,应该使用InnoDB表,
对于支持事物的InnoDB类型的标,影响速度的主要原因是AUTOCOMMIT默认设置是打开的,而且程序没有显式调用BEGIN 开始事务,导致每插入一条都自动Commit,严重影响了速度。可以在执行sql前调用begin,多条sql形成一个事物(即使autocommit打开也可以),将大大提高性能。
1. 4.0以上mysqld都支持事务,包括非max版本。3.23的需要max版本mysqld才能支持事务。
2. 创建表时如果不指定type则默认为myisam,不支持事务。
可以用 show create table tablename 命令看表的类型。
作为 Web 设计师,你的网站在各种浏览器中有完全一样的表现是很多人的目标,然而这是一个永远无法真正实现的目标,很多人认为,完美的跨 浏览器兼容并不必要,这样说虽然没错,但在很多情形,一种近似的兼容还是很容易实现的,本文讲的是各种跨浏览器兼容的 CSS 编码准则和技巧。

理解 CSS 盒子模型
如果你想实现不需要很多奇巧淫技的跨浏览器兼容的 CSS 代码,透彻地理解 CSS 盒子模型是首要事情,CSS 盒子模型并不难,且基本支持所有浏览器,除了某些特定条件下的 IE 浏览器。
CSS 盒子模型负责处理以下事情:
# 一个 blcok (区块)级对象占据多大的空间
# 该对象的边界,留白
# 盒子的尺寸
# 盒子与页面其它元素的相对位置
CSS 盒子模型有以下准则:
# Block (区块)对象都是矩形 (事实上所有对象都如此)
# 其尺寸由 width, height, padding, borders, 以及 margins 决定
# 如果不设置高度,该盒子的高度将自动适应其包含的内容,加上留白等(除非使用了 float)
# 如果不设置宽度,一个非 float 型盒子水平上将充满其父容器(扣除父容器的留白)
处理 block 级对象时,必须注意以下事项:
# 如果一个盒子的宽度设置为 100%,它就不能再设置 margins, padding, 和 borders,否则会撑破其父容器
# 垂直毗邻的 margin 会引起复杂的坍塌问题,导致布局问题(比如两个垂直毗邻的 Block 对象,上面的对象的 bottom-margin 为 40,下面的对象的 top-margin 为 20,则两个对象的间距将是 40,而不是 60 )
# 拥有相对位置和绝对位置的对象,拥有不同的行为

在 Firefox 的 Firebug 中显示的盒子模型
阅读全文…
原文地址:http://52php.com.cn/index.php/archives/6/
总结:
$_REQUEST、$_GET、$_POST、$_COOKIE 的关系和区别。
1.关系:$_REQUEST包含了$_GET、$_POST、$_COOKIE的所有内容,是它们的集合体。
2.$_GET、$_POST、$_COOKIE在$_REQUEST中都有一个副本。改变$_REQUEST的值不影响$_GET等,反之亦然。
3.GET和POST同名的情况下,$_REQUEST取的是POST的值。COOKIE与GET或POST重名的情况下,$_REQUEST取的是COOKIE的值。COOKIE的优先级最高。
测试开始。
测试1:
echo ‘
';//源格式打印
//URL加上m=xxoo来测试$_GET
print_r($_REQUEST);//首先打印内容
print_r($_GET);
$_REQUEST = array();//清空$_REQUEST
echo $_GET['m'];
echo '
‘;
测试结果:$_GET['m']的值是xxoo。
测试2:
echo ‘
';//源格式打印
//URL加上m=xxoo来测试$_GET
print_r($_REQUEST);
print_r($_GET);
$_GET = array();//清空
print_r($_REQUEST);
echo '
‘;
测试结果:$_REQUEST['m']的值是xxoo。
结论:对$_REQUEST的操作没有影响到$_GET,反之亦然。$_REQUEST只是包含了一个$_GET的副本(the same as $_POST 哈哈)。
————————————华丽的分隔线
—————————————————
好。继续
测试3
//POST-GET重名测试
//从其他页面POST传送一个m的值为post,action地址加上m=get
print_r($_REQUEST);
print_r($_GET);
print_r($_POST);
结果:$_REQUEST['m'] == ‘post’。
结论:同时提交GET和POST且同名,$_REQUEST取的是POST的值。(可能是POST优先级更高。)
测试4
//cookie与post\get 重名测试
setcookie(‘m’, ‘cookie’, time()+3600);//先把COOKIE种上,名字为m,值为cookie。然后刷新。(COOKIE要刷新才生效)
//从其他页面POST传送一个m的值为post,action地址加上m=get
print_r($_REQUEST);
结果:$_REQUEST['m'] == ‘cookie’。结论:COOKIE的优先级最高。
Recent Comments