基于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文件上传原理简单分析
May 29 PHP
php数组(array)输出的三种形式详解
Jun 05 PHP
php截取中文字符串不乱码的方法
Dec 25 PHP
yii操作session实例简介
Jul 31 PHP
php实现的太平洋时间和北京时间互转的自定义函数分享
Aug 19 PHP
Drupal简体中文语言包安装教程
Sep 27 PHP
Zend Framework教程之连接数据库并执行增删查的方法(附demo源码下载)
Mar 21 PHP
PHP实现RTX发送消息提醒的实例代码
Jan 03 PHP
PHP htmlspecialchars()函数用法与实例讲解
Mar 08 PHP
YII框架学习笔记之命名空间、操作响应与视图操作示例
Apr 30 PHP
laravel 5.3 单用户登录简单实现方法
Oct 14 PHP
Laravel等框架模型关联的可用性浅析
Dec 15 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
综合图片计数器
2006/10/09 PHP
关于Appserv无法打开localhost问题的解决方法
2009/10/16 PHP
php中定义网站根目录的常用方法
2010/08/08 PHP
PHP封装的数据库模型Model类完整示例【基于PDO】
2019/03/14 PHP
php求斐波那契数的两种实现方式【递归与递推】
2019/09/09 PHP
PHP扩展安装方法步骤解析
2020/11/24 PHP
精解window.setTimeout()&amp;window.setInterval()使用方式与参数传递问题!
2007/11/23 Javascript
用jQuery实现一些导航条切换,显示隐藏的实例代码
2013/06/08 Javascript
jQuery如何取id有.的值一般的方法是取不到的
2014/04/18 Javascript
JavaScript实现下拉列表框数据增加、删除、上下排序的方法
2015/08/11 Javascript
js计算文本框输入的字符数
2015/10/23 Javascript
Javascript表单特效之十大常用原理性样例代码大总结
2016/07/12 Javascript
实现隔行换色效果的两种方式【实用】
2016/11/27 Javascript
servlet+jquery实现文件上传进度条示例代码
2017/01/25 Javascript
js实现三级联动效果(简单易懂)
2017/03/27 Javascript
理解 Node.js 事件驱动机制的原理
2017/08/16 Javascript
jQuery EasyUI结合zTree树形结构制作web页面
2017/09/01 jQuery
在vue项目创建的后初始化首次使用stylus安装方法分享
2018/01/25 Javascript
关于自定义Egg.js的请求级别日志详解
2018/12/12 Javascript
解决layui的input独占一行的问题
2019/09/10 Javascript
HTML+JS实现“代码雨”效果源码(黑客帝国文字下落效果)
2020/03/17 Javascript
基于p5.js 2D图像接口的扩展(交互实现)
2020/11/30 Javascript
python使用cookielib库示例分享
2014/03/03 Python
Python多线程、异步+多进程爬虫实现代码
2016/02/17 Python
你眼中的Python大牛 应该都有这份书单
2017/10/31 Python
Python Numpy 数组的初始化和基本操作
2018/03/13 Python
让Python脚本暂停执行的几种方法(小结)
2019/07/11 Python
阿里云ECS服务器部署django的方法
2019/08/29 Python
Python-jenkins模块之folder相关操作介绍
2020/05/12 Python
Expedia丹麦:全球领先的旅游网站
2018/03/18 全球购物
Carolina工作鞋官网:Carolina Footwear
2019/03/14 全球购物
如何减少垃圾回收让内存更加有效使用
2013/10/18 面试题
财务出纳员岗位职责
2013/11/26 职场文书
求职自我评价范文
2015/03/09 职场文书
高二语文教学反思
2016/02/16 职场文书
课文《燕子》教学反思
2016/02/17 职场文书