基于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-MySQL教程归纳总结
Jun 07 PHP
用mysql内存表来代替php session的类
Feb 01 PHP
Erlang的运算符(比较运算符,数值运算符,移位运算符,逻辑运算符)
Jul 23 PHP
关于svn冲突的解决方法
Jun 21 PHP
php addslashes 利用递归实现使用反斜线引用字符串
Aug 05 PHP
php 不使用js实现页面跳转
Feb 11 PHP
php类声明和php类使用方法示例分享
Mar 29 PHP
php将字符串全部转换成大写或者小写的方法
Mar 17 PHP
Yii2创建多界面主题(Theme)的方法
Oct 08 PHP
php、mysql查询当天,查询本周,查询本月的数据实例(字段是时间戳)
Feb 04 PHP
PHP实现根据密码长度显示安全条
Jul 04 PHP
php使用fputcsv实现大数据的导出操作详解
Feb 27 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
用Socket发送电子邮件
2006/10/09 PHP
Codeigniter(CI)框架分页函数及相关知识
2014/11/03 PHP
Yii2中OAuth扩展及QQ互联登录实现方法
2016/05/16 PHP
浅谈php fopen下载远程文件的函数
2016/11/18 PHP
基于jQuery的简单九宫格实现代码
2012/08/09 Javascript
JS关键字变色实现思路及代码
2013/02/21 Javascript
JS实现自动定时切换的简洁网页选项卡效果
2015/10/13 Javascript
javascript学习小结之prototype
2015/12/03 Javascript
探讨JavaScript标签位置的存放与功能有无关系
2016/01/15 Javascript
Vue应用部署到服务器的正确方式
2017/07/15 Javascript
Vue 使用中的小技巧
2018/04/26 Javascript
js实现随机8位验证码
2020/07/24 Javascript
jQuery层叠选择器用法实例分析
2019/06/28 jQuery
Vue实现商品飞入购物车效果(电商项目)
2019/11/26 Javascript
vue.js iview打包上线后字体图标不显示解决办法
2020/01/20 Javascript
[06:59]DOTA2-DPC中国联赛3月7日Recap集锦
2021/03/11 DOTA
Python三元运算实现方法
2015/01/12 Python
Python中Django发送带图片和附件的邮件
2017/03/31 Python
python 性能优化方法小结
2017/03/31 Python
tensorflow学习笔记之简单的神经网络训练和测试
2018/04/15 Python
Python实现绘制双柱状图并显示数值功能示例
2018/06/23 Python
使用Pandas对数据进行筛选和排序的实现
2019/07/29 Python
详解python中index()、find()方法
2019/08/29 Python
python实现删除列表中某个元素的3种方法
2020/01/15 Python
基于css3仿造window7的开始菜单
2010/06/17 HTML / CSS
wedgwood加拿大官网:1759年成立的英国国宝级陶瓷餐具品牌
2018/07/17 全球购物
C#如何允许一个类被继承但是避免这个类的方法被重载?
2015/02/24 面试题
吨的认识教学反思
2014/04/27 职场文书
十佳好少年事迹材料
2014/08/21 职场文书
中国世界遗产导游词
2015/02/13 职场文书
美术教师求职信范文
2015/03/20 职场文书
2016年党支部公开承诺书
2016/03/25 职场文书
小程序与后端Java接口交互实现HelloWorld入门
2021/07/09 Java/Android
Python Pandas数据分析之iloc和loc的用法详解
2021/11/11 Python
Python中的tkinter库简单案例详解
2022/01/22 Python
Nginx虚拟主机的配置步骤过程全解
2022/03/31 Servers