基于Codeigniter框架实现的student信息系统站点动态发布功能详解


Posted in PHP onMarch 23, 2017

本文实例讲述了基于Codeigniter框架实现的student信息系统站点动态发布功能。分享给大家供大家参考,具体如下:

既然是动态站点,肯定有数据库表的存在,在此不废话,下面我们来看一下数据库表:

CREATE TABLE IF NOT EXISTS `student`(
    //主键id
    `id` int(11) NOT NULL AUTO_INCREMENT,
    //学生姓名
    `s_name` varchar(64) NOT NULL,
    //学生家长的姓名
    `p_name` varchar(64) NOT NULL,
    //学生的家庭住址
    `address` varchar(100) NOT NULL,
    //所在城市
    `city`  varchar(30) NOT NULL,
    //所在国家
    `state` varchar(30) NOT NULL,
    //所在地区的邮政编码
    `zip`  varchar(20) NOT NULL,
    //电话
    `phone` varchar(15) NOT NULL,
    //邮件
    `email` varchar(20) NOT NULL,
    //主键设置
    PRIMARY KEY(`id`)
)ENGINE=INNODB DEFAULT CHARSET=UTF8 AUTO_INCREMENT=1;

*注:在此我有两个地方需要解释一下:

1."IF NOT EXISTS":如果数据在创建表的时候,在前面加上了"IF NOT EXISTS",那就表明即使此表已经存在,也会执行成功;

2."ENGINE=INNODB":这个是数据库的引擎设置,常用mysql数据库引擎有ISAM,MYISAM,HEAP等;

具体参考资料:http://baike.baidu.com/view/68455.htm

在创建完数据表之后,我们再来看一下数据库的连接。打开.\application\config\database.php文件,在内设置数据库变量参数,在.\application\config\config.php文件内设置基本的URL,对于我的基本url是:http://localhost/codeigniter/

下面我们来看看mvc思想架构的设计

首先打开.application\controllers\文件目录,在里面创建一个student.php控制器:

student.php

在此我们先来通过student这个控制器来测试一下,打印出helloworld,记住访问路径是:http://localhost/codeigniter/index.php/student/index

class student extends CI_Controller{
    //student controller construct
    public function __construct(){
     parent::__construct();
    }
    //index test function
    public function index(){
     echo "helloworld";
    }
}

it output: helloworld

下面我们来换一下,看看下面这段code:

class student extends CI_Controller{
    //student controller
    public function __construct(){
      parent::__construct();
    }
    //define a array,name is arraydata, it have three parameters
    protected $arraydata=array(
      'title'=>'Classroom:Home page',
      'headline'=>'welcome to the classroom Mangement System',
      'include'=>'student_index'
    );
    //index function
    public function index(){
      $this->load->view('template',$this->arraydata);
    }
}

这段代码需要一个视图,template.php

template.php:

<!DOCTYPE html PUBLIC '-//W3C//DTD HTML 4.01 Strict//EN' 'http://www.w3.org/TR/html4/strict.dtd'>
<html>
<head>
<meta http-equiv='Content-Type' content='text/html; charset=utf-8'>
<title><?php echo $title; ?></title>
</head>
<body>
  <h1><?php echo $headline; ?></h1>
  <?php $this->load->view($include)?>
</body>
</html>

其中:

this−>load−>view(include);

包含的是另外一个视图文件studen_index.php文件

student_index.php:

<p>Congratulations. Your initial setup is complete!</p>

联合输出:

welcome to the classroom Mangement System
Congratulations. Your initial setup is complete!

数据的CURD

C 控制器

先来看看数据的增加过程,在student控制器中增加一个add()方法

class student extends CI_Controller{
    //student controller
    public function __construct(){
      parent::__construct();
    }
    //new add function
    public function add(){
      $this->load->helper('form');
      //display information for the view
      $data['title']='Classroom:Add Page';
      $data['headline']='Add data';
      $data['include']='student_add';
      //upload view
      $this->load->view('template',$data);
    }
    //create function
    public function create(){
      $this->load->helper('url');
      $this->load->model('MStudent','',TRUE);
      $this->MStudent->addData($_POST);
      redirect('student/add','reflesh');
    }
    //update function
    public function update(){
      //upload codeigniter library
      $this->load->library('table');
      $this->load->model('MStudent','',TRUE);
      $student_query=$this->MStudent->updateData();
      $update_table=$this->table->generate($student_query);
      //display information for the view
      $data['title']='Classroom:Update Page';
      $data['headline']='Update Page';
      $data['include']='update_student';
      $data['updatetable']=$update_table;
      $this->load->view('template',$data);
    }
    //index function
    public function index(){
      $data['title']='Classroom:Home page';
      $data['headline']='welcome to classroom Mangement System';
      $data['include']='student_index';
      $this->load->view('template',$this->arraydata);
    }
}

V 视图

template .php

