11.8学习笔记
封裝一套自己的model類(增 刪? 查 改)
select * from news where 1 :默認子查詢查詢所有的條件 ,如果有其他的條件可以覆蓋默認查詢所有的條件
mysqli_insert_id //返回添加的id
mysqli_affected_rows();//返回刪除的行數
例子:
header("Content-type:text/html;charset=utf-8");
class Model{
//封裝一套自己的model類
//鏈接池
public $link = NULL;
//鏈接表
public $tablename;
//鏈接數據庫配置
public function __construct($tablename)
{
$this->tablename = $tablename; //獲取表名
$this->link = mysqli_connect(HOST,USER,PASS) or die("鏈接數據庫失敗");
mysqli_select_db($this->link,DB);
mysqli_set_charset($this->link,"utf8");
}
//查詢單行語句
public function dbgetone($where="1")
{
$sql = "select * from {$this->tablename} where {$where}";
echo ($sql);
$res = mysqli_query($this->link,$sql);
$row = mysqli_fetch_assoc($res);
return $row;
}
//查詢多行語句
public function dbgetlist($where="1",$order="order by id desc",$limit="0,5")
{
$sql = "select * from {$this->tablename} where {$where} {$order} limit {$limit}";
$res =mysqli_query($this->link,$sql);
$data = array();
while($row = mysqli_fetch_assoc($res))
{
$data[] = $row;
}
return $data;
}
//添加語句
public function dbinsert($data=array())
{
$str_key = ""; // `id`,`title`,`content`
$str_val = ""; // 'asda','asd','asdas'
foreach($data as $k=>$v)
{
$str_key .= $k.","; // `id`,`title`,`content`,
$str_val .= "'".$v."'," ;//'asda','asd','asdas',
}
$str_key = substr($str_key,0,-1);
//echo ($str_key)."<br>";
$str_val = substr($str_val,0,-1);
//echo ($str_val);die;
$sql = "insert into {$this->tablename} ({$str_key}) VALUES ({$str_val})";
//echo ($sql);
$res = mysqli_query($this->link,$sql);
return mysqli_insert_id($this->link);//返回添加的id
}
//修改語句
public function dbgetupdate($where,$data=array())
{
$key_value_str = ""; //`title`="哈哈哈",`content`="嘻嘻嘻"
foreach($data as $k=>$v)
{
$key_value_str .= $k."='".$v."',";//`title`="哈哈哈哈",`content`="嘻嘻嘻",
}
$key_value_str = substr($key_value_str,0,-1);
//echo ($key_value_str);die;
$sql = "update {$this->tablename} set {$key_value_str} where {$where}";
echo ($sql);
$res = mysqli_query($this->link,$sql);
}
//刪除語句
public function dbdelete($where)
{
$sql="delete from {$this->tablename} where {$where}";
//echo ($sql);die;
$res = mysqli_query($this->link,$sql);
return mysqli_affected_rows($this->link);//返回刪除的行數
}
public function dbcount()
{
//統計總條數 ceil(總條數 / 固定的條數) 得到總頁數
$sql = "select count(*) as count from `{$this->tablename}`";
$res = mysqli_query($this->link,$sql);
$row = mysqli_fetch_assoc($res);
//print_r($row);die;
$pageNum = $row['count'];//得到總條數
return $pageNum;
}
}
define("HOST","127.0.0.1");
define("USER","root");
define("PASS","root");
define("DB","xiexie");
$m = new Model("news");
$id = 1;
$b = $m->dbgetone("id=".$id);
//print_r($b);
$m = new Model("news");
$a = $m->dbgetlist();
print_r($a);
$m = new Model("news");
$arr = ["title"=>"sadsa","content"=>"asdasda","time"=>"11-8","category_id"=>2];
$m->dbinsert($arr);
$m = new Model("admin");
$m->dbdelete("id=6");
$m = new Model("admin");
$data = ["username"=>"aaaaaa","password"=>"bbbbbbbbbbb"];
$m->dbgetupdate("id=2",$data);
?
?
?
?
?
?
smarty
(1) : Smarty : 模板引擎 (視圖分離(php 和 html 分離)) 用Smarty模板引擎mvc模式,Smarty模板寫了自己的一套模板語法,且比較簡單.
(2):Smarty版本 Smarty2版本 Smarty3版本
Smarty用于ecshop框架比較多, ecshop做購物商城 (二次開發 )
頭次開發 (自己封裝低層代碼) mvc 框架
libs:核心文件
Smarty.class.php :Smarty核心文件
(3):安裝
拷貝libs文件
加載libs文件下的Smarty.class.php
存放視圖文件
template: 視圖 view:視圖
$smarty->template_dir = "template/"; //設置smarty視圖分離中的模板的路徑,以后所有的視圖文件都放在template文件夾下面.
存放程序編譯文件
$smarty->compile_dir = "templates_c/";//設置smarty編譯文件的路徑
html文件后綴名可以用:tpl后綴 html
參數傳遞:
$smarty->assign(‘標簽名’,‘值');
?
加載視圖文件:
$smarty->display("文件路徑");
$smarty->display("1.tpl"); : 加載視圖文件
頁面循環輸出值:
循環列表
Smarty2版本:<{foreach from=$result key=k item=v}><{$k}><{/foreach}>
Smarty3版本:
{foreach 標簽名 as $k=>$v}
{$k}
{/foreach}
{foreach $data as $k=>$v}
{$k}
{/foreach}
設置兩個備用屬性 (為了防止頁面里面的語法和Smarty語法起沖突)
如果沒有設置備用屬性,默認就是 {開始 結束} ;
如果設置了備用屬性,那就必須按照備用屬性使用
?$smarty->left_delimiter = "<{";
$smarty->right_delimiter = "}>";
輸出單個值:
<{標簽名}>
<{$name}>
傳入session的值
$smarty->assign("username",$_SESSION['username']);
$smarty語法可以傳入數據類型的值,也可以傳入超級數組的值.
模板的注釋
<{*歡迎謝燕*}>
//加載模板文件
<{include file="文件路徑"}>
設置緩存文件: (緩存開發時不啟用,項目上線了之后啟用)
$smarty->caching = true; //默認設置為1,默認為1個小時的周期,1個小時周期已過自動會清除緩存
$smarty->caching = 2; //緩存各自的緩存(模板生成各自的緩存) 有各自的緩存周期
$smarty->cache_lifetime = 300;?//執行代碼之后.
設置緩存存放的文件
$smarty->cache_dir="緩存文件夾";
?
?
例子:
?header("Content-type:text/html;charset=utf-8");
//加載核心文件
session_start();
require_once("libs/Smarty.class.php");
$smarty = new Smarty();//實例化得到Smarty類
//定義一個視圖文件,存放html文件
$smarty->template_dir = "template/";
//程序編譯文件
$smarty->compile_dir = "templates_c/";//設置smarty編譯文件的路徑
//設置緩存文件
$smarty->cache_dir = "cache/";//設置緩存文件
$smarty->caching = 2; //緩存各自的緩存(模板生成各自的緩存) 有各自的緩存周期
$smarty->cache_lifetime = 300; //執行代碼之后.
$arr = ["可愛","寶寶","貝貝"];
//設置定界符
$smarty->left_delimiter = "<{";
$smarty->right_delimiter = "}>";
$name = "哈哈";
$_SESSION['username'] = "aaa";
/*foreach($arr as $k=>$v)
{
print_r($v);
}
*/
$smarty->assign("data",$arr);
$smarty->assign("name",$name);
$smarty->assign("username",$_SESSION['username']);
$smarty->display("1.tpl");
$smarty->display("2.html");
?
?
1.tpl
?
2.html
?
轉載于:https://www.cnblogs.com/xieyankeai/p/9931168.html
總結
- 上一篇: 密封槽设计标准_密封槽设计标准
- 下一篇: 机器学习——支持向量机SVM之非线性模型