網站建立
碼代碼前應該首先確定這個網站的數據庫需要哪些表單,每一個表單有哪些信息,比如你要展示產品,你就要一個展示產品封面的表單tb_album(以此爲例)等等,tb_album裏面需要有id,type,price,album_url,intro等信息。然後在控制器tb_album裏面寫相應的方法,model裏面寫數據庫操作,view裏面寫展示界面。
//控制器tb_album
<?php
class Tb_album extends CI_Controller{
var $flag='';
var $type='';
function __construct(){
parent::__construct();
$this->load->helper('url');
$this->load->model('Album_model','',TRUE);
}
function show($flag){
if ($flag!='2'||$flag!='3'||$flag!='4') {
$album=$this->Album_model->getAll();
$data['album']=$album;
}
if($flag=='2'){
$album=$this->Album_model->getClass();
$data['album']=$album;
}
if($flag=='3'){
$album=$this->Album_model->getLovers();
$data['album']=$album;
}
if($flag=='4'){
$album=$this->Album_model->getOneself();
$data['album']=$album;
}
$this->load->view('album/show_pic',$data);
}
function album_add(){
$this->load->view('album/show_add');
}
function album_do_add(){
$data['type'] = $this->input->post('type');
$data['price'] = $this->input->post('price');
$data['intro'] = $this->input->post('intro');
$config['upload_path'] ='./source/uploads/';
$config['file_name']=uniqid();
$config['allowed_types'] = 'gif|jpg|png|jpeg|bmp';
$this->load->library('upload',$config);
if (!$this->upload->do_upload('userfile'))
{
$error = array('error' => $this->upload->display_errors());
}else{
$arr=$this->upload->data();
$path='source/uploads/'.$arr['file_name'];
}
$data['album_url']=$path;
$this->Album_model->album_insert($data);
redirect("tb_album/album_add","refresh");
}
function album_delete($id,$type){
$this->Album_model->album_delete($id);
redirect("tb_album/show/$type","refresh");
}
function album_updata($id){
$que=$this->Album_model->getByid($id);
$data['result']=$que;
$this->load->view('album/show_updata',$data);
}
function album_do_updata(){
$id = $this->input->post('id');
$data['type'] = $this->input->post('type');
$data['price'] = $this->input->post('price');
$data['intro'] = $this->input->post('intro');
$config['upload_path'] ='./source/uploads/';
$config['file_name']=uniqid();
$config['allowed_types'] = 'gif|jpg|png|jpeg|bmp';
$this->load->library('upload',$config);
if (!$this->upload->do_upload('userfile'))
{
$error = array('error'=> $this->upload->display_errors());
}else{
$arr=$this->upload->data();
$path='source/uploads/'.$arr['file_name'];
}
$data['album_url']=$path;
$this->Album_model->album_updata($id,$data);
redirect('tb_album/show/1','refresh');
}
}
?>
控制器裏面寫的就是之前寫的數據庫的增、刪、改,只不過之前寫的沒用到model,這次是將數據庫寫到model裏面,然後$this->Album_model->方法名();加載model,這樣寫的話更加規範,網站比較大時後期維護更加容易。
然後views裏面新建一個album文件夾,裏面實現界面展示,拿show_pic爲例。
<!DOCTYPE html>
<html>
<head>
<title>電子產品列表</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link rel="stylesheet" type="text/css" href="<?php echo base_url()?>source/css/contract.css">
</head>
<body>
<table>
<th>ID</th>
<th>類型</th>
<th>價格</th>
<th>文字介紹</th>
<th>照片</th>
<th colspan="2" style="text-align: center;width: 100px">操作</th>
<?php foreach ($album as $item):?>
<tr>
<td name="id" style="text-align: center;"><?php echo $item->id?></td>
<td name="type" width="300px" style="text-align: center;"><?php echo $item->type?></td>
<td name="price" width="300px" style="text-align: center;"><?php echo $item->price?></td>
<td name="intro" width="400px" style="text-align: center;">
<div style="text-align: center;width:200px"><?php echo $item->intro?></div></td>
<td class="photo" style="text-align: center;"><a href="<?php if($item->album_url!=''){echo '';}else {echo site_url("uploads/upload/$item->type");}?>"><img width="100" height="100" alt="" src="<?php echo base_url().$item->album_url?> "></a></td>
<td style="text-align: center;width: 100px"><a onclick="return confirm('確定修改?')" href="<?php echo site_url("tb_album/album_updata/$item->id")?>">修改</a></td>
<td width="100px"><a onclick="return confirm('確定刪除?')" href="<?php echo site_url("tb_album/album_delete/$item->id/type");?>">刪除</a></td>
</tr>
<?php endforeach;?>
</table>
</body>
</html>
然後其他的view都是類似的。
這樣的話,一個小模塊就做好了,然後再根據網站的功能需求,再添加模塊就好了。
各個模塊做好後,整個php後臺就搭好了,然後就是和前端整合了,整合的話就需要寫一個controller加載前端的view,再在view裏面修改對應的內容即可。
在之後就是上線了,什麼申請虛擬主機、購買域名等等.....
問題總結
1、<?php echo site_url('tb_album/album_do_add')?>使用這個方法需要在config/autoload下面將$autoload['helper'] = array('url');改爲$autoload['helper'] = array('url');
2、不知道爲什麼這兩句不能連着用,同時使用就報錯,redirect前面不能有輸出?
echo '<script language="JavaScript">'.'alert("刪除成功!")'.'</script>';
redirect("product/product_showlist","refresh");
目前只想到這兩個,,,
由於剛學php不久,很多錯誤難免,歡迎留言指正