今天学习了CI的Model模型,总的来说Model完全就是用来给数据库打交道用了。
在models文件架建立blog_model.php用于给文章的数据增加,更新,查询的Model。

<?php class Blog_model extends Model {

public $post_title;
public $post_content;
public $post_date;

function __contrust(){
	parent::Model();
}

function insert_art(){
	$this->post_content = $this->input->post('content');
	$this->post_title   = $this->input->post('title');
	$this->post_date    = date('Y-m-d H:m:s');
	$this->db->insert('posts',$this);
}

function update_art($id){
	$this->post_content = $this->input->post('content');
	$this->post_title   = $this->input->post('title');
	$this->post_date    = date('Y-m-d H:m:s');
	$this->db->update('posts',$this,array('id'=>$id));
}

function get_ten_art() {
	$sql   = "select post_content,post_title,post_date from wp_posts limit 3";
	$query = $this->db->query($sql);
	return $query->result_array();
} } ?>

今天开始接触CodeIgniter框架,这个所谓的简单,也是容易学习的MVC框架。本来也想学Zend Framework框架的,下载解压完就20个兆,在一看里面文件的一大堆。晕倒掉了。。仔细想了想我学习PHP还不到几个月还是从简单的框架开始,也能逐步让我对 M-V-C 模型产生一定的认识。

CI其实很小,除掉用户手册,差不多就1M左右吧。所谓MVC模式:

models(模型):system/application/models/
views(视图):system/application/views/
controllers(控制器):system/application/controllers/

首先找到配置文件:system/application/config/config.php
设置下根目录就OK了:$config[‘base_url’] = “localhost/ci”;
打开http://localhost/ci/index.php OK成功运行了。。
由于system/application/config/routes.php中设置$route[‘default_controller’] = “welcome”;
默认页面是控制器下的welcome.php
其实刚刚访问的
http://localhost/ci/index.php等价于
http://localhost/ci/index.php/welcome

用过JavaScript的实现表格的隔行变色,鼠标经过加亮至少需要20行以上的代码,而是用jQuery只需要短短几行的代码。

td {padding:6px 11px;border-bottom:1px solid #95bce2;vertical-align:top;text-align:center;} td * {padding:6px 11px; } /偶数行 tr 加上背景色/ tr.even td {background:#ecf6fc;} /这个将是鼠标高亮行的背景色/
tr.over td {background:#bcd4ec;}

$(document).ready(function(){
	$('.pm tr').mouseover(function(){
		$(this).addClass('over');}).mouseout(function(){$(this).removeClass('over');
	});
	$('.pm tr:even').addClass('even');
});


  

很多开发者写面向对象的应用程序时对每个类的定义建立一个 PHP 源文件。一个很大的烦恼是不得不在每个脚本(每个类一个文件)开头写一个长长的包含文件列表。
在 PHP 5 中,不再需要这样了。可以定义一个 __autoload 函数,它会在试图使用尚未被定义的类时自动调用。通过调用此函数,脚本引擎在 PHP 出错失败前有了最后一个机会加载所需的类。

**Note: **在 __autoload 函数中抛出的异常不能被 catch 语句块捕获并导致致命错误。

**Note: **如果使用 PHP 的 CLI 交互模式 时,Autoloading 不存在。

function __autoload($className){
	if (!class_exists($className, false))
		require_once(dirname(__FILE__).'/../classes/'.$className.'.php');
}

一般来说国家列表非常长的,在客户端一般不使用连接数据库来读取数据的国家列表。这不仅消耗内存而且让页面加载速度也变慢,为此把国家列表存在XML中是一个很好的选择。
部分XML数据:data/countries.xml,列表太长,完整的放在附件中。

<?xml version="1.0" encoding="utf-8"?>
<countries>
	<region id="1" name="America">
		<country id="92" name="Uruguay" code="UY" />
		<country id="93" name="Venezuela" code="VE" />
	</region>
	<region id="2" name="Europe">
		<country id="169" name="Ukraine" code="UA" />
		<country id="232" name="United Arab Emirates" code="AE" />
		<country id="174" name="United Kingdom" code="UK" />
	</region>
	<region id="3" name="Asia">
		<country id="59" name="Turkmenistan" code="TM" />
		<country id="65" name="Yemen" code="YE" />
	</region>
	<region id="4" name="Africa">
		<country id="135" name="Nigeria" code="NG" />
		<country id="125" name="Rwanda" code="RW" />
		<country id="117" name="Zimbabwe" code="ZW" />
	</region>
		<country id="149" name="Papua New Guinea" code="PG" />
		<country id="152" name="Samoa" code="WS" />
		<country id="155" name="Tonga" code="TO" />
		<country id="156" name="Vanuatu" code="VU" />
	</region>
</countries>