PHP 第八,九,十章

2021-06-23 05:48:54 字數 3094 閱讀 6854

首先第八章主要是講資料庫的繼續深入**的,之前我們一直都是乙個資料庫只有一張表,但是有的時候就需要乙個資料庫多張表,並且這些表之間還互相有所聯絡。

表與表之間的關聯主要是通過外來鍵,例如乙個使用者表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.卡片...

軟體工程構建之法第八,九,十章讀後感

第八章 需求分析 需求分析,這是做乙個專案最基本的,乙個需求分析是指對要解決的問題進行詳細的分析,弄清楚問題的要求,包括需要輸入什麼資料,要得到什麼結果,最後應輸出什麼。可以說,在軟體工程當中的 需求分析 就是確定要計算機 做什麼 要達到什麼樣的效果。可以說需求分析是做系統之前必做的。需求分析確定了...