>> SAM LEVATICH：歡迎 節這個星期。
我不是安迪。
安迪生了病這一天，和我 那種被稱為在最後一分鐘
接管。
這是流感季節，所以一定要確保你 是住乾淨，洗手，
和飲食健康，使 你也一樣，不是臥床不起。
>> 但是，如果沒有進一步的 廢話不多說，讓我們開始吧。
今天，我們要談論 關於PHP bit--如何一點點
PHP涉及到HTML，它是如何 涉及CSS和一些紙幅的
東西你做了最後一次轉讓。
我們要談 有關SQL一點
以及如何使用數據庫的工作， 這是P的一個非常關鍵的組成部分
設置8- P設定7。
P設定7。
>> 然後，我們要談一點 有關視圖控制器是如何工作的位
為什麼這是一個理念背後的一些 現代的網頁和不同的設計。
差不多了很多類型的應用程序 和應用程序，你可能會出貨
利用該模型， 視圖控制器架構，
你會使用 P中設置7，所以我會
講一點點 為什麼這已經成為
流行的，為什麼它是重要的和漂亮的。
然後，我將最終轉移到 關於解決P的一些技巧設置7。
如果我們有時間 剩下的底，
我們實際上可以做一些 上一起工作。
>> 因此，PHP。
事實上，你可能已經注意到this-- 你真的沒有潛入它 -
但P設定6有一些PHP 這是怎麼回事代碼。
而由於PHP是一種類似C 語言，PHP，不像HTML和CSS，
是一種編程語言， 而HTML和CSS是靜態的。
他們是處理標記語言 與風格和視覺佈局。
PHP是實打實的。
>> PHP有循環，它具有條件 - 所有的東西，很有趣約C.
它有幾件事情是一個小 位比C，我們將看到更好的，
但我認為，最簡單的方法談 關於PHP只是潛水研究。
所以我要去權 到IDE在此點。
我們要的第一件事情 這樣做實際上是看
在一些一點點 PHP代碼，這是P中設置6。
讓我們做that--方式 之前，我們正在運行的方式
服務器為家電 是，我們將不得不類型 -
既可以使用您的實現 或員工實施
server.c通過進入目錄 並運行server.c與不用
arguments--所以叫它的 本地主機，這就是你大概是什麼
做了大部分的時間 - 的 然後餵養它
有directory-- 其中作為其根使用
其中，網站將 運行，基本上是這樣。
>> 本週的p設置7，如 偉大的，因為我們的代碼server.c
是，還有人誰已經 在CS50寫這些美好的事情了
有一點點 更多的功能，
一個服務器程序，它是能夠 處理多一點
錯綜複雜的關係，我們將 看到在P組7和P設置8。
並且您啟動的方式 服務器只需鍵入“apache50。”
>> 你做任何事情之前， 你要確保
阿帕奇50不 已經運行，因為它是
在我的機器，我做到了，以測試它。
而你做到這一點通過調用apache50。
停下來，你會看到它停 Web服務器，如果你能在那裡尋找
在終端窗口的底部。
然後剛開始，我們 要叫，“apache50開始。”
然後我們要去 給它一個目錄。
>> 現在，因為我們想看看 在一些為P的設置6個碼
我們已經實施了，其實我 複製的P一點點
設置6碼到我自己的文件夾中， 您可以在左邊有看到。
這就是所謂的“SECTION8” 在所有大寫字母
因為我只是太激動了 以視頻直播的今天。
>> 因此，如果我們運行它，它應該 一切都非常有效地開展工作。
它說，好了，我們的網站現在 可在IDE的地址，
基本上，這是你正在使用 正是因為它是在P設定7-- P設定6。
我所有的指標是當今一個索引。
因此，我們可以去那 地址，如果你還記得，
只需點擊這個小 按鈕在右上角。
>> 你還記得這個代碼，這 當你走進hello.php發生。
和哪些代碼被設計成 做的是，當你在一個名字類型
這裡 - 如果你說山姆 因為這是我name--
我點擊打招呼，當 我們去到下一個頁面，
該名稱應該顯示。
它會說，“餵，山姆” 或“你好，”任意名稱
投入它，即使我們去 以一個全新的網頁。
>> 這是諸如此類的事情， PHP可以為你做。
PHP是能夠通過數據 在兩個網頁。
這是一個完全不同的頁面。
你會看到標題為“Hello”在這裡。
實際上，它們具有 同樣的冠軍，但我
保證它們是不同的網絡 網頁如果我們看看源。
你可以通過這就是數據 在這個文本字段中輸入，
你提交給下一個 頁面正在被叫了起來，
然後該數據能夠 在那裡以其目前的形式。
>> 現在我們還沒有實現 這個我們自己，這
就是我們要做的，現在到 排序得到了香精，用於PHP是如何工作的，
但關鍵的想法是，PHP--可以 那種認為它像一個功能。
東西PHP可以讓你 做的是它可以帶參數
您輸入到HTML頁面 通過使用PHP和形式，
它可以通過那些作為參數 給它加載了下一個頁面。
>> 在這種情況下，我們加載了這個 頁的“打個招呼”按鈕。
但現在，其實我 刪除了一些代碼
在hello.php當時正在運行 這實際上顯示了“你好，
世界“或”你好，薩姆“或 “你好，”無論是剛投入。
因此，對於現在，我們 要做到這一點，基本上是這樣。
我們將重新創建和 還添加一些更多的功能，
做多一點吧，看 PHP是什麼真正的能力。
>> 因此，首先，讓我們來談談 該文件，hello.php。
因此，如果我們放大了 小bit--現在我
那種試圖滾動所有 順便around--我們走吧。
你會看到它被稱為 hello.php，但語法它
看起來像一個HTML文件。
這是因為 在該文件中的實際的PHP
在所有的這些卡之間 問號插入符塊。
這裡的一切 被認為是PHP代碼。
>> 而且你會發現， 當我做了評論，
你會看到熟悉的 兩個正斜杠。
如果你還記得，在 HTML，如果我輸入評論，
它看起來更接近於 這一點，這是HTML註釋。
之間，真是應有盡有 這兩個尖括號
現在是PHP代碼，這 反映在實際上
這個小註釋符號 變成一個註釋。
>> 所以每次你寫PHP代碼，甚至 如果有在它之外沒有HTML代碼，
它總是將是 括在這些尖括號
帶有問號的。
那種你可以考慮一下它 - 怎麼回事 跑在你的C程序代碼
被封閉在一個int主，無效的， 大括號，結束大括號的語句。
你會看到在大括號 PHP也一樣，但這是有點
像PHP的主要方法。
>> 所以，現在，我們該怎麼做在PHP什麼？
現在，PHP是一種編程 語言這是非常類似C，
但它的運作在網絡上。
所以一件事， 你會immediately-- 1
你真的跟做的第一件事 ℃的你打印的東西了，對吧？
因此，在C中，我們做到了 用printf函數。
我們給它一個字符串， 可能有一個新的生產線，
然後我們終止 它與一個分號。
>> 所以說我們要做到這一點的方式 在PHP--因為它不是相當的printf。
這是不同的語法一點點。
我們打印的東西出路 在PHP是我們說，“迴聲你好”
或“迴聲”的任何文字。
並且具有這樣做的效果 printf輸出字符串，“你好。”
並增加了新的生產線給它。
>> 因此，讓我們現在做sure-- 我會再次縮小了一點bit--
讓我們確保 該代碼工作
因為很可能會 以及在這個代碼中的錯誤
我們將必須解決。
因此，服務器已經在運行。
因此，如果我們滾動回落至底部， 是啊，在服務器仍在運行。
因此，如果我們只需輕按在此 有點右這裡 -
welcome--我們應該get--很大。
>> 我們仍然擁有的 熟悉的“問好”的對話，
但是當我輸入“喜”，我們拭目以待 文本“你好”確實是
打印出來，這是完全一樣 我們預計，由於迴響在PHP
就像是一個printf語句。
於是回到代碼，如何在P設定6那樣 您提供的發行代碼
讓這個PHP會 輸出的東西，你
上一個屏幕上鍵入的？
>> 而要排序的研究 為什麼出現這種情況，我們
要進入的index.html，這 是原始的文件，該文件是
顯示了這個屏幕上 與“打個招呼”按鈕。
您會注意到有 所有的經典的東西
我們來自HTML這樣的期待 因為這些東西，這些標籤封閉
在尖括號，如PHP 但沒有問號，
這表明一個特別的事情為HTML。
我們有稱號，這是“你好”。
而且你會發現，正如我們所看到的， 標題是在兩種情況下的“hello”。
讓我們改變這一個 以“說”只是讓我們
能夠區分自己哪裡了。
>> 但是，我們已經有了一個身體。
然後是有趣的一點，在 位，顯示了在HTML，
是這樣的表單元素。
因此，我們有一個形式。
這是關鍵。
這是我們如何使用PHP。
的動作參數 形式表示，hello.php
就是我們要發送的 在這種形式的值。
這是我們傳遞 參數，可以這麼說。
>> 你會注意到這裡還有一件事 是，該方法是“獲取”。
有兩個主 方法通過在後
可以使用PHP來傳遞數據 websites--網頁之間，
rather--此分配。
而這些方法都是“get”和“後”。
有一些微妙 GET和POST之間的區別
我們會得到into--我們 將“得”到，如果你願意。
>> 但是，對於所有的意圖和 目的，get和post
都只是方式 你傳遞參數
略有不同的執行。
現在，我們要使用get因為 得到的是什麼最初使用
在P的PHP文件中設置6。
而實際上，如果我們進去看看 之前我們已經別的編輯什麼，
我會打個招呼 用於：你叫什麼名字？
>> 聽眾：艾略特。
SAM LEVATICH：哦，天哪。
我不知道如何拼寫的。
你能拼一下嗎？
聽眾：E-L-L-I-O-T。
>> SAM LEVATICH：我-O-T？
>> 聽眾：是的。
>> SAM LEVATICH：完美。
好。
我想我確實知道如何拼寫的。
對於那個很抱歉。
但是，如果我們說“打招呼，”這不是 它不會顯示在屏幕上
然而，由於我們修改 代碼一點點。
但是，如果我們“打個招呼” - 好了，“你好”就在這裡。
但是，如果我們仔細 看看URL本身，
我們將看到它結束 與hello.php？NAME =埃利奧特。
>> 所以，這是一種方式 連通到下一個網頁
我們已經傳遞的參數。
我們說的名字=埃利奧特。
而這最終P如何設置6 訪問我們通過在變量
通過形式。
這是東西 所特有的GET請求。
GET請求，使參數 在網站的URL已知的。
>> 你會記得，太多， P中設置6，你
只好寫一個函數 該處理的事實
這個查詢字符串 一個文件後，可能存在。
有可能是一個問號，後面跟隨 通過基本上任意數目的字符。
而這正是這裡發生了。
你有原因解析 在P中實現server.c的
設定6是使你能告訴 PHP代碼的NAME =埃利奧特。
您需要能夠以 解析出的URL
使有問題的PHP文件 知道它處理。
>> 因此，希望這給 動機server.c
現在我們繼續前進 的C外到PHP。
因此，讓我們真正專注於訪問 通過GET請求事情現在
在此刻。
我要保存這個。
我們沒有改變任何東西。
看起來我們已經有了一個輸入欄。
>> 我們設置一些屬性， 因為我們可以做一個HTML。
這些都是簡單的事情。
我們不需要這些。
但是，我們已經有了自動完成了， 這基本上says--你知道，
當你輸入的東西 入網絡，有時
它試圖填補的為您服務。
所以這是一個很好的事情。
我們要關閉它用於此目的。
這是一個CS50的決定。
因此，我們可以刪除，如果我們想要的。
>> 自動對焦剛粘光標 在開始時的形式的權利。
同樣，沒有太重要了。
>> 但NAME =“名” - 這是一個有點 棘手，因為它的名字和名稱。
但我們可以已經改變 這對別的東西。
而事實上，這是 我們要做的現在。
我們會說“的人，”這 有點像名
如果一個人是由他們的名字來定義。
>> 因此，讓我們關閉此， 重新打開了我們的網站：
因為我們的服務器仍在運行 Apache的50，我們會說，你好，這裡是
艾略特一次。
為什麼不呢？
您好。
如果我們走在這裡，我們將看到 而不是名稱，則=埃利奧特，
它說：人=埃利奧特。
這就是這一事實的直接結果 我們只是改變了名稱=“人”。
>> 因此在一個輸入元件 HTML表單的名稱字段
是標識符的 這正在被傳遞的參數。
這就像如果你創建一個函數 “加”是參加了兩個整數
你說的INT A和INT灣
這將是一個名稱，並且如果 你想要的另一種形式，這
我們可以通過複製做到公正， 粘貼，那麼我們將不得不名灣
>> 所以，現在我們有兩個參數： 正在通過傳遞
到達下一個website-- 下一個網頁，hello.php。
我們可以清楚地看到 這一次，如果我們想要的。
這是處理最簡單的方法 在IDE的網頁代碼，基本上是這樣。
你啟動服務器，把它 運行，然後每一次
做出一些改變，只需關閉 該文件只是為了安全起見。
按後退按鈕 是有點棘手
因為它可能會加載一個較早 版本，而不是最更新之一。
>> 然後你只需點擊 按鈕再次，彈出右鍵up--哦，
現在有兩種形式。
因此，如果我們輸入一件事到每個 埃德蒙頓“賈森赫什霍恩，”對於instance--
我們打招呼。
我們仰望我們的參數。
看起來我們已經得到了，因為 預計，A =傑森和b =赫什霍恩，
它代表了兩個參數 我們傳遞給這個函數。
>> 所以，現在，讓我們真正得到 實現該功能，我們
有P中設置6。
所以現在我們只是呼應打招呼。
而這還不是非常有用的。
我們要回應一些變量 這是傳遞給我們。
我們也知道這個變量的名稱。
我們有一個，我們已經灣
因此，我們可以選擇迴聲任何一個。
>> 但是，我們如何獲得呢？
嗯，也有一定的 在PHP中的全局變量。
而且我會寫 他們在這裡評論。
這兩個最重要的是GET 並張貼我們的目的現在。
這些是陣列或， 技術上，該詞典
在那裡我們的變量，我們是 傳遞到下一個網頁直播。
我們將很快看到如何使用它們。
>> 關於PHP代碼的另一個簡要說明 而它 - 在C中的一些細節，
聲明變量 或者使用變量，
你首先必須聲明它們。
而你又做什麼，當你 宣稱他們是說INT一個或炭灣
你必須申報這些類型 之前變量創造了他們。
PHP--你不需要做任何的。
PHP不要求 變量的類型。
和使用的方式 創建一個變量 - 而
不是說INT，CHAR，string-- 這是真正的char *，因為我們知道 -
而不是做所有的 即，因為一切
是相同類型的， 無類型，我們只要
使用一個字符，這 是美元符號。
你會看到它已經彈出 起來，小自動完成的事情。
而且它說_GET和彥博 有兩種選擇，我有可用
對我來說。
其中的一些其他的東西 在PHP中其它全局變量
您將使用過 P的過程設置7。
現在我們要 注重GET和POST。
但是，這是一個有益的 該IDE做的事情
一旦你輸入的地方 在美元符號，
它會開始填充全局變量 或者你已經定義的變量。
>> 所以，如果你想定義 一個叫做變量“字符串”
你可以只將其設置為“喜”。
而且它基本上是這麼簡單。
然後我們可以做 像“迴聲$字符串。”
IDE將要拋出一些 錯誤，如果我做錯什麼，
所以希望我做的一切權利。
但錯誤總是這樣出現的。
>> 關於另一個棘手的事情 PHP是，它不是編譯。
因此，與C程序，你會怎麼做 日常of--基本上，
你會做編輯 你的代碼，你會來救它，
然後你會 使，在化妝是
調用該編譯器的步驟中， 鐺，使你的代碼，該文本
文件，到可執行。
PHP是C類，但它的執行 在通過Web瀏覽器飛。
因此，有沒有辦法知道。
>> 請將引發這些 有用的錯誤，對吧？
這將是一樣，你 沒有宣布這個變量
你嘗試過使用它。
你做了這一切壞stuff--段錯誤， 段錯誤，所有諸如此類的有趣的時代
隨化妝。
PHP是一種雙刃劍 因為你不會得到這些錯誤，
但是這也意味著你不會知道 真的有什麼錯你的程序
如果你只是運行它，它不工作。
但調試器應該指出 一些希望有用的小事情
語法就可以解決。
>> 因此，如果我們去了用於： 說了，讓我們關閉了。
重新打開。
我們又回到了這裡。
所以，我們已經有了一個變量 和一變量b。
而這些都不會最終無所謂。
我們會打電話給他們^ h和g 無特殊原因。
>> 而我們打招呼。
現在看來，我們的字符串 “喜”確實打印。
我們創建了一個名為變量 “弦”，將其設置為“喜”。
請注意，我們沒有做 的malloc或作出一個字符數組。
>> 在PHP中，由於變量 是無類型，一個字符串
是一樣的字符為 所有意圖和目的。
這可能是“喜”。
這可能只是角色k。
這可以是一個數字1。
而且它並不關心。
PHP不關心 你的變量的類型。
或者，它確實照顧。
當您嘗試它關心 和做的事情吧，
但它並不關心在 聲明一步。
>> 就這樣你就可以在C，你可以 棧像這樣的聲明串
雖然說“棧”是一個小 一個潛在的用詞不當，當位
我們談論的PHP。
但是，我們不必擔心。
因此，我們得到了我們的字符串 “嗨，”我們回顯字符串。
所以，現在我們已經討論了變數。
所以，現在我們需要談談get和 發布並執行的最後一件事那
需要真正得到這個備份 到P的功能設置6。
所以現在我們 呼應字符串，但我們
確實有這些變量GET和POST。
而且因為我們使用 該方法得到的，它
很自然，我們的變量 我們感興趣的，A和B，
將位於在陣列中 或字典，在技術上得到。
>> 所以，如果我們成立了得到這樣 你groups--我按下進入
它不喜歡它 - 但在這裡，我們有得到。
並因此獲得已經存在。
因此，我們已經可以開始訪問 有些人會的元素。
如果我們得到的，這個語法 在PHP中的數組非常類似C。
我們有我們的兩個方括號。
>> 所以，如果我們說得到一個正常的 數組，我們就可以訪問
第零指數，第一索引。
PHP是零指標。
我們可以說零，一， two--這樣的東西。
而且我一直在說，得到 在技​​術上是一本字典。
那麼，什麼PHP做的引擎蓋下， 這是比C一點點更好，
是它已經是給你一些 詞典功能，這
真的是哈希表， 或嘗試，據說。
或者，在技術上它 可以一試為好。
但是PHP正在實施一個哈希表， 形成一個有效的詞典。
>> 因此，我們知道這個名字 我們的變量，對不對？
它被傳遞 通過PHP查詢字符串。
我們有A = H且b =克，其中和b 是變量的名稱。
這樣的方式，我們可以訪問 對應於密鑰值
在我們的詞典 只是說_GET_GET [“一個”。
>> 所以現在我們有_GET [“一”。
如果我們只需更換裡面 我們的迴聲，如果我們迴聲_GET_GET [“A”] -
我們會如果調試器看到 拋出約this--任何錯誤
我們將保存並關閉了這一點。
打開它。
所以，我們只是做了正確的 現在，所以B不應該的問題。
“她”和“他” - “哼。” “她”和“哼哼。”
聽起來不錯。
>> 它打印出來 “她說，”這太瘋狂了。
但是，這到底是什麼 是發生P中設置6。
基本上，P設定6 是doing--迴聲你好，
name--其中它有一個 變量的名稱，它只是
問你在文本的位輸入。
以前也有一些 額外的代碼在哪裡
它包括if語句， 這是我們現在可以做。
>> 我們可以說，如果存在，其 是PHP中的功能，
_GET用下劃線，“名” - 這基本上是說，
“如果名字已經填充了”，因為 我們只需單擊按鈕
無需提交表單 輸入任何內容到該領域。
而我們總結了在我們的 友好的大括號。
我們可以有一個else語句。
而這一切在PHP的角度 支架，問號，尖括號，
如果你願意。
>> 現在我們可以看到，如果這個工程。
我一直在等待它調試 和廢話了我，基本上，
但它沒有。
也許這將現在 因為我講了。
對。
它做到了，其實。
那麼，什麼也沒有顯示出來。
這是因為一些錯誤 我寫在PHP代碼。
而我所提到的調試 是棘手，因為在PHP中，我們
沒有預先編譯 而編譯器是不喜歡，
這裡的地方你的錯誤。
>> 但是，我們能做些什麼 is--做的人記住
如何看待不同的網絡 該PHP--或網站請求
發送？
[？馬林？]這樣做的 講座一次或兩次。
你還記得我們去哪裡找 不同的債務和200 OKS，
正在發送的所有這些代碼 通過HTTP的網頁，網頁？
曾記否 我們去哪裡做？
>> 聽眾：頁面源代碼。
SAM LEVATICH：頁面源。
究竟。
如果你去頁Source--完美的。
所以頁面源代碼拉起督察。
>> 而我使用的Safari瀏覽器。
你們很多人大概會 可以使用Chrome或Firefox。
但只要你 在任何現代browser--
並隨時跟進 同時，如果你想要的。
您最多可以輸入此代碼或 只是看在P組6的內部
目錄中一些類似的東西。
hello.php是我們 目前正在仿效。
>> 所以有各種標籤。
我們可以看一下所有的資源。
我們可以看到的源代碼。
所以看起來它沒有 闖過身體到底。
它在PHP中，它發現了一個錯誤 停止加載整個網頁。
我們甚至沒有結束 標記HTML或任何東西。
>> 如果我們看一下網絡，我們可以 看到我們正在發送的請求。
這是域。
這是地址。
這是一個文檔。
我們使用get方法。
>> 而且它是紅色的。
或者，它是紅色的，當我 不選擇它。
我怎麼不選擇呢？
那麼，它是紅色的。
讓我刷新。
在那裡，它是。
現在，它是紅色。
>> 因此，它是紅色的，這意味著 它失敗了，這是不好的。
所以，讓我們來看看它為什麼失敗。
因此，所有的頁面源可以 基本上告訴你，是你的事
沒有工作，我們已經可以看到。
因此，理想情況下將有 是更為有用的工具。
還有一些瀏覽器擴展 ，讓您的​​PHP調試，
但我們不打算 可以寫一噸​​的PHP，
所以它可能只是最好的 翻閱你的代碼
仔細，只要確保 它沒有做別的事情。
>> 因此，讓我們來看看，如果這個格式 if語句是問題的所在。
我想加載備份在這裡。
你好。
所以這是一個問題。
>> 因此，對於正確的語法 PHP的，PHP是怎麼回事
為C類的，你會看到循環。
if語句，你會看到的。
你會看到所有的這些朋友 你已經熟悉
超過課程 這CS50學期。
但是，最好的辦法弄清楚如何 做一下PHP是谷歌，
還是要看PHP代碼的一些例子 因為你知道的功能。
>> 你知道你能 做的程序。
你可以循環。
您可以根據需要循環多次。
您可以循環中的所有 各種不同的方式。
您可以創建功能。
您可以創建函數 呼叫等功能，功能
那個自稱。
而且你的名字，這些概念。
你有遞歸，循環， 如果，其他的控制流。
所以，谷歌是你最好的朋友。
甚至說，“PHP如果 聲明“，並有會
要噸，職位 答案給其他人
誰已經有類似的問題給你， 誰是剛剛開始接觸PHP
和好奇語法的事情。
>> 因為我們擁有的是奢侈品 能看P中集6的代碼中，
我們實際上拉起來，看到 好了，下面是一些有趣的事情。
因此，這是它實際上 看起來像P中設置6。
因此，如果我們通過這個， 我們可以看到，我們已經
有幾個這些小的 PHP般的問號位。
>> 而且不會有大括號。
有冒號。
而且有大 括號中的PHP，但是這
是一種格式和做的一種方式 PHP與HTML效果很好
因為如你所見，我們現在要關門 關閉這些PHP bits--了別人的
而如果和所有that--後的 我們在他們裡面穿插HTML
同時還繼 控制流設置由PHP。
>> 所以我只是要 通過這個快走
因為它是一個很大的相同 概念，我們之前做的事情。
如果不為空，我們已經得到了， 括號，_GET_GET [“名稱”]。
這都是一樣的東西。
我們使用的_GET字典， PHP將根據表格的要求，
因為它是的參數 動作，並且該方法是獲得。
然後，該結束了。
冒號是一個能指只做到這一點 如果if語句的計算結果為真。
這就像一個大括號。
而事實上，這是一個大括號 在其他語言如Python，
您可能，如果你只是遇到 這樣做，對你的最終項目。
>> 然後這條線，你好。
然後，我們已經得到了這個奇怪的事情。
我們有更多的括號內。
有沒有HTTP那裡 - 或者PHP，對不起。
但有一個等號。
然後我們有一個函數， 用htmlspecialchars（_GEThtmlspecialchars（_GET [“名稱”]）。
這有點像一個更 高級版本迴聲。
就像我們已經回應的一種方式 打印出來的東西在PHP。
這是一個函數，是 在PHP中定義
將處理一些更討厭 字符和字節值
你可以通過它。
它總是最安全的使用。
但是，迴聲會做的工作 就好了，如果我們不
處理任何事情太討厭。
>> 所以這具有相同的 基本上效果，
這個東西在這個問題之間 標記是由PHP評估。
用htmlspecialchars返回一個不錯的HTML _GET_GET [“名稱”]，即印刷價值
無論我們輸入的形式。
然後它會打個招呼， 逗號空間，然後將該。
之間的整個事情 尖括號
將取代任何 用htmlspecialchars推出。
所以這是基本相似 以我們正在做的。
我們有一個else語句是 世界你好，這是有道理的。
所以，現在，讓我們回到我們 代碼，看看exactly--哦。
我說存在，這是不 一個事情，我們想做的事。
我們想說的話不是空的。
>> 所以這應該有點 好一點，不為空_GET_GET [“名稱”]。
而這大括號 匹配大括號。
現在我們得到我們的大括號內。
迴聲你好_GET [“名稱”]。
讓我們來看看這效果更好一點。
我們仍然運行在我們的服務器。
您好傑森。
和它的工作這一次。
所以這是一個證明 你的確可以
使用大括號，你 熟悉和喜愛在HTML PHP代碼。
提供給PHP代碼 您在PSET 6-- PSET 6--
提供了另一種方式 這樣做同樣的事情。
>> 所以，現在我們有力量。
我們有功能來實現 我們在PSET 6看到的PHP代碼
由我們自己，基本上是這樣。
在我繼續前進，有哪些的 你必須在這一點上的問題？
是[聽不清]。
>> 聽眾：所以在pset6的版本， 當你運行它，有一個空間。
我能看到的空間 後面的逗號。 [聽不清]啟動
開放的支架。
你怎麼把的空間 你寫你自己的代碼的方法是什麼？
>> 演講嘉賓：這是一個很好的問題。
因此，讓我們明白這一點。
所以這是一個非常好的問題 一，我沒有考慮。
但是，讓我們一起做吧。
>> 所以首先，是什麼 我做的迴聲
當我們剛剛迴聲 你好，你好輸出。
如果我們現在呼應這個獲得獨立 行，讓我們看看會發生什麼。
所以我們點擊這裡。
我們一直在說，喜賈森。
所以，再一次，我們沒有這個空間。
>> 那是因為，在 PHP的，當我們有迴聲，
無論有多少 spaces--不，不是V--
無論有多少空間，我們投放 這裡 - 如果我們現在再重新裝了起來，
喜賈森。
是啊，看，所有這些 空間得到了吃掉。
而這件事情， 迴聲功能一樣。
>> 所以要照顧 空間，而這是
的原因之一 你為什麼不使用echo
並使用用htmlspecialchars代替。
我很好奇會是什麼 如果我們沒有這種情況發生
在這裡我們封閉在一個字符串的空間。
我真的不知道是什麼 當我這樣做會出現這種情況。
>> 所以，這是一種方式。
這是要照顧它的一種方式。
如果包裹的空間 一個字符串，則空間
將輸出很好地通過迴聲。
做最安全的事情是 做用htmlspecialchars。
這始終是安全的賭注。
但是，現在我們有辦法做到 它的迴聲，如果有必要的。
並以類似的方式，我們可以 迴聲新的生產線，所有的排序
東西你熟悉做在PHP。
>> 任何人，什麼是更多 問題是其他人都
在這一點上關於PHP？
如果人們出現了一個有點晚， 我很高興留後一點點
說說一些開始。
而且這也是所有livestreamed， 和存檔，這太瘋狂了。
>> 無論如何，所以現在讓我們做一些 更先進的東西用PHP。
而最早的事情之一，你 被引入到C組的循環。
和PHP擁有更強大的 所謂循環foreach循環。
它看起來像this--每空 為空白，大括號，該做的事。
因此，這基本上是一個簡寫。
>> 你看，在for循環中一 句法結構
被設計在C和彙編 語言之類的東西。
設計出C，準確的說，作為一個速記 對於很多循環的類型的
人們會看到的。
當你寫一個循環，有沒有像 常常是一個初始化步驟
一開始，右執行 調節在環路將stop--
這就是功能 這只是在一個while循環，
或者說一段時間恰有 只是feature--然後
一個增量步驟在末端。
所以你會經常發現自己 編寫代碼如下所示。
我要刪除一些這方面的。
>> 但是，如果我們迭代通過 以陣列的字符，
舉例來說，像我們已經 得到的字符陣列。
對不起帶回C.我知道， 你以為你做了。
但是，這只是為目的 學習PHP的，我保證。
所以，如果你有一個char海峽 長度為8，讓我們
說這說Hellooo 後面有個空。
太好了，所以這是我們的字符串。
>> 然後我們有一個for循環。
我們是int i等於0。
我們想退出str的時候 我等於不等於空，
因為我們退出的時候它等於空。
然後我們做我++在每 點在for循環。
做一些與我海峽。
>> 因此，基本公式是， 我們有這個數組，我們
想當作單獨的元素。
但是，我們必須做的是，我們不得不 基本上創建一個單獨的整數
變量是計數每 一次，我們通過循環去了。
然後，我們就必須再調用 的strstr [我]當我們真正想做的事
剛去的性格 按字符，對不對？
我們不希望增加的 整數，然後使用該整數
訪問每一個字符。
我們真正想要的字符一個字符。
>> 所以，每個智能 計算，對我們來說。
如果我們有一個數組，其中 我們可以在PHP聲明
作為just--如果我們有一個變量 所謂的，讓我們稱之為數組。
不用打字的奇蹟，這是 就像任何其他變量。
這只是一個數組。
我們有一點點[聽不清]像1， 2，3，只是一種初始化數組。
這是確定的，它不喜歡我的foreach。
>> 但是，如果我們foreach--實際上 我輸入了一個有點不對勁。
有兩種方法可以做到foreach循環。
還有的在語法和作為語法。
而我們要做的 首先在語法，還不如。
這是我的錯誤。
>> 在陣列所以的foreach NUM，迴聲NUM。
而PHP吼 我出於某種原因。
它的發現一個意想不到的 在東西，
這是一個麻煩一點點。
但是，我們會找出 這是為什麼在某一時刻。
所以不喜歡這樣。
讓我們嘗試使用的。
它更喜歡的語法似乎。
因此，讓我們做的foreach陣列為num。
>> 那麼一點點的解釋 對剛剛發生了什麼
是因為語法saying--那麼首先， 讓我們來看看這是什麼打印出來。
因此，我們打開我們的IDE。
我們去這裡。
我們說，你好傑森。
它做到了123，這是內容 我們創建了上面的數組。
>> 因此，在深入這個foreach循環， 我們有一個可變稱為陣列
這是三個數的陣列。
然後，我們正在做的foreach 陣列為num，迴聲NUM。
而這更 直觀的比對LOP。
我們說，對待每一個 事情的數組NUM中，
我要你給我的NUM。
而這也正是它在做什麼。
>> PHP是計算的 當你說的foreach陣列，
而你處理的是一個數組，什麼 你將要遍歷
是在該陣列中的字符， 在該數組的整數，
是在該數組中的元素。
而且它讓你存儲 這些變量為num，
然後只輸出NUM 馬上而不是說，
我有一個叫我的變量， 那麼我想輸出的strstr [1]。
>> 所以，讓我們做很酷的事情。
基本上一樣，我們沒有創造 這些變量像我的，並盡一切
這個增量的東西在最後。
PHP需要照顧所有這一切為您。
>> 所以，現在讓我們來談談的foreach作為 它適用於我們_GET字典。
因此，我們將快速地註釋了這一點。
因此，我們有我們的_GET數組。
我們有這個變量。
而且它有它的一些東西。
>> 現在，我們只有一個變量 被傳遞到它，這是名稱。
但是，如果我們按Enter鍵，現在 我們可以有兩個變量。
我們可以有姓名和年齡，例如， 如果我們想獲得的年齡，也
一個人的名字，有趣的是。
>> 所以，現在_GET將是一個 字典中有兩個元素，
有兩個關鍵值對。
而第一key--我要去 寫這篇文章一上來就板了。
我們有我們的字典是_GET。
對不起，這是一個有點難以看到。
但是我們的字典裡面，我們有 名字，這將是什麼
我們正在給定的。
我們將有年齡，這也是 將是我們正在思考的東西。
這就是整體 我們的字典中。
>> 所以它有它的兩個元素。
所以，因為的foreach 循環是聰明的，我們
可能會認為，正確 可能會認為的foreach
可以通過這個迭代 字典，打印出
給出姓名和年齡的值。
>> 因此，讓我們其實做到這一點。
讓我們構造一個foreach循環。
而我們要做的_GET的。
而我們要做到以下幾點。
因此，讓我們看看如果我們輸入會發生什麼 只是字，然後說迴聲字。
我們也將呼應新行 這只是為了更​​清晰一點，
這是怎麼回事。
>> 所以，讓我們來看看。
它沒有給我任何錯誤。
我們將關閉此。
在我們的網站，你會做 很多，超過pset7的過程。
所以我們說我的名字叫薩姆。
我的年齡是45。
不是。
但它打印出來，符合市場預期，薩姆45。
>> 所以你會發現， 什麼foreach循環在這裡did--，
讓我們回到那個，所以它的 在board--我們得到_GET的字。
並有四樣東西在_GET。
但只打印出兩件事情。
的foreach，是其智能的自我， 假設我們真正想要的
是數值，而不是鍵。
>> 但有一種方式，我們可以打印 出鍵為好，如果我們想。
如果我們想也知道是什麼 這些變量被稱為，
有一個辦法，我們 可以訪問這一點。
而方式排序做到這一點， 所以我們可以說，讓我們真正
它拆分成鍵值對。
讓我們看看現在發生了什麼。
>> 因此，我們有鑰匙。
我們的價值。
我們有另一個新 行以提高可讀性。
讓我們看看會發生什麼 當我們這樣做了。
我不知道賈森有多老。
Jason的15。
因此，我們有名字傑森，15歲。
所以我們能夠訪問該鍵 和值對本詞典
剛才說的關鍵點值。
這就是一個foreach語法 糖位，使
您訪問在字典中的東西。
>> 因此，希望這種強調 foreach循環的力量。
你幾乎可以扔 事情，似乎可迭代的，
像什麼，有多個 像數組中的元素，
像dictionary--這是兩個 你將要使用的主要的事情
無論是在生活和PSET 7。
所以，你可以扔的東西 它，它會找出
你想用它做什麼。
它會說，好吧，我會得到 這些東西從數據
傳遞給我。
而這，你是什麼 要在PSET 7使用了很多。
>> 我要快速滾動 下來正好看到我在哪裡。
人們是否有在這一點上的問題？
在所有的問題嗎？
是？
>> 聽眾：所以與鍵和值， 你能說出它什麼都重要
它仍然工作？
演講嘉賓：哎呀。
哇，我完全刪除整條生產線。
做得好。
所以，一個。
鍵和值僅僅是一個慣例。
這是有幫助的。
你會得到一些設計 點，也許有些造型加分
這樣做，因為這 真正傳達的意圖。
但是，我們說和yarp。
>> 聽眾：你不必 在HTML文件中改變什麼
為了反映？
演講嘉賓：不是。
聽眾：它只是知道 因為等於更大的than--
演講嘉賓：是的。
聽眾：那that's-- --that指標
演講嘉賓：是的。
這是一個foreach語法，惟命是從。
>> 聽眾：有沒有類型。
所以，如果你想要的是什麼 年齡只是一個數字？
有沒有辦法做到這一點？
>> 演講嘉賓：有辦法檢查 變量符合一定的類型。
所以PHP請求從多一點 你因為沒有類型研究。
某些方面，它要求較少。
在某些方面，它要求更多。
因為如果你剛 東西在變，
你不知道它是什麼類型。
但是，如果你是聰明的變量 您分配類型，並確保
該功能僅return--您 要功能只返回
一種類型的值，以便 你基本上可以
預計該變量你回來 從函數將是類型
你覺得會，基本上是這樣。
>> 但也有一些方法 通過它，你可以檢查。
我不記得他們 從我的頭頂。
我等著它變成藍色。
isint？
ISSTR？
有方法 內置入PHP可以
檢查你的變量的類型。
但是，如果您分配變量 聰明，你不應該
要做到這一點太多PSET 7。
但這些方法確實存在。
而這件事情， 在語言本身。
我不記得確切的語法。
我們甚至可以查找。
但是，時間是至關重要的。
有沒有任何其他人 有什麼問題嗎？
是。
>> 聽眾：我只有一個了。
所以你提到的GET方法，但 你沒有提到的POST方法。
難道我們回來了嗎？
>> 演講嘉賓：是的，我們將 可回來了。
這正是我一直在尋找 在我的電話，現在睡著了，
但我會找到的。
只是確保我們打 所有的PHP筆記。
是的，沒有調試版本。
是的，我們有一些更多的東西， 我們現在要做到這一點。
>> 因此，談到POST， 你所提到的，
唯一的區別 之間的GET和POST是
該記得，當我們看著 在此URL，我們看到，哦，
名等於和年齡等於yarp 是正確的網址為我們那裡。
POST是多了幾分神秘的 其傳遞的信息。
>> 所以，如果你不想用戶 要知道，比如說你
不想用戶名 和該人的口令
當前登錄到顯示在 的URL，這是一個合理的事
到不希望在URL， 因為對方能看到它。
如果有人鏈接到一個網頁，你 不希望自己的網址貼滿了那裡，
因為這將讓人們登錄 只是一個URL的粘貼，而不是
實際上填寫表格。
POST是有點更隱秘。
>> 而唯一的東西， 我們必須改變
此方法，改變 從得到張貼。
然後在HTTP裡面，而不是 訪問陣列_GET的，
我們要訪問陣列_POST。
>> 我們會發現，如果 我們打開這再度回升，
傑森緩慢下降的年齡。
傑森的名字，14歲。
同樣的東西彈出。
但我們去的網址， 這些變量不存在。
>> 而方式POST passes--所以要記住
如何看待一個頁面的源代碼。
我們去到網絡。
我們刷新。
這是另一件事， POST將要給大家介紹的警告。
你可能已經看到了一個箱子，一個文本 盒這樣的瀏覽器。
你確定你想 再次發送的一種形式？
POST是的發送這些表格。
>> 因為基本上，如果你發送的 信用卡信息的人，
這不是要顯示在URL。
這將是一個POST請求。
所以，當你刷新頁面， 它重新發送POST請求。
所以，現在我們確實想發送 再次形成，因為它不會
創建任何重複購買。
>> 我們會發現，到這裡， 我們使用的方法是POST。
它確實傳輸字節。
它轉移其中的401。
計劃漂亮的渺小。
但是，沒有什麼地方，我們可以看到 正在傳遞的值。
該網頁本身可以看出， 但我們作為用戶不能夠看到，
除非你是一個黑客。
如果你是一個優秀的黑客，你可以看看。
>> 如果你知道基本 在HTML格式，
該值將 自己在頁面知。
你就可以看到。
該值將在那裡，他們是 只是一個小的你不太明顯
訪問，基本上是這樣。
>> 我們有更多的 有關GET，POST問題
before--就是我們接下來要做 實際上是看一些代碼
那你給pset中7，說說 它如何使用這些概念，
而談 東西，你會
有做的pset 7一點點。
在此之前，還有什麼問題嗎？
你們更多的問題有哪些？
大。
>> 好吧，讓我們來看看 在PSET 7一點點，
毫無疑問，你是什麼 所有最激動的。
我的意思是，這是一件 大衛經過一點點。
但是，我們必須在三個目錄 頂部，以及一個配置文件。
這對數據庫，我們將 在大約五分鐘談。
包括，你永遠需要 看此目錄中
如果你不想，但它是很好的 知道有各種各樣的幫手。
助手就像是有幫助的功能。
然後我們有配置， 其中設置一些東西了。
>> 有一些功能CS50具有 撰文指出，在助手和配置。
而一些PHP的那 已經存在的文件
會做很多更幾分 為您的鈍專家組的工作。
就像如果我們進入公眾 的login.php，這是什麼
顯示了權當你進入PSET 7。
我們會看到有 這需要聲明。
這有點像 犀利包括，包括hashtag
包括如果你是一個新的一代。
但是，這基本上 說我需要訪問
要在config.php所有功能。
你可以有一個要求 對於各種各樣的其他東西。
>> 配置實際上需要幫手。
所以每當你需要 配置，你也
其中，也不需要助手為好。
這樣，您可以訪問所有的 很酷的功能，我們要使用，
事情喜歡渲染。
實際上，我來緩解 下來一點點。
所以，函數，那麼我們是 要穿行
就在我們移動到SQL一點 位是login.php中的功能，只是
因為它使用的一些話題 我們剛才談到了PHP。
>> 你看到的第一件事情是，如果$ _ SERVER。
這又是一個全局變量， 你將要處理。
這就像_GET和_POST，但什麼 服務器包含在這可以讓你
知道如果請求方法 是一個GET或​​POST的。
就像以前我們在做什麼 就在我們的代碼，我們寫的，
我們只是改變它是GET和 POST取決於什麼HTML有。
但也有可能的頁面 與這兩種類型的請求訪問。
你可能想要做的 根據不同的事情
上的請求的類型， 就像登錄一樣。
>> 所以，你可以檢查的要求 通過訪問密鑰的方法，
通過使用鍵和獲取 東西在字典中的價值
_服務器。
所以這是另一次全球 變像_GET和_POST。
>> 如果我們得到，我們要 呈現登錄表單。
渲染是一個函數，基本上 剛搭設相應的HTML
並將其傳遞一些參數。
這個稱號是一個參數，它是 在顯示，奇怪的是使用，
網頁中的標題 問題的東西在這裡，
說還是招呼我們上面的例子。
現在我們有一個不同的東西。
否則，如果它的文章中，我們 做一些其他的東西。
我們使用的空方法。
它是不存在的，它是空的。
而且我們看到之前，PHP 有建相當數量的
在方法大衛will--如果有 是那些對你有用的方法，
他們會提醒你 通過大衛走
給出一開始概述， 也Zamyla的有益位。
她回來了每一個人。
我們都感到歡欣鼓舞。
道歉是適當命名的功能 這基本上只是打印出
一些錯誤消息， 因為CS50很有禮貌。
>> 而現在這個，這是一個 因為這有點棘手
在這裡我們要查詢數據庫。
現在，我們還沒有談到數據庫。
而我們將在接下來的 五分鐘左右，最大。
但是，這是一個函數 這CS50寫
從數據庫獲取表基本 我們正在pset中7個有。
我真的很糟糕我 零索引今天。
但是，是的，這是7。
>> 因此，查詢它會返回一個 陣列，主要是鍵位。
而且因為這些東西沒有 打字，所以行是一個數組的數組。
因為當我們正在考慮 一個表，我們將做什麼
是，當你在pset中了解到 喜歡遊戲的15，反正
在這裡你不得不使用 雙陣列，我們基本上
還有其他的數組 陣列來生成表。
而且你有行和列。
然後你就可以訪問它們像 [0] [1]，你得到的[0] [1]。
基本的東西一樣。
>> 所以，我們在做什麼 這裡在此功能，
我們要求數據庫 如果用戶那
試圖登錄，這將是 通過POST方法發送。
我們會看到我們得到 用戶名從彥博。
他們將有發送，用戶 或者你會送一個價值
穿過POST一個形式，因為 它的用戶名和密碼的東西。
我們正在檢查用戶名 看，這是在表中？
因為，如果用戶正在記錄 在，那麼他們的用戶名
應存儲在的表 存在此網站的用戶。
所以基本上，如果 用戶是在數據庫中，
查詢是否會返回 該行，這是一個數組。
>> 但棘手的問題是，如果即使 雙陣列只有一行，
即使它是一個行array-- 就像你有basically--
如果你有一個大小為一數組 這是抱著另一個數組，
你真的處理的一列。
但它仍然是處理 就像一個雙陣列。
>> 而這正是它有時可以得到 棘手的，因為現在我們得到的行。
我們的變量行。
然後我們要創建 一個新的變量叫做行
並將其設置等於 行的第一行。
而且你會發現，意見 說，這是第一個也是唯一的行。
>> 因此，這是很棘手 部分在哪裡，現在功能
可以返回數組非常容易。
這裡沒有mallocs。
你不會看到mallocs。
所以你不會看到賽格故障。
但是功能仍然會通過 圍繞陣列和數據分組。
而且你必須要警惕的是什麼 正是你的函數將返回。
即使它的One 類似這樣的專欄，查詢
仍然會返回一個雙陣列。
因此，要訪問該column--或者您 能想到這一切作為倒
因為我們正在談論的行。
但訪問一行， 你不能只是說行。
即使是一排，你必須 樣的不rowsrows [0]來消除這種
陣列的外位和 剛才你一行。
>> 做一些其他的事情。
有一個函數 所謂password_verify
這驗證 密碼被張貼。
然後，我們看到另一個全球 可變這裡，_SESSION。
基本會話ID 你是怎麼保持跟踪
如果有人登錄與否。
所以現在用的login.php， 我們正在登錄的用戶。
所以我們想要做的是我們要 說會話ID是等於行
ID，這很有道理，因為 每一行都會有不同的ID
號作為表的一部分。
我們將進入SQL中 第二，因此，如果任何的這
似乎是胡說一點點， 那麼一切都將被清除了。
但是，我們要設置id等於 正確的事情，登錄用戶。
很抱歉，如果有什麼差錯。
這是在登錄的目的 生活馬蘭教授會說。
>> 所以這是的login.php。
和很多你寫的PHP代碼 在PSET 7，他們會一點點。
不要忘記chmod命令 適當的權限。
將有大約一點點 在規格中的開頭。
>> 但是，你的PHP 寫入將是
做的東西，這與此類似。
你會成為 訪問一些事情，
在是給你 PHP的全局變量
正在處理當前 登錄的用戶，是否有
有發送到這個被請求 頁上，這樣的不同的東西。
它也將是潛在的 迭代通過行的這件事情。
>> 在一個不同的功能，查詢 不會返回這雙陣列。
如果有更多的 比中已有一個行，
如果有are--是，如果有 在它超過一個的行，
那麼這將是一個表。
你可能要遍歷 在這個數組中使用的行
我們描述的foreach循環。
>> 所以，如果你做的foreach上雙 陣列，會出現什麼word--在這裡，
我其實寫。
我會寫它很快在這裡。
>> 如果我們有行一個foreach 為行，什麼是行的類型？
有誰知道？
你說對了？
因此，行是一個雙陣列。
那麼，什麼是的foreach去推斷 我們從該雙陣列希望
如果我們遍歷了嗎？
我們基本可以假定， 這將是兩種元素，
或行或列，基本上是這樣。
所以行和列的我們 可以當作一回事。
>> 基本上什麼foreach循環是怎麼回事 做的是它會返回行。
行會是類型行的， 而行是一個雙陣列。
所以，如果你給的foreach 雙陣列，它的
不會迭代 不止一層。
這基本上是，如果說有 八個細胞在這個table-- 1,2，
3 4，5，6，7，8-所述 foreach循環不
要去通過每個這些細胞。
什麼foreach循環會做 是它會經過此行，
給你這個整行。
然後它會通過該行。
>> 因此，它只能迭代一層。
如果添加了嵌套 foreach循環，那麼你
可以把從返回的每一行 行，你做的foreach行作為元素，
比如說。
然後你可以呼應的元素。
所以這是一個簡單的 如何少進修
你可能會使用的foreach 循環中的查詢的上下文。
>> 是否有關於PHP什麼問題？
任何事情之前都我們 轉移到談論的SQL
和數據庫的樂趣？
感覺不錯？
感覺不錯。
好吧。
>> 讓我們在回移到 PowerPoint中，您可能會錯過。
SQL，耶。
人們誰是我的部分典型 就知道縮略詞的副標題
永遠只是第一個字 我認為，比賽的
算法 - 這首字母縮寫。
這不是一種算法。
>> 因此，SQL是一種數據庫。
它是一種語言， 適用於數據庫。
並且所有數據庫都為 表，至少在方式
該SQL代表他們。
>> 另一種方式來思考數據庫是 數據庫是一組鍵和值
基本上。
你可以想想一個數據庫 一個詞典，也可以作為表。
基本上這是一個方法，關聯 不同的數據與其他數據，
常常通過行和列。
這就是方式 這是SQL效果最好。
>> 因此，這是一個表的一個例子。
我有幾個例子 人在我的部分，它
我沒有時間來改變。
但是，我們已經有了像ID， 名，超級大國，和家鄉。
我不知道任何人的 從我的部分，
所以我只是要承擔 每個人從紐約
市，因為我有很高的統計學 可能性是正確的。
>> SQL會自動取 關心你的ID列。
如果您插入新行 成一個SQL數據庫，
這將增加的 ID號和剛
基本上堅持到五的名字， 超級大國的故鄉，誰就
到該表的末端。
所以，ID是一列，你會 永遠不用擔心。
但是，像在的情況下 login.php中，當我們
都拿到會話ID 從表中，只是用ID，
ID是一種方法，唯一地標識 一個數據庫中的一個元素。
>> 因此，如果我們有兩個薩姆斯，兩者的 這本書教會了CS50，以及兩者的誰
來自密爾沃基，那些會 還是有不同的ID號
因而是不同的 表中的情況下。
因此，這是SQL正在處理 有，在後端工作。
>> 現在，這些都是四個命令 ，你需要使用SQL工作。
而我把它們全部在一個幻燈片。
但是，我們要經過 他們都分別。
>> 第一個命令是UPDATE， 這不，你可能期望。
說你有一些數據 該表是過時了。
如果你保存像 賽道人的名字
和年齡，如果誰家 年齡的增長，那麼
你會想進去， 更新只是人的年齡。
對於工作的例子 我們的第一個table--
不用擔心寫的是 這些命令在同一時間。
但是，如果你有更新了， 這將有利於這部分，
因為我們要 回到表。
>> 因此，如果我們回到桌子上， 比方說，事情發生
在發生地震或 斷層線直接拆分
通過紐約市。
我們想更新大家 誰住在紐約市。
他們都不得不搬到賓夕法尼亞州。
這不是一個故鄉。
他們都不得不搬到紐黑文。
在那裡，我們走了。
所以每個人都在紐約 移動到紐黑文。
>> 而這樣的東西，是 編輯該表中三行。
但在SQL中，你可以做 在短短一個語句。
因此，我們重新更新。
讓我再次快速擦除這款主板。
當我們談論 更新，有
一些部件是關鍵的語法。
好了，所有的語法是關鍵。
但在綠色的東西是可選的。
白是必需的， 像預定義的名字。
而淡藍色的事情 根據表而變化。
所以，這就是同回事 配色方案在這裡，那裡。
>> 因此，如果我們要更新只是那些行 誰住在紐約的人，
所以我們想，如果我們說的更新呢？
因此，表是我們放 我們的表的名稱。
遠的不說名字 我們的表是表中的一個。
因此，我們要更新表之一。
我們要set-- 我們需要什麼設置？
好了，我們想說的是，這麼column-- PHP 把行作為唯一標識符。
然後列 不同領域
的數據庫的那些元件。
>> 這樣的數據庫的第一元件 有山，CS50的超級大國的名字，
和雄鹿的故鄉。
所以如果我們所說的設置，讓我們來看看 再參數設定需要。
我們有列等於價值。
因此，我們要說出一些 column--這記
是field--我們希望看到一個 字段等於新的東西。
>> 因此，如果我們剛才說的更新 表1，設置名稱等於艾略特。
得到一些人的 在這個新的章節。
但是，如果我們只是做了更新表1 集名稱相同艾略特，會是什麼
該表的樣子之後呢？
人們有什麼想法？
是啊。
>> 聽眾：一切都在那 行會成為埃利奧特。
演講嘉賓：這行的一切嗎？
聽眾：在第一行中。
揚聲器：在第一行？
為什麼第一排？
我不是說要接你。
>> 聽眾：也許一切 在整個表？
演講嘉賓：一切 整個表，是的。
這是完全正確的因為 - 我 剛剛幫你出一點點
那裡 - 因為我們忽略 可選的WHERE子句。
如果你沒有在WHERE 條款，這是什麼命令會做
是它會與每 在表中的一行。
每個人的名字將 成為埃利奧特，基本上，
這艾略特是非常高興的事情。
或雅尼，兩個中的一個。
但是，每個人的名字會發生變化。
>> 所以這樣我們使用WHERE clause-- 這適用於所有何在的
這是在每個 這些不同的東西。
所以，你會發現，SET 有列同等價值。
所以呢在哪裡。
但這些不同的 類型的語句。
因此，列等於值 在SET中分配。
就像我們說我們要 設置名稱等於埃利奧特。
但在WHERE子句， 這些都是平等的陳述。
所以我們可以說，我們只是想 改變人的名字埃利奧特
如果他們的名字是瑞恩，讓我們說。
>> 所以，當我們說
>> 其中name等於瑞安，那 成功將唯一的變化
在name--那隻 改變行的名稱字段
其中名稱字段等於瑞安。
所以，如果我們有多人 名為瑞安，他們所有的名字
將改變埃利奧特。
>> 這是類似於實施例 如果斷層線分裂
紐約市和每個人都有 搬到紐黑文，一路上我們可以
這樣做，在一個語句是UPDATE 表1 SET家鄉=紐黑文
其中，故鄉相當於紐約市。
這是功率 UPDATE語句。
我們可以選擇任意數量的 通過真實的陳述行
關於在那些行中的字段。
我們不能說UPDATE表1集 名稱=埃利奧特其中row = 1，
不同之處在於，我們可以的，如果我們說的ID = 1。
>> 因此，我們將要 平等合作
字段，列平等。
但使用ID字段是一種能夠 選擇單個行具體而言，
因為ID字段是一個唯一的 標識符在SQL數據庫中。
因此，如更新一行，ID等於1。
更新兩排，只 改變該ID號。
但是的力量 WHERE語句是我們
可以基於什麼東西更新其 對某些事物的電流值。
是艾略特？
>> 聽眾：如果你想用於：什麼 再次，這是另外一個問題。
但我的第一個問題是， 其中，出現這樣的情況？
我在哪裡升級呢？
這是在一個PHP代碼？
>> 演講嘉賓：你在哪裡更新，是的。
我們要談 在哪裡這一切
發生那種一旦我們去 通過所有的命令。
但是，你需要什麼 知道現在基本上
您的SQL數據庫 存在的東西
到由查詢來訪問 功能，這CS50定義。
如果你使用的查詢功能，因此， 你可以訪問此表。
>> 所以，你會發送這些 命令你的表中的PHP文件
通過查詢功能。
您也可以玩 與你的表直接。
這就是以最好的方式 測試這類命令。
我們將經歷究竟如何 要做到這一點的只是一點點。
>> 所以這是UPDATE命令。
和命令的其餘 將要排序相似，
從事類似的事情。
在INSERT INTO可能 最不同的更新。
我要離開了那裡的 只是一點點和工作在這裡。
所以INSERT INTO，你會看到 該表仍然是相同的。
你想插入到。
資本化，SQL 不區分大小寫。
所以，你不必 利用這些東西。
按照慣例，詞語 白色予以資本化。
但我也顏色編碼他們。
你利用的唯一原因 這些，當你鍵入它們
只是強調 這些是常數。
所以你可以看一下 資本或事實
我已經不同顏色的他們。
>> 所以，我們已經有了INSERT INTO， 讓我們再來一次表1。
這是所有在一行上。
我只是通過分離其 不同的語句。
所以，不要擔心的是， 表1使它到第二行。
>> 因此，我們要插入 INTO表1中的值。
你會發現可選 位，我會在第二。
因此，我們已經得到了價值觀。
>> 所以我們可以說，我們要添加安迪 我們的表，因為我們錯過安迪。
安迪生病。
因此，讓我們加入安迪到我們的餐桌。
請記住，ID號 自動更新。
因此，唯一的領域，我們 需要擔心
包括名稱，超級大國，和家鄉。
>> 所以我們這樣做的方式， 看著我們的語法，是我們
只是得到了括號，用逗號 分隔值，其中每一個
是一個值。
因此，如果我們想安迪插入到我們的 表中，我們所要做的就是正確的安迪。
什麼是安迪的超級大國， 人們在安迪的部分？
她喜歡飛行，還是喜歡 速度，什麼的。
什麼是我們已經在那裡？
我們有CS50，飛行， 速度和力量。
>> 聽眾：時間旅行。
>> 演講嘉賓：時間旅行，令人嘆為觀止。
因此，我們已經得到了安迪，時間 旅遊，和她的家鄉。
這是一個非常好的問題。
紐約市，除非有人知道。
每個人都是從紐約的 教訓從今天帶走。
>> 所以，這種說法會 插入，作為第五行，
與超級大國時間旅行 和紐約市的故鄉。
但可選字段 基本上是一個方式
準確指定哪些列 要插入的東西研究。
>> 我們正在做它現在的樣子， 岸堤，時間旅行，紐約市，
打算在的確切順序我們 table--名稱，超級大國的家鄉。
如果你想做的事 東西以外，
好比說，你不知道 別人的超級大國，
像我怎麼不知道安迪的 超級大國開頭。
所以，我只知道她 的名字和她的故鄉。
我能做的就是我可以 do--我會刪除這個快速。
>> 我想只更新列。
而這正是可選 列清單的用武之地。
我只是想更新的名字和家鄉。
然後我會說價值觀。
我會做安迪和紐約市。
>> 如果我忽略列的列表 而剛剛做這兩件事，
其中，將紐約市都到哪裡去了？
這列將紐約 市被放置在？
人們有什麼想法？
超級大國，沒錯。
>> 因此，這將剛進去的順序。
而一旦它到達的結束 列表，它會只停留填充物研究。
而價值觀，它會堅持在 所有列也只是空。
所以，因為我們規定 名字和家鄉，
我們將有ID 5， 安迪的名字，超級大國空。
所以超級大國是未初始化值。
你不一定會得到 如果你嘗試相同的Valgrind的錯誤
並訪問它。
一切都將被很好地歸零 出來，因為NULL是SQL中的價值。
這是一個常數。
然後，家鄉將紐約市。
所以這是INSERT INTO命令。
在我們繼續之前，有 兩個命令。
人們是否有任何問題， UPDATE，關於INSERT INTO，有關SQL
一般在我們繼續之前 到我們最後的位？
人們感覺很好，很棒。
愛它。
因此，讓我們來談談選擇。
去溝更新在這裡。
>> 並選擇將是非常相似的。
選擇的目標， 在人生選擇的目的
就是給你一堆列 滿足一定的條件。
當我說滿意 某些條件下，
你的心可能會立即 回到那個WHERE子句
在UPDATE上來。
這子句 正是有在SELECT。
>> 如果我們不把WHERE 條款和我們說選擇名稱，
hometown--拼了一點點 wrong--名字，家鄉FROM表1。
如果我們只是說，有什麼選擇 是想給我們的是它的
要給我們 double--一個表，而。
雙數組，如果我們 想在PHP檢測。
但它只是要給我們 兩個columns--名雙陣列，
和家鄉。
它會忽略ID。
它會忽略超級大國。
而且它會只給我們每一個 該表中單列。
因此，如果我們只是插入 岸堤，我們將有安迪。
我們將有原四。
如果他們一直在更新，這將 被反射，等等，等等。
>> 因此，這是因為我們 沒有使用WHERE子句。
但是，我們可以在完全使用 同樣，我們用它在更新。
如果我們只希望名表 與人超能力的生活
在紐約，我們可以執行一個語句 像選擇名稱，superpower--
我只是要離開that-- FROM 表1 WHERE家鄉=紐約市。
>> 因此，這正好說明，你可以 得到完全不同的列，
然後把列，你是不是 即使取回WHERE子句。
我們甚至不希望 故鄉大家。
但是，我們希望的名稱和 人們的超級大國
他的家鄉紐約市。
所以，這是我們 可以用在何處？
子句，我們可以列處理 我們不一定要回去。
在UPDATE同樣的方法，我們就可以處理 與列，我們不一定
要進行更新。
我們可以更新這個城市所有人的 誰的名字是山姆，例如。
我們可以更新的城市 每個人的ID號為2。
所以才更新 市第二排
在這裡，我們沒有處理 必要時常見的問題。
>> 和刪除的，因為你會 預計，DELETE FROM表1。
然後我們有另外一個WHERE子句。
所以我們可以說WHERE ID = 1。
刪除的第一行。
並刪除將始終刪除行， 或者，將刪除的行的一些數。
DELETE FROM表WHERE 家鄉=紐約市
將刪除每個人都在紐約市。
這就是，如果有一個 突如其來的悲劇瘟疫
而你只是想刪除 大家從表中誰
生活在某個城市 被擊中的瘟疫。
願他們安息。
>> 這些是四個SQL命令 你將需要使用。
你甚至不需要使用它們。
但這些都是四 這CS50希望你
是舒適與進入 這兩個測驗1，也pset7和pset8。
>> 這裡只是表了。
在這其中，羅伊的超級大國 被更新，以激光束，它
是一個例子，我沒有使用。
我不知道哪一個 羅伊喜歡，而是實力。
羅伊有實力的超級大國。
凱瑟琳沒能成功的今天。
那真不幸。
但她具有超強的速度。
>> 嗯，這是PHP。
在我們討論MVC，不 任何人有關於PHP的問題？
現在SQL或PHP，如果你突然有 拿出一個關於PHP的問題？
大。
好吧，我們都設置即可。
>> 所以說話有點 關於模型視圖控制器，
讓我們回到一些 在pset7的東西。
那麼，什麼模型視圖 控制器is--我不是
要救我的修改登錄 因為我完全屠殺了。
但基本上我們有兩個 獨立的東西怎麼回事。
我們有一個公開 目錄中包含
代碼，那將被執行 並且，將要訪問的網頁。
而且我們也有這個意見的目錄。
和視圖中包含的模板。
>> 這就是功能 render--我們看到了渲染
在一堆的PHP代碼的功能 這CS50已經為你寫的，
該取入某些參數。
什麼代碼正在做 在它進入的觀點，
這是一組像 預寫HTML代碼，
和它的插入值 到某些地方。
這就是當你 進入CS50金融，
相同的標題是每一個頁面上。
同樣的頁腳是在每一頁上。
這是因為這樣 這使得作品是它會
在頭自動修補和 瀏覽器，你可以在視圖中找到。
>> 事實上，我們可以進入標題， 看起來，這是一個頭的HTML文件。
它有一些樣式表。
你並不需要看的CSS 為pset7，如果你不想。
但是你可以修改 他們，如果你想，做
您的財務看起來有些不同。
>> 它有一些PHP的 頭有點看
如果有一個不同的標題 應該把這個頭。
但只是一些其他腳本， 和鏈接，和其他的東西。
頭端，身體開始​​，並哎呀， 我們有這個古靈精怪的小端位。
而且還有一個div，就像 一個無形的元素種類
這中間有一個想法。
>> 然後，當我們看到尾， 我們有一個div的末端。
我們有一個底部，這是 其中頁腳文本。
結束DIV，身體結束，HTML月底。
>> 那麼，什麼渲染是 做的是呈現幾分
修修補補的頭，一 不同的PHP文件
將包含實際的東西， 你會看到，像你的股票的表
如果你是購買或出售股票。
然後，它會添加在頁腳。
而模型視圖 控制器的想法是，我們
要分開怎麼樣 事情看起來從代碼。
這是我們要分開的前端 和後端，其中，前端為
用戶可以看到的東西，漂亮的 visuals-- HTML，CSS，這樣的事情，
圖像，等等。
而後端PHP。
這是你寫的代碼。
這是其中的代碼那 這樣做的實際行動。
這是當你添加 一隻股票你的表，
當你買進 銷售，這是後台。
>> 我們可以，就像你看到的， 直接包括PHP在HTML中。
因此，我們可能會對做 這種指派剛
對於每一頁的HTML文件，像登錄。
然後在該網頁上，只 有PHP代碼巨大的塊，
包括所有的代碼是 該網頁特別需要。
然後，我們可以有 做到這一點的投資組合。
我們可以做所有的買盤 和銷售的各個頁面中。
>> 但是，因為我們正在繪製 分別從哪兒
我們正在編寫後台 代碼中，我們可以很容易地
改變的事情怎麼看不 改變每一個文件。
我們做這樣的事情只是添加 一個新的div底部
of--你好，我修改了腳註。
你可以做類似的東西。
但同時，你可以改變 整個視覺佈局
在不影響什麼 要在後端。
你可以改變 整個後端，仍然
有它看起來就像以前那樣。
本
>> 是模型視圖控制器的想法。
它實際上是一種強加的範例 在一些編程語言
你可能想使用 最終項目。
如果你這樣做iOS開發， 他們有意見，
這是你在iPhone上看到的， 那麼後端的像一個獨立的東西。
>> 你可以想想一點點。
有很多的二進制文件的 計算機科學，這是有趣的，
因為一切都在二進制。
我不打算說。
這是一個雙關語意外。
是的，雙關語並非意。
>> 但是，像.h文件和.c文件，有 很多東西分離的，我們
可能不需要。
因此，我們可以只修改的H文件，或 有人可以只看到.h文件，知道
正是在該功能 而不一定知道.c文件
其執行情況。
分離成分的這種想法 依賴於彼此
但那種互相訪問 通過不同的渠道，傳遞
的變量，只 包括陳述，事情
這樣，這一原則 有助於創造應用
這可以更容易地 由多人編輯，
可更容易地改變 或修改的規模很大，
和更容易 調試在很多方面。
>> 真快，我有 對於pset7的一些技巧，
我將充分屏幕，所以你不 只看the--竅門TIPPEE。
有沒有那麼多的技巧。
>> 但我提到的PHP是難以調試。
雙重和三重檢查。
如果你的代碼是不 顯示在頁面上，
它可能是一個PHP的錯誤，對不起。
>> 你永遠需要看看 如果你不想CSS。
但是，一旦你完成，也可以是 一個可愛的小有趣的事情，只是去
和亂用CSS的參數。
CSS和HTML是一模型的一個例子 視圖控制器風格的事情太多了吧？
你可以有風格的標籤 在HTML元素。
但是，如果你的排序 它們外包給CSS，
它們更容易編輯和播放 周圍，並有樂趣。
>> 治療CS50幫手 作為黑盒子。
不需要知道 正是渲染在做什麼，
但相信它總是做正確的 這取決於你傳遞的東西，
這樣的事情。
我會推薦 看大衛的演練，
經歷所有的 的東西，而不僅僅是待辦事項，
但你真的能治療 這些黑盒子。
不要進入這些 功能尋找漏洞。
>> 並歡迎回報 我們的霸主Zamyla。
大。
>> 是否有之前的任何最終的問題 那種我們反彈的一天？
我仍然活著？
大。
嗨livestream人。
大。
是否存在了問題嗎？
沒有？
>> 然後，我想我們 好走的今天。
我會堅持圍繞一點點 之後，如果人們有問題
他們也不敢問在流。
但除此之外，有一個美好的一天。