ci框架开发商城2

1/28/2016 9:45:52 PM

mvc完整案例 mvc完成新闻的增删改查

  1. news控制器news.php

     class News extends CI_controller{
    public __construct(){
    parent::__construct();
    //载入news_model
    $this->load->model('news_model');}
    public function add(){
    $this->load_view('add.html');
    }
    }
  2. 设计一张表news.sql

     create 	database ci;
    use ci
    create table news(
    id int unsigned not null primary key auto_increment,
    title varchar(50) not null default '',
    author varchar(30) not null default '',
    content text,
    add_time int unsigned not null default 0)engine=myisam charset=utf8;
  3. 连接数据库

    1. 数据库相关配置 config/database.php

    2. 连接数据库 数据库操作类两种方式只需要加载该类即可,手动载入 或者自动载入

       $this->load->database
      //需要的地方手动载入
      自动载入config/autoload.php
      $autoload['libraries'] =array('database');加入database
    3. 操作数据库,

      1. 定义news模型 继承模型基类CI_Model Model_name 类名首字母大写其他字母小写 文件名 类名的小写版News_model news_model.php

         class News_model extends CI_Model{
        //构造函数
        public function __construct(){
        //调用父类构造函数 必不可少
        parent::__construct();
        //手动载入数据库操作类
        $this->load->database(); }
        }
      2. 操作数据库 $this->db->query($sql);//select返回结果集 insert update delete返回布尔值更希望有一个能够自动完成增删改查的一个功能CI中提供了一个active record类 $this->db->insert/update/delete/get 自动能够拼凑sql语句 支持多种数据库

      3. news_model.php 写完后控制器中调用模型

         const TBL='news';
        public function add_news($data){
        return $this->db- >insert(self::TBL,$data);//ar类完成操作
        }
        /**
        *@param $data array
        *@return bool 成功返回* true 失败返回FALSE
        */
      4. 控制器 news.php 在构造函数中载入news_model,并写入insert方法

         class News extends CI_controller
        {
        public __construct()
        {
        parent::__construct();
        //载入news_model
        $this->load->model('news_model');
        }
        public function add(){
        $this->load_view('add.html');
        }
        public function insert()
        {
        //调用news_model
        if($this->news_model->add_news()
        {echo "插入成功";
        }else
        {echo "插入失败";}
        }
        }
      5. 视图文件中表单action怎么写?

         涉及到ci的辅助函数url
        配置config.php中 $config['base_url']="http://localhost/citest"
        默认情况下 url函数没有加载
        可在配置文件中自动加载 config/autoload.php $autoload['helper']=array('url');
        提供了 site_url= base_url+index.php
        action="<?php echo site_url('news/insert')?>"
        //========控制器news.php
        class News extends CI_controller
        {
        public __construct()
        {
        parent::__construct();
        //载入news_model
        $this->load->model('news_model');
        }
        public function add(){
        $this->load_view('add.html');
        }
        public function insert()
        {//获取表单数据
        $data['title'] = $_POST['title'];
        $data['author'] = $_POST['author'];
        $data['content'] = $_POST['content'];
        $data['add_time'] = time();
        //调用news_model
        if($this->news_model->add_news($data)
        {echo "插入成功";
        }else
        {echo "插入失败";}
        }
        }
      6. new.php中显示新闻列表 news_model加入list _news方法

         //======news_model
        class News_model extends CI_Model{
        //构造函数
        public function __construct()
        {
        //调用父类构造函数 必不可少
        parent::__construct();
        //手动载入数据库操作类
        $this->load->database();
        }
        /**
        *@param $data array
        *@return bool 成功返回* true 失败返回FALSE
        */
        const TBL='news';
        public function add_news($data)
        {
        return $this->db->insert(self::TBL,$data);//AR类完成操作
        }
        /**
        *@acess public
        *@return array
        */
        public function list_news()
        {
        $query = $this->db->get(self::TBl,);
        return $query->result_array();
        }
        } //========控制器news.php
        class News extends CI_controller
        {
        public __construct()
        {
        parent::__construct();
        //载入news_model
        $this->load->model('news_model');
        }
        public function add(){
        $this->load_view('add.html');
        }
        public function insert()
        {//获取表单数据
        $data['title'] = $_POST['title'];
        $data['author'] = $_POST['author'];
        $data['content'] = $_POST['content'];
        $data['add_time'] = time();
        //调用news_model
        if($this->news_model->add_news($data)
        {echo "插入成功";
        }else
        {echo "插入失败";}
        }
        public function index()
        {//调用list_news方法
        $data['news'] =$this->news_model->list_news();
        //在视图文件中展示
        $this->load->view('list.html',$data);
        } }
      7. list.html视图文件

         php控制结构替代语法
        <?php foreach($news as $row) : ?>
        <tr>
        <td><?php echo $row['id'] ?></td>
        <td><?php echo $row['title'] ?></td>
        <td><?php echo $row['author'] ?></td>
        <td><?php echo $row['add_time'] ?></td>
        <td><a href="<?php echo site_url('news/edit') ;?>" >编辑</a>
        <a href="<?php echo site_url('news/delete');?>" >删除</a></td>
        </tr>
        <?php endforeach; ?>
        //读取数据库操作已完成

第一天ci框架开发商城2的更多相关文章

  1. 第一天ci框架开发商城1

    ci框架开发商城1 1/28/2016 9:43:52 PM userguide删除 system application controllers 控制器 models 模型 views 视图 模板 ...

  2. 记录使用CI框架开发项目时遇到的问题

    关于CI框架在视图文件中怎样引入静态资源文件(js,css,images)的问题: 第一步:在application/config/config.php文件中配置  $config['base_url ...

  3. CI框架 -- 开发环境、生产环境

    开发者常常希望当系统运行在开发环境或生产环境中时能有不同的行为, 例如,在开发环境如果程序能输出详细的错误信息将非常有用,但是在 生产环境这将造成一些安全问题. ENVIRONMENT 常量 Code ...

  4. CI框架入门笔记

    当前(2019-03-22)CodeIgniter 框架的最新版本是 3.1.5,于2017年6月发布,距今快两年了也没有更新,这与 Laravel 的更新速度相比差距太大了.因为确实,它是一个很古老 ...

  5. ***PHP基于H5的微信支付开发详解(CI框架)

    这次总结一下用户在微信内打开网页时,可以调用微信支付完成下单功能的模块开发,也就是在微信内的H5页面通过jsApi接口实现支付功能.当然了,微信官网上的微信支付开发文档也讲解的很详细,并且有实现代码可 ...

  6. bootstrap框架开发电子商城案例

    bootstrap框架开发电子商城案例 玛图 bootstrap 商城框架

  7. [原创].NET 业务框架开发实战之十 第一阶段总结,深入浅出,水到渠成(后篇)

    原文:[原创].NET 业务框架开发实战之十 第一阶段总结,深入浅出,水到渠成(后篇) .NET 业务框架开发实战之十 第一阶段总结,深入浅出,水到渠成(后篇) 前言:接着上篇来. 系列文章链接: [ ...

  8. struts2框架开发的第一个应用

    写这篇博文,主要是帮助那些刚接触struts2框架开发而不知所措的人,希望批评指正 一.先建立一个web project,命名为struts2 二.在webroot/WEB-INF/lib目录下添加如 ...

  9. CI框架微信开发-自定义菜单

    在CI框架下面实现了自定义菜单功能.写了一个model,一个类库.顺便附带access_token的实现方式 <?php class Makemenu{ public $menustr; pub ...

随机推荐

  1. solr基本入门

    一直想接触下搜索,虽然之前也玩了下solr,但一直没深入,所以也都忘得差不多了,现在solr都6.1了,发展真快.重新拾起,记录下也好,为以后出问题查找起来快一点. 1.搜索最重要的概念就是倒排索引, ...

  2. input输入时光标位置靠上问题解决

    在css中如果我们定义了input高度在输入时会发现光标位置靠上了不在居中了,在Chrome浏览器中,当设置了line-height时,input无文字,光标高度与line-height一致:inpu ...

  3. SwipeMenuListView在ScrollView里上下滑动导致菜单不能显示完全的bug解决方法

    这是因为上下滑动的时候,事件被ScrollView截获了,这时候应该禁止ScrollView截获上下滑动事件,解决方法如下 public class NoRollSwipeMenuListView e ...

  4. 《转载》Spring MVC之@RequestParam @RequestBody @RequestHeader 等详解

    引言: 接上一篇文章,对@RequestMapping进行地址映射讲解之后,该篇主要讲解request 数据到handler method 参数数据的绑定所用到的注解和什么情形下使用: 简介: han ...

  5. MySQL备份mydumper的原理

    本文来自:http://baiyangtx.net/2016/09/04/mydumper-principle/ 相对于MySQL官方提供的逻辑备份工具 mysqldump , mydumper最大的 ...

  6. java--连接SQL数据库获取验证码

    1.导入SQL相关的包: 可以下载:mysql-connector-java-5.1.39-bin.jar 将包导入到工程的方法:project(在工程名上点鼠标右键) -> Build Pat ...

  7. javaSE基础06

    javaSE基础06 一.匿名对象 没有名字的对象,叫做匿名对象. 1.2匿名对象的使用注意点: 1.我们一般不会用匿名对象给属性赋值的,无法获取属性值(现阶段只能设置和拿到一个属性值.只能调用一次方 ...

  8. SpringMVC文件上传和下载

    上传与下载 1文件上传 1.1加入jar包 文件上传需要依赖的jar包 1.2配置部件解析器 解析二进制流数据. <?xml version="1.0" encoding=& ...

  9. (转)springMVC+mybatis+ehcache详细配置

    一. Mybatis+Ehcache配置 为了提高MyBatis的性能,有时候我们需要加入缓存支持,目前用的比较多的缓存莫过于ehcache缓存了,ehcache性能强大,而且位各种应用都提供了解决方 ...

  10. runtime运行时

    /** * Describes the instance variables declared by a class. * * @param cls The class to inspect. * @ ...