<html>
  <head>
    <title><?php echo $title;?></title>
  </head>
  <body>
    <h1><?php echo $headline ?></h1>
    <?php $this->load->view($include)?>
  </body>
</html>

student_add.php

<?php
  echo form_open('student/create');
  $field_name=array('s_name','p_name','address','city','state','zip','phone','email');
  foreach($field_name as $value){
    echo "<p>".$value.":"
    echo form_input(array('name'=>$value));
    echo "</p>"
  }
  form_submit('','Add');
  form_close();
?>

update_student.php

<?php
  echo $updatetable;
?>

M 模型

class MStudent extends CI_Model{
  public function addData($data){
    $this->db->insert('student',$data);
  }
  public function updateData(){
    $this->db->get('student');
  }
}

希望本文所述对大家基于CodeIgniter框架的PHP程序设计有所帮助。

PHP 相关文章推荐
配置PHP使之能同时支持GIF和JPEG
Oct 09 PHP
JS与PHP向函数传递可变参数的区别实例代码
May 18 PHP
部署PHP项目应该注意的几点事项分享
Dec 20 PHP
PHP框架Laravel学习心得体会
Oct 28 PHP
解决ThinkPHP下使用上传插件Uploadify浏览器firefox报302错误的方法
Dec 18 PHP
Laravel实现构造函数自动依赖注入的方法
Mar 16 PHP
PHP生成短网址方法汇总
Jul 12 PHP
利用PHP访问带有密码的Redis方法示例
Feb 09 PHP
关于PHP虚拟主机概念及如何选择稳定的PHP虚拟主机
Nov 20 PHP
PhpStorm配置Xdebug调试的方法步骤
Feb 02 PHP
Laravel实现通过blade模板引擎渲染视图
Oct 25 PHP
Swoole源码中如何查询Websocket的连接问题详解
Aug 30 PHP
php PDO实现的事务回滚示例
Mar 23 #PHP
降低PHP Redis内存占用
Mar 23 #PHP
使用Codeigniter重写insert的方法(推荐)
Mar 23 #PHP
PHP如何读取由JavaScript设置的Cookie
Mar 22 #PHP
PHP实现随机生成水印图片功能
Mar 22 #PHP
php session的应用详细介绍
Mar 22 #PHP
php 开发中加密的几种方法总结
Mar 22 #PHP
You might like
成本8450万,票房仅2亿,口碑两极分化,又一部DC电影扑街了
2020/04/09 欧美动漫
iphone safari不支持position fixed的解决方法
2012/05/04 Javascript
Query中click(),bind(),live(),delegate()的区别
2013/11/19 Javascript
探讨jQuery的ajax使用场景(c#)
2013/12/03 Javascript
JavaScript设计模式之观察者模式(发布者-订阅者模式)
2014/09/24 Javascript
jQuery实现div随意拖动的实例代码(通用代码)
2016/01/28 Javascript
js通过classname来获取元素的方法
2016/11/24 Javascript
Javascript中的神器——Promise
2017/02/08 Javascript
浅谈vue项目优化之页面的按需加载(vue+webpack)
2017/12/11 Javascript
利用jqprint插件打印页面内容的实现方法
2018/01/09 Javascript
p5.js入门教程之图片加载
2018/03/20 Javascript
webpack 样式加载的实现原理
2018/06/12 Javascript
js的继承方法小结(prototype、call、apply)(推荐)
2019/04/17 Javascript
Javascript实现关闭广告效果
2021/01/29 Javascript
python操作gmail实例
2015/01/14 Python
深入理解Django的自定义过滤器
2017/10/17 Python
详谈Numpy中数组重塑、合并与拆分方法
2018/04/17 Python
Django 重写用户模型的实现
2019/07/29 Python
python实现文件批量编码转换及注意事项
2019/10/14 Python
Python生成验证码、计算具体日期是一年中的第几天实例代码详解
2019/10/16 Python
django项目中新增app的2种实现方法
2020/04/01 Python
编译 pycaffe时报错:fatal error: numpy/arrayobject.h没有那个文件或目录
2020/11/29 Python
美国折扣宠物药房:Total Pet Supply
2018/05/27 全球购物
荷兰鞋类购物网站:Donelli
2019/05/24 全球购物
SQL Server面试题
2013/04/04 面试题
英文版餐饮业求职信
2013/10/18 职场文书
业务员简历自我评价
2014/03/06 职场文书
班干部演讲稿
2014/04/24 职场文书
2014年小学安全工作总结
2014/12/04 职场文书
爱心助学感谢信
2015/01/21 职场文书
先进教师个人总结
2015/02/11 职场文书
红楼梦读书笔记
2015/06/25 职场文书
低版本Druid连接池+MySQL驱动8.0导致线程阻塞、性能受限
2021/07/01 MySQL
Python 数据可视化神器Pyecharts绘制图像练习
2022/02/28 Python
SONY AN-LP1 短波有源天线放大器图
2022/04/05 无线电
js 实现验证码输入框示例详解
2022/09/23 Javascript