php ci文档,ci框架(二),ci框架

ci框架(二),ci框架

自定义SQL语句

当提供的API满足不了我们对SQL语句的要求的时候,我们通常是自己来写SQL语句,CI也提供了比较强大了,能够满足我们需求的一般的sql的API。

$res=$this->db->select('id,name')->from('表名')->whrer('id >=',5)//注意id后面要有个空格

->limit(3,2)//这里与sql的limit是顺序是反的->order_by('id desc ')->get();//翻译成sql语句

var_dump($res->result());echo $this->db->last_query();//先是最近一条SQL

自定义扩展控制器

在application/core中新建MY_Controller.php

class MY_Controller extendsCI_Controller

{public function__construct()

{

parent::__construct();//一定呀先调用父类的构造方法

//登录验证、权限验证、其他操作。。。

}

}

同时需要在application/config/config.php中配置一下:

$config['subclass_prefix'] = 'MY_';

自定义扩展模型

在application/models中创建user_model.php

class User_model extendsCI_Model

{public functiongetAll()

{$res = $this->db->get('表名');return $res->result();

}

}

在控制器中调用自定义模型

application/controllers:

class User extendsMY_Controller

{public functionindex()

{$this->load->model('User_model');//调用以类名为主,而不是文件名

$list = $this->User_model->getAll();//调用模型获取数据

$this->load->view('user/index',array('list'=>$list));//加载视图}

}

加载模型的时候可以给模型取一个名字:

$this->load->model('User_model','user');//调用以类名为主,而不是文件名

$list = $this->user->getAll();//调用模型获取数据

Url相关函数

在表单验证的时候,需要把数据传给控制器,怎么准确的而且可扩展的写action呢,调用API:

public functionaddView()

{$this->load->helper('url');//为了不把表单传递的地址写死,用url函数

$this->load->view('user/add');

}

在user/add.php视图当中:

form>

如果是index.php目录的话,用:

base_url();

这个API。

同时,每次加载url很麻烦,也可是设置成自动加载,在config/config.php中修改:

$config['helper'] = array('url');

可能在后面的版本中就没有这个自动加载了。

路由

$route['rouxx/showxx/([\d]+)\.html'] = 'rou/show/$1';//插入这句话

分页

必须知道的一些参数

总共有多少条记录

一页要有多少条记录

总共多少页

当前页前后要显示多少个分页链接

设置一些CI分页类基本参数

//总条数

$config['total_rows']//一页显示几条

$config['per_page']//定义当前页的前后各有几个数字链接

$config['num_links']//定义没有分页参数,主URL

$config['base_url']

调用CI的分页类

$this->load->library('pagination');

执行分页方法

$this->pagination->initialize($config);

输出分页链接

echo $this->pagination->create_links();

查询部分数据(limit)

echo $this->db->limit($num,$start); //从$start查$num条

phpif ( ! defined('BASEPATH')) exit('No direct script access allowed');class Page extendsCI_Controller {public functionuser_add(){$this->load->model('test_m');for ($i = 1;$i <= 100;$i++){$name = 'u'.$i;$arr = array("usid"=>$i,"uname"=>$name,"upass"=>123456);$this->test_m->user_insert($arr);

}

}public functionpagelist(){$this->load->model('test_m');$user = $this->test_m->user_select_all();$allnum = count($user);$pagenum = 20;$config['total_rows'] = $allnum;$config['per_page'] = $pagenum;$config['num_links'] = 3;$config['base_url'] = "/CI/index.php/page/pagelist";$config['use_page_numbers'] = true;$this->load->library('pagination');$this->pagination->initialize($config);var_dump($this->pagination->create_links());echo $this->pagination->create_links();echo "

";$id = $this->uri->segment(3); //获得url第三段字符

$id =$id ? $id:1;$start = ($id - 1) * $pagenum;$list = $this->test_m->user_select_limit($start,$pagenum);var_dump($list);

}

}

上传文件

视图 /views/up.php:

form>

html>

控制器:

定义一个数组,设置一些与上传相关的参数

$config['upload_path'] = './uploads/';//设置允许上传的类型

$config['allowed_types'] = 'gif|jpg|png';$config['max_size'] = '100';//如果是图片还可以设置最大高度和宽度

$config['max_height'] = 768;$config['max_width'] = 1024;

还可以设置其他的一些额外参数,详细看用户手册。

调用CI的上传通用类,并执行上传

//upload为调用的类名,全小写

$this->load->library('upload',$config);//如果上传框的name写的是userfile,那就不用传参数了,如果不是,把name的值传进去

$this->upload->do_upload('上传框的name');

接收出错信息或成功信息

//出错信息

$error = array('error' => $this->upload->display_error());//成功信息

$data = array('upload_data' => $this->upload->data());

phpif ( ! defined('BASEPATH')) exit('No direct script access allowed');class Upload extendsCI_Controller {//显示带表单的视图

public functionindex(){$this->load->view('up');

}//显示上传信息

public functionup(){$config['upload_path'] = './uploads/';$config['allowed_types'] = 'gif|jpg|png';$config['max_size'] = "2000";$this->load->library('upload',$config);//打印成功或错误的信息

if($this->upload->do_upload('upfile'))

{$data = array("upload_data" => $this->upload->data());var_dump($data);

}else{$error = array("error" => $this->upload->display_errors());var_dump($error);

}

}

}

Session

利用CI类实现session登录

修改配置文件(config.php)

//生成一个随机不重复的字符串走位加密的key保存到config.php的encryption_key中

$config['encryption_key']='adb8bf6d0ac4e17b42a80941582497a4';

加载SESSION类

$this->load->library('session');

创建SESSION

$array = array('id'=>3,'name'=>'jack');$this->session->set_userdata($array);

查看SESSION

$this->session->userdata(session名);

删除SESSION

$this->session->unset_userdata('SESSION名');

$config['sess_cookie_name'] = 'ci_session';$config['sess_expiration'] = 7200;$config['sess_expire_on_close'] = FALSE;$config['sess_encrypt_cookie'] = TRUE

$config['sess_use_database'] = FALSE;$config['sess_table_name'] = 'ci_sessions';$config['sess_match_ip'] = FALSE;$config['sess_match_useragent'] = TRUE;$config['sess_time_to_update'] = 300;一次性数据,只能读取一次

//设置

$this->session->set_flashdata('test','aaaaa');//读取

$test = $this->session->flashdata('test');

php CI 框架怎从数据库中取值(一个二维数组)以表格的形式显示到view层

控制层

function test_func(){

//获取model页面需要的两个参数

$competition_id = $_GET["competition_id"];

$report_class = $_GET["report_class"];

$this->load->model("Action"); //引入model

$data["head"] = $this->Action->get_report_item($competition_id, $report_class); //引用model的函数

$this->load->view("test_result",$data); //将结果显示在test_result.php页面中

}

view层:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值