首先第八章主要是講資料庫的繼續深入**的,之前我們一直都是乙個資料庫只有一張表,但是有的時候就需要乙個資料庫多張表,並且這些表之間還互相有所聯絡。
表與表之間的關聯主要是通過外來鍵,例如乙個使用者表user_table(主鍵是user_id),乙個使用者資訊表info_table,在使用者資訊表裡面有一列user_id來引用使用者表中相應的一行,這樣就能建立聯絡了。
雖然這樣整理資料庫可以令結構清晰一點,儲存的重複內容減少,但是相應的在查詢的時候就會變得麻煩起來:
$query="select * from info_table where info_id=1";//info_id作為info_table主鍵
$result=mysqli_query($dbc,$query);
$row=mysqli_fetch_array($result);
$query2="select * from user_table where user_id=".$row['user_id'];
$resut2=mysqli_query($dbc,$query2);
$row2=mysqli_fetch_array($result2);
要獲取乙個完整的訊息變得要查詢多次,從乙個表中獲取了user_id才能根據這個user_id在user_table中獲取更多有關資訊,如果表的數目多起來查詢就更加不堪入目了!為此sql有一次查詢多個表的方法來解決這個問題:
這個是書本的乙個例子了,選擇不同表的列可以用點號(.),from哪個錶用inner join來連線,用on來表明連線條件!換回我們的user_table和info_table的例子就是:
select info_table.*,user_table.* from info_table
inner join user_table on(info_table.user_id=user_table.user_id)
where info_table.info_id=1;
這樣的sql語句也是比較長的,有更加簡化的方法:
如果on()裡面的列名相同可以簡寫為using(user_id)這樣子
甚至可以利用as來改名來簡寫:
select it.*,ut.* from info_table as it
inner join user_table as ut using(user_id)
where it.info_id=1;
最後乙個問題如果user_table和info_table裡面都有一列名叫name,返回的$row['name']中的值到底是哪個name呢?為了避免這樣的問題可以改名,也是利用as
select info_table.name as info_name,user_table.name as user_name
from info_table
inner join user_table using(user_id)
where info_table.info_id=1;
這樣最後$row['info_name']和$row['user_name']就不會搞混了
然後到第九章,第九章介紹sql查詢時like的語法
通常我們select * from table where title='hello';那麼title列的值就一定要與hello相等(一模一樣)才能被選中,如果我們想讓查詢不要那麼嚴格就可以利用like:
select * from tbale where title='%hello%';那麼返回的列中只要包含了hello都會被選中,而且不區分大小寫!除了%之外還有_,例如title='_hello%';那麼hello前面就只能有乙個字元了
還介紹了一些字串函式:
explode()分解字串函式:$words=explode(' ','hello world');第乙個引數是分隔符,第二個引數是用於分割的字串,返回的乙個陣列
implode()連線字串函式:$string=implode('&',$string_array);第乙個引數是用於連線的連線符,第二個引數是字串陣列,把各個元素用第乙個引數連線起來成為乙個字串返回。
substr()獲取子串函式:$sub_str=substr($string,0,100);獲取$string第1個字元起,100個字元返回
另外第九章還介紹了頁面分頁顯示內容的方法:把1 2 3 4這些數字變成連線並且href用自己重新處理,利用url發出$_get引數傳送當前頁面來控制顯示內容
還有自定義函式:function func_name(param)
最後第十章介紹了正規表示式:
正規表示式用//包圍住,^表示開始,$表示要結束,\d代表數字,另外上面的可以簡寫/^\d$/
最後來乙個綜合一點的例子:
/^\(?[2-9]\d\)?[-\s]\d-\d$/
解釋:()裡面有3個數字,第乙個數字是2-9,另外2個0-9,()可有可無,因為後面跟了個?,之後是乙個字元,是-或者\s,只來就是3個數字,-,再4個數字,結束
php中怎樣使用正規表示式呢:
preg_match($regex,$string);判斷$string是否滿足$regex這個正規表示式的要求
preg_replace($regex,$new,$string);把滿足$regex這個正規表示式的全部用$new來替換,在返回
構建之法的八 九 十章
第八章 需求分析 軟體需求 我們不僅僅要考慮到專案功能的需求,要實現的功能,還要考慮到開發過程以及非功能方面的需求,還有綜合需求。使用者需求 是針對在使用者這個角度,使用者最需要的東西。我覺得使用者需求在需求分析中較為重要,畢竟每乙個要做的程式的根本目的是滿足使用者的要求。第九章 專案經理 在這一章...
軟體工程構建之法第八,九,十章讀後感
第八章 需求分析 這章主要講的是軟體需求和使用者調查 找到軟體需求有幾個步驟 獲取和引導需求 分析和定義需求 驗證需求 在軟體產品的生命週期中管理需求。對軟體的需求也有劃分 對產品功能型的需求 對產品開發過程的需求 非功能性需求 綜合需求。常用的使用者調研方法有 1.焦點小組 2.深入面談 3.卡片...
軟體工程構建之法第八,九,十章讀後感
第八章 需求分析 需求分析,這是做乙個專案最基本的,乙個需求分析是指對要解決的問題進行詳細的分析,弄清楚問題的要求,包括需要輸入什麼資料,要得到什麼結果,最後應輸出什麼。可以說,在軟體工程當中的 需求分析 就是確定要計算機 做什麼 要達到什麼樣的效果。可以說需求分析是做系統之前必做的。需求分析確定了...