2、thinkphp

#
# ThinkPHP 3.1.2 查詢方式
#
講師:趙桐正
微博:http://weibo.com/zhaotongzhengphp


本節課大綱:
1、普通查詢方式
a、字符串
$arr=$m->where("sex=0 and username='gege'")->find();
b、數組
$data['sex']=0;
$data['username']='gege';
$arr=$m->where($data)->find();
注意:這種方式默認是and的關係,若是使用or關係,須要添加數組值
$data['sex']=0;
$data['username']='gege';
$data['_logic']='or';
2、表達式查詢方式
$data['id']=array('lt',6);
$arr=$m->where($data)->select();
EQ 等於
NEQ不等於
GT 大於
EGT大於等於
LT 小於
ELT小於等於
LIKE 模糊查詢
$data['username']=array('like','%ge');
$arr=$m->where($data)->select();
NOTLIKE
$data['username']=array('notlike','%ge%'); //notlike中間沒有空格
$arr=$m->where($data)->select();css

注意:若是一個字段要匹配多個通配符
$data['username']=array('like',array('%ge%','%2%','%五%'),'and');//若是沒有第三個值,默認關係是or關係
$arr=$m->where($data)->select();
BETWEEN
$data['id']=array('between',array(5,7));
$arr=$m->where($data)->select();
//SELECT * FROM `tp_user` WHERE ( (`id` BETWEEN 5 AND 7 ) )
$data['id']=array('not between',array(5,7));//注意,not 和 between中間必定要有空格
$arr=$m->where($data)->select();
IN
$data['id']=array('in',array(4,6,7));
$arr=$m->where($data)->select();
//SELECT * FROM `tp_user` WHERE ( `id` IN (4,6,7) )html

$data['id']=array('not in',array(4,6,7));
$arr=$m->where($data)->select();
//SELECT * FROM `tp_user` WHERE ( `id` NOT IN (4,6,7) )
3、區間查詢
$data['id']=array(array('gt',4),array('lt',10));//默認關係是 and 的關係
//SELECT * FROM `tp_user` WHERE ( (`id` > 4) AND (`id` < 10) ) thinkphp

$data['id']=array(array('gt',4),array('lt',10),'or') //關係就是or的關係數據庫

$data['name']=array(array('like','%2%'),array('like','%五%'),'gege','or');
4、統計查詢
count //獲取個數
max //獲取最大數
min //獲取最小數
avg //獲取平均數
sum //獲取總和
5、SQL直接查詢
a、query 主要數處理讀取數據的
成功返回數據的結果集
失敗返回boolean false
$m=M();
$result=$m->query("select * from t_user where id >50");
var_dump($result);
b、execute 用於更新個寫入操做
成功返回影響行數
失敗返回boolean false
$m=M();
$result=$m->execute("insert into t_user(`username`) values('ztz3')");
var_dump($result);數組

 

 

#
# ThinkPHP 3.1.2 連貫操做
#緩存

本節課大綱:
1、經常使用連貫操做 (重點)
2、補充 (瞭解)函數


