php 之ci框架学习笔记

1.根据前面学习tp框架的经验,上手ci框架就非常快,都是采用mvc这种架构,以及单文件入口。

.

2.不同之处,

数据库调用,需要加载,才能使用

$this->load->database();  
$query = $this->db->query('SELECT name, title, email FROM my_table')

foreach ($query->result() as $row)
{
    echo $row->title;
    echo $row->name;
    echo $row->email;
}

echo 'Total Results: ' . $query->num_rows();

配置在这个配置文件位于 application/config/database.php目录,

参数模式:模块/控制器/方法/参数/参数

接收:方法(参数,参数)

3.头部

//./applications/controllers/hello.php //放止用户直接通过路径来访问控制器,如果这样的话会显示找不到(封装)

if ( ! defined('BASEPATH')) exit('No direct script access allowed');

4.数据库

对数据库的操作——

1.连接数据库($this->load->database());

2.插入数据($this->db->insert($t_name,$arr);)

$t_name——你要操作的表]

$arr——你要插入的数据("key"=>value)

3.更新数据

$this->db->where(字段名,字段值)

$this->db->update(表名,修改值的数组)

4.查询数据

$this->db->where(字段名,字段值)

$this->db->select(字段)

$query = $this->db->get(表名)

return $query->result();

5.删除数据

$this->db->where(字段名,字段值)

$this->db->delete(表名)

5.上传

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

//设置上传目录,这里写./,目录要建在网站根目录,就是和application同级

//如果你要放在application目录下,可以用系统定义的路径常量APPPATH

//例如:APPPATH.'uploads/'

$config['upload_path'] = './uploads/';

//设置允许上传的类型

$config['allowed_types'] = 'gif|jpg|png';

$config['max_size'] = '100';

//如果是图片还可以设置最大高度和宽度

$config['max_height'] = 768;

$config['max_width'] = 1024;
<?php 
if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class Upload extends CI_Controller {

    //显示带表单的视图
    public function index(){
        $this->load->view('up');

    }

    //显示上传信息
    public function up(){

        $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);
        }
    }

}

6.登录验证

./application/controllers/login.php
<?php 
if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class Login extends CI_Controller {

    public function index()
    {
        $this->load->view('login.html');
    }

    public function checklogin(){
        $this->load->model("test_m");
        $user = $this->test_m->user_select($_POST['uname']);
        if($user){
            if($user[0]->upass == $_POST['upass']){
                echo '密码正确!';
                $this->load->library('session');
                $arr = array("uid" => $user[0]->usid);
                $this->session->set_userdata($arr);
                echo "<br />";
                echo $this->session->userdata('uid');
            }
            else{
                echo '密码不正确!';
            }
        }
        else{
            echo '用户名不存在';
        }
    }

    public function checksession(){
        $this->load->library('session');
        if($this->session->userdata('uid')){
            echo '已经登录。';
        }
        else{
            echo '没有登录。';
        }
    }

    public function loginout(){
        $this->load->library('session');
        $this->session->unset_userdata('uid');
    }
}

7.分页功能

1.必须知道的一些参数

a.总共有多少条记录

b.一页要有多少条记录

c.总共多少页

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

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

//总条数

$config['total_rows']

//一页显示几条

$config['per_page']

//定义当前页的前后各有几个数字链接

$config['num_links']

//定义没有分页参数,主URL

$config['base_url']

3.调用CI的分页类

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

4.执行分页方法

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

5.输出分页链接

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

6.查询部分数据(limit)

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

 

./applications/controllers/page.php
<?php 
if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class Page extends CI_Controller {

    public function user_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 function pagelist(){
        $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 "<br />";
        $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);
    }
}

 

复制代码

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值