mvc:V視圖 Controller: <?php header("Content-Type: text/html; charset=UTF-8"); require'productModel.php'; $porduct = new Porduct(); $a =isset($_GET['a']) ...
mvc:V視圖
<table style="width: 100%;border: 1px solid #ccc" cellpadding="1" cellspacing="1" > <tr style="background-color: #AFD2C8"> <th>產品信息</th> <th>型號</th> <th>價格</th> <th>產品名稱</th> <th>產地</th> <th>操作</th> </tr> <?php foreach($porductlist as $porduct){ $i++; if($i % 2 == 0) echo "<tr bgcolor='#FDCF47' onmouseover=\"this.style.background='#FF1203'\" onmouseout=\"this.style.background=''\">"; else echo "<tr onmouseover=\"this.style.background='#FF1203'\" onmouseout=\"this.style.background=''\">"; echo"<td align='center'>{$porduct['pro_name']}</td> <td align='center'>{$porduct['protype_id']}</td> <td align='center'>{$porduct['price']}</td> <td align='center'>{$porduct['pinpai']}</td> <td align='center'>{$porduct['chandi']}</td> <td align='center'><a href=\"productController.php?id={$porduct['pro_id']}&a=delete\">刪除</a></td> </tr>"; } ?> <tr style="background-color: #ccc"> <th colspan="4"> </th> <th>列表數量</th> <th><?php echo $porductCount ?></th> </tr> </table>
Controller:
<?php header("Content-Type: text/html; charset=UTF-8"); require'productModel.php'; $porduct = new Porduct(); $a =isset($_GET['a']) ? $_GET['a']:'list'; if ($a =='list'){ $i=0; //獲取數據列表 $porductlist = $porduct->getporductList(); $porductCount = $porduct->getCount(); //載入HTML代碼 require 'product.html'; }else if($a =='delete'){ $por_id = $_GET['id']; if($porduct -> delete($por_id)){ echo "刪除成功。。。"; header("refresh:2;url=productController.php?a=list"); }else{ echo "刪除失敗。。。"; header("refresh:2;url=productController.php?a=list"); } }controller
Model:
<?php require 'MySQLDB.class.php'; /** * */ class Porduct { protected $_db; public function __construct() { $this-> _db = MySQLDB::GetDB(array( 'localhost' =>'127.0.0.1' , 'user' =>'root' , 'pass' =>'root' , 'port' =>'3306' , 'charset' =>'utf8', 'dbname' =>'userinfolist', )); } //查詢數據列表 public function getporductList() { $sql= "SELECT * FROM product WHERE pro_id > -1"; return $this->_db->GetRows($sql); } // 查詢列表數量 public function getCount() { $sql= "SELECT COUNT(*) FROM product WHERE pro_id > -1"; return $this->_db->GetOneData($sql); } // 刪除 public function delete($por_id) { $sql ="DELETE FROM product WHERE Pro_id = {$por_id}"; return $this->_db->query($sql); } }productModel.php
<?php /* mysql的資料庫工具類,其作用是:由它來完成數據的各種常見操作: 設計一個類,這個類要達到這個要求: 1,一實例化該類(得到一個對象),就連接上了目標資料庫; 2,這個對象還可以選擇(更換)新的資料庫。 7,設計為單例模式 3,這個對象還可以執行“增刪改”操作,並返回執行的結果——true或false 4,這個對象可以執行“返回一行數據”的查詢操作,並返回一個一維數組! 5,可以返回多行多列數據(實際是二維數組); 6,可以返回一行一列數據(實際是一個標量數據); */ class MySQLDB{ private $link = null; //用於存放連接後的“連接資源” private $host; private $port; private $user; private $pass; private $charset; private $dbname = null; //用於存放當前連接的資料庫名 //1,一實例化該類(得到一個對象),就連接上了目標資料庫; private function __construct($conf){ //考慮傳過來的鏈接信息的預設值問題,並存儲到當前對象的屬性中 $this->host = empty($conf['host']) ? "localhost" : $conf['host']; $this->port = empty($conf['port']) ? "3306" : $conf['port']; $this->user = empty($conf['user']) ? "root" : $conf['user']; $this->pass = empty($conf['pass']) ? "" : $conf['pass']; $this->charset = empty($conf['charset']) ? "utf8" : $conf['charset']; $this->dbname = empty($conf['dbname']) ? "php46" : $conf['dbname']; $this->link = mysql_connect("{$this->host}:{$this->port}","{$this->user}","{$this->pass}") or die('連接資料庫失敗!'); mysql_query("set names {$this->charset}", $this->link); //mysql_set_charset("utf8"); mysql_query("use {$this->dbname}", $this->link); //myql_select_db("XX資料庫"); } static function GetDB($conf){ static $db = null; //用於存儲本類的唯一對象 if(is_null($db)){ $db = new self($conf); } return $db; } //2,這個對象還可以選擇(更換)新的資料庫。 function select_db($db){ mysql_query("use $db", $this->link); $this->dbname = $db; } //3,這個對象還可以執行“增刪改”等無返回數據的操作,並返回執行的結果——true或false function exec($sql){ // $result = mysql_query($sql, $this->link); // if($result === false){ // echo "<p>資料庫執行失敗,請參考如下信息:"; // echo "<br />錯誤信息:" . mysql_error(); // echo "<br />錯誤代號:" . mysql_errno(); // echo "<br />錯誤語句:" . $sql; // die(); // } $result = $this->query( $sql );//此行代替以上n行 return $result; } //4,這個對象可以執行“返回一行數據”的查詢操作,並返回一個一維數組! //類似這樣的語句:select * from user_info where id = 8; function GetOneRow($sql){ $result = $this->query( $sql );//此行代替以上n行 $rec = mysql_fetch_assoc($result); //從結果集獲得一行數據,並作為關聯數組 return $rec; } //5,這個對象可以執行“返回多行數據”的查詢操作,並返回一個二維數組! //類似這樣的語句:select * from user_info where id > 8; function GetRows( $sql ){ $result = $this->query($sql);//找query方法,獲得結果集! $arr = array(); //空數組 while ($rec = mysql_fetch_assoc($result)){ $arr[] = $rec; //$rec是一維數組 } return $arr; //這就是二維數組 } //6,這個對象可以執行“返回一行一列數據”的查詢操作,並返回一個“標量數據”(單個數據)! //類似這樣的語句:select age from user_info where id = 8; function GetOneData( $sql ){ $result = $this->query($sql);//找query方法,獲得結果集! $rec = mysql_fetch_row($result); $data = $rec[0]; return $data; //這就是單個數據 } //此方法專門執行sql語句,包括所有增刪改查等等,並處理執行失敗的情形 function query( $sql ){ $result = mysql_query($sql, $this->link); if($result === false){ echo "<p>資料庫執行失敗,請參考如下信息:"; echo "<br />錯誤信息:" . mysql_error(); echo "<br />錯誤代號:" . mysql_errno(); echo "<br />錯誤語句:" . $sql; die(); } return $result; } function close_link(){ mysql_close($this->link); } }MySQLDB.class.php