基于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 计算两个时间戳相隔的时间的函数(小时)
Dec 18 PHP
joomla内置的表单验证功能使用方法
Jun 11 PHP
php线性表顺序存储实现代码(增删查改)
Feb 16 PHP
慎用preg_replace危险的/e修饰符(一句话后门常用)
Jun 19 PHP
php计算数组不为空元素个数的方法
Jan 27 PHP
php setcookie函数的参数说明及其用法
Apr 20 PHP
PHP实现的mysql主从数据库状态检测功能示例
Jul 20 PHP
PHP实践教程之过滤、验证、转义与密码详解
Jul 24 PHP
windows下的WAMP环境搭建图文教程(推荐)
Jul 27 PHP
php语言注释,单行注释和多行注释
Jan 21 PHP
PHP+MySQL实现模糊查询员工信息功能示例
Jun 01 PHP
thinkPHP和onethink微信支付插件分享
Aug 11 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
PHP 远程关机实现代码
2009/11/10 PHP
php debug 安装技巧
2011/04/30 PHP
Zend的Registry机制的使用说明
2013/05/02 PHP
ThinkPHP之import方法实例详解
2014/06/20 PHP
php使用pack处理二进制文件的方法
2014/07/03 PHP
PHP获取音频文件的相关信息
2015/06/22 PHP
PHP内核探索之变量
2015/12/22 PHP
PHP定义字符串的四种方式详解
2018/02/06 PHP
PHP程序守护进程化实现方法详解
2020/07/16 PHP
IE autocomplete internet explorer's autocomplete
2007/06/30 Javascript
JS基础之undefined与null的区别分析
2011/08/08 Javascript
js实现(全选)多选按钮的方法【附实例】
2016/03/30 Javascript
JavaScript表单焦点自动切换代码
2016/07/24 Javascript
原生Javascript插件开发实践
2017/01/09 Javascript
基于Angular.js实现的触摸滑动动画实例代码
2017/02/19 Javascript
JS组件系列之JS组件封装过程详解
2017/04/28 Javascript
Vue.js上传图片到阿里云OSS存储的方法示例
2018/12/13 Javascript
[01:43]3.19DOTA2发布会 三代刀塔人第三代
2014/03/25 DOTA
python安装mysql-python简明笔记(ubuntu环境)
2016/06/25 Python
快速解决PyCharm无法引用matplotlib的问题
2018/05/24 Python
Windows下将Python文件打包成.EXE可执行文件的方法
2018/08/03 Python
Python3使用Matplotlib 绘制精美的数学函数图形
2019/04/11 Python
python-视频分帧&amp;多帧合成视频实例
2019/12/10 Python
python颜色随机生成器的实例代码
2020/01/10 Python
pytorch 彩色图像转灰度图像实例
2020/01/13 Python
python 如何对logging日志封装
2020/12/02 Python
CSS3中的transform属性进行2D和3D变换的基本用法
2016/05/12 HTML / CSS
Belle Maison倍美丛官网:日本千趣会旗下邮购网站
2016/07/22 全球购物
校园歌手大赛策划书
2014/01/17 职场文书
疾病捐款倡议书
2014/05/13 职场文书
医学专业毕业生推荐信
2014/07/12 职场文书
安全责任书模板
2014/07/22 职场文书
万能检讨书开头与结尾怎么写
2015/02/17 职场文书
2015国庆节66周年标语
2015/07/30 职场文书
技术入股合作协议书
2016/03/21 职场文书
Python学习之异常中的finally使用详解
2022/03/16 Python