====================================================
1、經常使用連貫操做
1.where
幫助咱們設置查詢條件
2.order
對結果進行排序
$arr=$m->order('id desc')->select();
$arr=$m->order(array('id'=>'desc','sex'=>'asc'))->select();
3.limit
限制結果
limit(2,5)
limit('2,5')
limit(10)//limit(0,10)
4.field
設置查詢字段
field('username as name,id')
field(array('username'=>'name','id')
field('id',true) //獲取除了id之外的全部字段
5.table
6.group
7.having
2、補充
alias 用於給當前數據表定義別名 字符串
page 用於查詢分頁(內部會轉換成limit) 字符串和數字
join* 用於對查詢的join支持 字符串和數組
union* 用於對查詢的union支持 字符串、數組和對象
distinct 用於查詢的distinct支持 布爾值
lock 用於數據庫的鎖機制 布爾值
cache 用於查詢緩存 支持多個參數(之後在緩存部分再詳細描述)
relation 用於關聯查詢(須要關聯模型擴展支持) 字符串
validate 用於數據自動驗證 數組
auto 用於數據自動完成 數組
filter 用於數據過濾 字符串
scope* 用於命名範圍 字符串、數組 fetch

補充部分會在之後在詳細探討
網站

 

#
# ThinkPHP 3.1.2 視圖
#
講師:趙桐正
微博:http://weibo.com/zhaotongzheng

本節課大綱:
1、模板的使用 (重點)
a、規則
模板文件夾下[TPL]/[分組文件夾/][模板主題文件夾/]和模塊名同名的文件夾[Index]/和方法名同名的文件[index].html(.tpl)
更換模板文件的後綴名(修改配置文件)
'TMPL_TEMPLATE_SUFFIX'=>'.html',//更改模板文件後綴名
b、修改模板文件目錄層次
'TMPL_FILE_DEPR'=>'_',//修改模板文件目錄層次
c、模板主題
'DEFAULT_THEME'=>'your',//設置默認模板主題
須要在TPL下面新建一個your文件夾做爲模板主題文件夾
如何動態修改模板主題?
一、在後臺準備一個功能,修改config.php文件中的默認模板項
二、經過url傳遞 t=主題 參數能夠修改不一樣的模板
'DEFAULT_THEME'=>'your',//設置默認模板主題
'TMPL_DETECT_THEME'=>true,//自動偵測模板主題
'THEME_LIST'=>'your,my',//支持的模板主題列表

2、輸出模板內容 (重點)
a、display
1.display中沒有參數
$this->display();
2.能夠帶參數
$this->display(本模塊文件夾下的其餘模板文件);
$this->display('index2');

$this->display(其餘文件夾下的模板文件);
$this->display('Public:error');//注意,僅僅須要在Tpl下有Public文件夾以及其中的error.html便可,不須要必定有Public模塊

$this->display(其餘主題下的 文件夾下的 模板文件);//須要開啓主題支持
$this->display('my:Index:index');
3、模板中的賦值 (重點)
4、模板替換 (重點)

 

#
# ThinkPHP 3.1.2 視圖
#
講師:趙桐正
微博:http://weibo.com/zhaotongzheng

本節課大綱:
1、模板的使用 (重點)
a、規則
模板文件夾下[TPL]/[分組文件夾/][模板主題文件夾/]和模塊名同名的文件夾[Index]/和方法名同名的文件[index].html(.tpl)
更換模板文件的後綴名(修改配置文件)
'TMPL_TEMPLATE_SUFFIX'=>'.html',//更改模板文件後綴名
b、修改模板文件目錄層次
'TMPL_FILE_DEPR'=>'_',//修改模板文件目錄層次
c、模板主題
'DEFAULT_THEME'=>'your',//設置默認模板主題
須要在TPL下面新建一個your文件夾做爲模板主題文件夾
如何動態修改模板主題?
一、在後臺準備一個功能,修改config.php文件中的默認模板項
二、經過url傳遞 t=主題 參數能夠修改不一樣的模板
'DEFAULT_THEME'=>'your',//設置默認模板主題
'TMPL_DETECT_THEME'=>true,//自動偵測模板主題
'THEME_LIST'=>'your,my',//支持的模板主題列表

2、輸出模板內容 (重點)
a、display
1.display中沒有參數
$this->display();
2.能夠帶參數
$this->display(本模塊文件夾下的其餘模板文件);
$this->display('index2');

$this->display(其餘文件夾下的模板文件);
$this->display('Public:error');//注意,僅僅須要在Tpl下有Public文件夾以及其中的error.html便可,不須要必定有Public模塊

$this->display(其餘主題下的 文件夾下的 模板文件);//須要開啓主題支持
$this->display('my:Index:index');

$this->display(一個url路徑);
$this->display('./Public/error.html');

$this->display('./Public/error.html','utf-8','text/xml');

$this->show($content);
3.fetch方法
得到模板文件中的內容,以字符串形式返回
$content=$this->fetch('Public:error');
4.show方法
不須要模板文件,能夠直接輸出模板內容
$content=$this->fetch('Public:error');
dump($content);
$content=str_replace('h1','i',$content);
$this->show($content);
3、模板中的賦值 (重點)
//$this->assign('name','趙桐正');
$this->name='趙桐正2';
$this->display();
4、模板替換 (重點)
__PUBLIC__:會被替換成當前網站的公共目錄 一般是 /Public/
__ROOT__: 會替換成當前網站的地址(不含域名)
__APP__: 會替換成當前項目的URL地址 (不含域名)
__GROUP__:會替換成當前分組的URL地址 (不含域名)
__URL__: 會替換成當前模塊的URL地址(不含域名)
__ACTION__:會替換成當前操做的URL地址 (不含域名)
__SELF__: 會替換成當前的頁面URL

更換模板變量規則,修改配置項
'TMPL_PARSE_STRING'=>array( //添加本身的模板變量規則
'__CSS__'=>__ROOT__.'/Public/Css',
'__JS__'=>__ROOT__.'/Public/Js',
),

 

 

#
# ThinkPHP 3.1.2 模板中的變量
#
講師:趙桐正
微博:http://weibo.com/zhaotongzheng

本節課大綱:
1、變量輸出 (重點)
1.標量輸出
2.數組輸出
{$name[1]}
{$name['k2']}
{$name.k1}
3.對象輸出
{$name:k}
{$name->k}
2、系統變量
{$Think.get.id}
3、使用函數
{$name|strtoupper} 生成的編譯後文件是 <?php echo (strtoupper($name)); ?>
{$name|date='Y m d H:i:s',###}
4、默認值
{$name|default='這裏是默認值'}
5、運算符
+ - * / % ++ --
{$name++}

 6、thinkphp前臺模板運算符

內置模板引擎包含了運算符的支持,包括對「+」「 –」 「*」 「/」和「%」的支持,例如:

運算符

使用示例

+

{$a+$b}

-

{$a-$b}

*

{$a*$b}

/

{$a/$b}

%

{$a%$b}

++

{$a++} 或  {++$a}

--

{$a--}  或 {--$a}

綜合運算

{$a+$b*10+$c}

在使用運算符的時候,再也不支持點語法和常規的函數用法,例如:

{$user.score+10} 是錯誤的

{$user['score']+10} 是正確的

{$user['score']*$user['level']} 正確的

{$user['score']|myFun*10} 錯誤的

{$user['score']+myFun($user['level'])} 正確的

 

#
# ThinkPHP 3.1.2 模板中的基本語法
#
講師:趙桐正
微博:http://weibo.com/zhaotongzheng

本節課大綱:
1、導入CSS和JS文件
一、css link
js scr
<link rel='stylesheet' type='text/css' href='__PUBLIC__/Css/test.css'/>
<script src='__PUBLIC__/Js/test.js'></script>
2.import
<import type='js' file='Js.test' /> //導入Public文件夾下面的Js目錄中的test.js文件,import標籤能夠省略type屬性,默認就是js的
<import type='css' file='Css.test' />
//能夠更改默認文件夾 設置basepath屬性
<import type='js' file='Js.my' basepath='./Other'/>
3.load
//方法能夠自動檢測導入的文件類型
<load href='__PUBLIC__/Js/test.js' />
2、分支結構
一、if
<if condition='$sex eq "男"'>
男人是泥巴作的
<else />
女人是水作的
</if>

<if condition='$age lt 18'>
未成年
<elseif condition='$age eq 18'/>
青春年少
<else />
成年
</if>
> gt
< lt
== eq
<= elt
>= egt
!= neq
=== heq
!== nheq

<switch name='number'>
<case value='1'>一個和尚挑水吃</case>
<case value='2'>兩個和尚臺水吃</case>
<case value='3'>三個和尚沒水吃</case>
<default/> 這裏是默認值
</switch>
3、循環結構
1.for
<table border='1' width='500'>
<for start='10' end='00' name='j' step='-2' comparison='gt'>
<tr><td>{$j}</td><td>abc</td></tr>
</for>
</table>

2.volist
<volist name='list' id='v'>
{$v.username}<br/>
</volist>
3.foreach
<foreach name='list' item='v' key='k'>
{$k}-------{$v}<br/>
</foreach>
4、特殊標籤
一、比較標籤
eq或者 equal 等於
neq 或者notequal 不等於
gt 大於
egt 大於等於
lt 小於
elt 小於等於
heq 恆等於
nheq 不恆等於

2.範圍標籤 in <in name='n' value='9,10,11,12'>在這些數字裏面<else/>不在這些數字的範圍內</in> <notin name='n' value='9,10,11,12'>在這些數字裏面<else/>不在這些數字的範圍內</in> between <notbetween name='n' value='1,10'>{$n}在1-10之間<else/>{$n}不在1到10之間</between> 3.present 標籤來判斷模板變量是否已經賦值, <present name='m'>m有賦值<else/>m沒有賦值</present> 4.Empty empty標籤判斷模板變量是否爲空, <empty name='n'>n爲空賦值<else/>n有值</empty> 5.Defined 判斷常量是否已經定義 6.Define 在模板中定義常量 7.Assing 模板中變量賦值 5、其餘標籤使用 一、在模板中直接使用PHP代碼 <php> echo "我是趙桐正" </php> 二、建議更改左右定界符 在配置文件中改變 'TMPL_L_DELIM'=>'<{', //修改左定界符 'TMPL_R_DELIM'=>'}>', //修改右定界符

相關文章
相關標籤/搜索