基于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 SQLite类
May 07 PHP
PHP大批量数据操作时临时调整内存与执行时间的方法
Apr 20 PHP
解析:通过php socket并借助telnet实现简单的聊天程序
Jun 18 PHP
php strrpos()与strripos()函数
Aug 31 PHP
显示youtube视频缩略图和Vimeo视频缩略图代码分享
Feb 13 PHP
php实现MySQL数据库备份与还原类实例
Dec 09 PHP
PHP+MYSQL实现用户的增删改查
Mar 24 PHP
详解WordPress开发中wp_title()函数的用法
Jan 07 PHP
php 开发中加密的几种方法总结
Mar 22 PHP
PHPExcel中文帮助手册|PHPExcel使用方法(分享)
Jun 09 PHP
PHP封装类似thinkphp连贯操作数据库Db类与简单应用示例
May 08 PHP
PHP哈希表实现算法原理解析
Dec 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
全国FM电台频率大全 - 26 西藏自治区
2020/03/11 无线电
php设计模式 Mediator (中介者模式)
2011/06/26 PHP
PHP 第二节 数据类型之数值型
2012/04/28 PHP
PHP 获取远程文件大小的3种解决方法
2013/07/11 PHP
PHP+MySQL实现在线测试答题实例
2020/01/02 PHP
Laravel 5+ .env环境配置文件详解
2020/04/06 PHP
json对象转字符串如何实现
2012/12/02 Javascript
JS实现横向拉伸动感伸缩菜单效果代码
2015/09/04 Javascript
多功能jQuery树插件zTree实现权限列表简单实例
2016/07/12 Javascript
基于JQuery和原生JavaScript实现网页定位导航特效
2017/04/03 jQuery
详解React开发必不可少的eslint配置
2018/02/05 Javascript
Puppet的一些技巧
2018/09/17 Javascript
layui扩展上传组件模拟进度条的方法
2019/09/23 Javascript
vue使用自定义事件的表单输入组件用法详解【日期组件与货币组件】
2020/06/01 Javascript
vue3.0搭配.net core实现文件上传组件
2020/10/29 Javascript
基于进程内通讯的python聊天室实现方法
2015/06/28 Python
详解Django中的form库的使用
2015/07/18 Python
基于python 字符编码的理解
2017/09/02 Python
Python wxPython库使用wx.ListBox创建列表框示例
2018/09/03 Python
详解小白之KMP算法及python实现
2019/04/04 Python
Python字符串三种格式化输出
2020/09/17 Python
Matplotlib中rcParams使用方法
2021/01/05 Python
python 如何用urllib与服务端交互(发送和接收数据)
2021/03/04 Python
用HTML5制作烟火效果的教程
2015/05/12 HTML / CSS
苹果中国官方网站:Apple中国
2016/07/22 全球购物
新郎新娘婚礼答谢词
2014/01/11 职场文书
工厂实习感言
2014/01/14 职场文书
行政助理的岗位职责
2014/02/18 职场文书
股东大会通知
2015/04/24 职场文书
2015年体育教师个人工作总结
2015/05/12 职场文书
2015年质量管理工作总结范文
2015/05/18 职场文书
2015年城市管理工作总结
2015/05/23 职场文书
大学生见习总结报告
2015/06/24 职场文书
体育教师研修感悟
2015/11/18 职场文书
PHP控制循环操作的时间
2021/04/01 PHP
基于python的matplotlib制作双Y轴图
2021/04/20 Python