JASON HIRSCHHORN:歡迎 大家到八週。 我們有一個令人興奮的一周擺在我們面前。 你們有鴿子在過去的幾 講座到PHP,SQL,HTML,CSS,所以 四大品牌新語言的打算 拿起剩下的這門課程。 我們還將學習一些其他的 課程結束前的語言。 但無論如何,不用說,這是一個 非常激動人心的時刻在CS50,現在你 已經掌握了C,表面上,並 移動到編程的網站。 所以本週,我們將繼續 通過四個旋風之旅 我剛才提到的語言, HTML,CSS,PHP和SQL。 並希望,我們會留下大量的 時間段的結束談話 關於本週的P設置和答案 大家有任何問題。 每個星期,同樣的資源列表 為你,幫助你用一周的 問題設置和準備 在材料 - 但此週尤其,對於這些 基於web的問題集,有一個 主機的其他資源列 那裡,你將有可能 找到難以置信的幫助。 我有他們在這裡。 我會向您發送電子郵件本節之後, 而這也上線了。 但在特定的,有很多 偉大的資源在那裡。 也有一些不是那麼大 的,所以要警惕那些。 但是在這張幻燈片上,我有四個好 資源,每一個的 你會工作語言 這個星期 - 一個參考手冊的HTML, 參考表CSS。 這裡這個權利是PHP手冊。 因此,而不是打字的人,然後一個PHP 命令,這就是你會 去查查函數原型 和例子,也有一些技巧和 技巧使用PHP函數。 你會經常使用這個網站, 所以我鼓勵你成為 熟悉它。 它可以是一個有點技術,但它 還提供一噸的資源和 示例所有的功能和 甚至其他,想怎麼用數組或 不同類型的變量。 這個網站是PHP非常有幫助。 然後,為SQL,如果你一頭扎進這 本週的問題集,你就會知道 我們正在使用的數據庫。 我們通過訪問數據庫 一個比較漂亮的用戶界面。 或者說,有一種方法來訪問 該數據庫。 用戶界面是 所謂的phpMyAdmin。 有一個SQL選項卡,我們將 看看今天以後。 而且你可以輸入到他們的示例SQL 查詢,做事情在你的數據庫 然後運行這些查詢。 如果他們是正確的,它會 說,這其中的正確。 如果他們不正確,它會 說,這是不正確。 這是一個偉大的地方來練習你 寫他們到之前的SQL查詢 你的代碼,以確保您 有格式正確無誤。 最後,在這裡另外一個網站。 這是一個網站,你​​可以 去檢查,以確保您的 HTML代碼是有效的。 所以,把你的問題之前設置 這一周,確保所有的 你的HTML是有效的。 上週,你曾經的valgrind跑, 請確保你有沒有內存洩漏。 這一周,你需要確保所有的 你的代碼是有效的HTML5。 如果它不是有效的HTML5,你 要得到分折。 所以一定要確保 - 只是因為它的工作原理不 意味著它是完全有效的。 通過本網站運行代碼 將其入夥前 同樣,這裡的網站。 如果您有任何意見對我來說,我們有 一對夫婦更多的部分留下, 我總是想要做什麼,我可以給 為您提供所有的最好的部分 體驗成為可能。 因此,讓我知道,如果有什麼事,我 怎樣才能提高或者有 你看,我可以做的更好的事情。 謝謝,AVI。 把它放在網站上。 這是自行車我有我的時候 是,讓我們說,四家。 這是一個忍者神龜龜 騎自行車,如果你看不出來, 因為它是一個有點模糊。 您可以獨家發售現在得到它 對,我認為,100美元左右。 但這個自行車是我想要的功能 你要注意這些 就在這裡。 這些都是輔助輪。 到現在為止,你一直手持 通過C.我們已經採取了很長 時間兩個月加, 要經過C。 對於這些未來一,語言, 我們不會以 花那麼多的時間。 訓練車輪脫落。 而且我們要潛入這些 語言快速移動 他們迅速,這是不是說, 我們只是要離開你游泳 在那裡,沒有辦法支持 自己或弄清楚如何將這些 工作語言。 我剛才給你看的列表 的資源來幫助你。 但請記住,PHP是令人難以置信 類似於C。我們就去了 今天和一些不同之處吧。 但在大多數情況下, 有for循環。 還有,如果條件。 當你想解決一個問題, 你要使用 結合這些的。 這是非常相似的。 邏輯應該是非常相似的 你在過去所做的一切。 什麼是真正的新本週是 語法以及如何表達自己。 而你想要寫一個for循環,但它 可能看起來有點不同。 或者你想創建一個數組,但它 可能看起來有點不同。 所以請記住,前進, 的邏輯是非常相似的什麼 你在過去所做的那樣。 但你現在將要遇到 很多新的語法。 我們不打算步行通過 語法中的所有元素。 所以,這真的取決於你要弄清楚, 在網上或通過伸出的 討論或發送電子郵件至我或交談 彼此,如何在寫東西 PHP和如何編寫SQL查詢 以及如何使用HTML和CSS。 但只要你知道,這並不是說 我們試圖扔掉你在那裡 再次游泳的鯊魚。 這就是你將有可能與做 您的最終項目,如果你選擇一個 不同的語言,像IOS和 目標C,或者如果你決定開始 規劃中的未來 潛入其他語言, 像Python或Ruby。 通常情況下,該邏輯是非常相似的 在所有這些語言,而 語法是有什麼不同。 這將是你的,因為 程序員去使用網絡 提供給您和數字資源 如何表達你知道如何 發表在C中,在 不同的語言。 所以這是很好的做法,既為您的 最後的項目,並再次,對於 你可能會做 你離開後,CS50。 在我們繼續之前,是否有人 有任何疑問什麼 我已經做了這麼遠嗎? 大。 讓我們繼續前進。 首先,我們要簡單談談 關於chmod命令。 這一點,我們會做的開始 你的問題設置。 一個的第一個指令 對你來說,你下載後, 分配的代碼,是改變 檔案和權限 您收到的目錄。 任何人都可以大膽的猜測或知道 為什麼要改變它是非常重要的 某些文件和權限 您的計算機上的目錄? 阿維 - 觀眾:那麼沒有人,除了 你可以看到你在做什麼? JASON HIRSCHHORN:確定。 因此,如果我們想要把東西就 網絡,並設置權限 只有你能看到的東西, 再沒有其他人可以 看到自己創建的東西。 還有什麼? 是啊。 觀眾:防止別人說你 不想看到的東西,從 看到的東西。 JASON HIRSCHHORN:這是真的也。 有可能是一些代碼, 你寫的,你不 希望人們能看到。 你可能用的人看到的確定 您的HTML和你的JavaScript。 但你的PHP,後端代碼,很多的 邏輯到你的代碼,也許 存儲你的一些密碼的東西 為你的數據庫,你不 希望人們看到, 類型的信息。 因此,重要的是,每個文件和 我們創建的目錄有權限 適用於我們是否要 人們看到這些類型的文件和 目錄,並能夠訪問它們 甚至還有可能改變他們。 因此,有三種類型的 權限。 有一個讀權限,這意味著 你可以讀一個文件或目錄的 該目錄的內容。 還有的寫權限,這 意味著你可以改變文件或更改 一個目錄,然後執行 權限,這意味著你可以 執行一個文件或者說,你 可以移動到一個目錄中。 所以,光盤什麼的,如果你有 執行它的權限,你可以移動 進入該目錄。 這是一個簡單的例子。 同樣,你已經了解了這 在問題設置。 但是,我創建一個目錄 用mkdir命令。 我更改權限。 這兩行實際上做 完全相同的事情。 這說明了語法 更改權限,無論你做 在一個+ X或711,這些都是相同的。 我們低頭看著這個漂亮的桌子。 我們看到,有用戶 第權限。 這就是你的個性, 你的服務器,有可能。 然後有組和其他用戶。 那些之間的差異 2頃比較瑣碎。 所以一般我們會結塊 那些在一起。 但本質上,如果我們有一個文件 所謂包括我們要 能夠編輯自己,我們要 他人能夠執行, 它的許可711。 而且我們看到,下來 此處在此表中。 我們有讀,寫和執行。 對於我們每個人,我們要 能夠做到這些。 集團和其他人,我們只希望 它們能夠執行。 我們翻譯的方式 成若干 權限是通過二進制。 所以,如果我們有三個的,這是一個1 在那些列,1的二進制補碼 柱,1四肢列。 這是7在那裡。 而這個權限是1。 此權限是1。 因此,當711是一樣的給 自己讀,寫和執行, 和其他人的執行權限。 這條線就在這裡,我們一般 將具有讀取和寫入時,我們 創建目錄。 所以,這條線在這裡只是增加了執行 特權給大家。 所以這將是類似於在 除了我們所擁有的, 加1,1,1到大家。 而這一點,這是不必要的 添加讀取和寫入。 但是,如果你要使用的號碼, 你不能只是補充一下。 您覆蓋任何人的許可 那裡與新實施這些 數你給。 這是相當快的。 沒有任何人有任何疑問, 有關更改權限? 確定。 如果我有一個PHP文件,有什麼權限 我希望它有哪些? 這是問題的集中規範。 所以,你可以看看規格和 然後讀了我答案。 觀眾:你希望用戶 有讀寫權限。 和你想每個人都 別的什麼都沒有。 JASON HIRSCHHORN:什麼 號碼是什麼? 觀眾:600。 JASON HIRSCHHORN:600。 所以,CHMOD 600 - 每當你打印 一個PHP文件,chmod將其轉換600。 確定。 我有一個目錄。 有人除了傑夫, 我有一個文件夾。 我想將什麼權限 給該文件夾 - 也是在問題設置規範, 右下方這個答案或 以前的答案? 也有可能在幻燈片上 - 馬庫斯。 觀眾:對於 文件夾,它是711。 JASON HIRSCHHORN:711 - 這樣一個文件夾,你想給711。 你想成為能夠讀取該文件夾, 更改目錄,進入 該文件夾。 和你想別人都可以 到該文件夾中導航,但 不一定會改變其內容。 怎麼樣一個非PHP文件, 說,一個JavaScript文件? 我們想要怎樣的權限 給該類型的文件? 觀眾:644。 JASON HIRSCHHORN:644 - 我們為什麼想給它644? 觀眾:為了讓其他人閱讀。 和你讀或寫。 JASON HIRSCHHORN:那麼好吧,大家 其他人可以閱讀該JavaScript文件。 你可以改變,除了 要能夠讀取它。 所以最常見的錯誤的人之一 有這個問題的設置及其 最後的項目,如果它是一個基於Web的最終 項目,他們將不會設置 正確的權限。 並且他們將無法 看到他們的網站。 或者他們的網站的特定部分。 因此,請確保您的設置 權限正確。 不要只是假設,它會 會自動為你做它。 確定。 這是一個很小的事情,我們花了 時間上量好,所以 我們可以釘它。 讓我們繼續為HTML。 再次,對於這些未來四個主題, 我們要通過他們去 比較快。 所以,請隨時阻止我在任何 時間,如果您有任何疑問, 無論他們是關係到我的支付 或從東西或講座 即使從問題設置。 阻止我只要你需要。 當我們到了年底,我們就 開始準備過的問題集。 這樣的HTML代表超文本 標記語言。 這是不是一種編程語言。 它所做的就是結構內容 並且還提供了一些元數據。 因此,例如,據推測,許多 您以前使用過Facebook的。 並且可以包括鏈接,或者你 可以把一個鏈接作為您的狀態。 然後,你會發現鏈接 總是有一個漂亮的圖片 它和一些文字。 通常,這是一些元數據 對於一個網頁。 而且它是Facebook的特定的元數據。 然後,當Facebook被閱讀了 頁面並插入該鏈接,它 看起來對於特定的元數據,因此它 知道要顯示什麼畫面,什麼 標題來顯示,並且什麼 抽象的文字來顯示。 因此,我們可以包括元數據 我們的網頁使用HTML。 它也可以幫助我們結構 的含量,通常,什麼 我們想要去的地方。 在HTML中一切都是​​一個元素。 和元素在這裡 - 這CS50,文字的元素。 而且它有一些標籤。 這個它有一個標籤。 我們注意到有一個一個的 開始,然後斜線的,所以 關閉一個標籤底。 有時候,有沒有一個開放的 標記和結束標記。 這裡還有一件事。 我們會看到這樣一個例子 對下一張幻燈片。 所以,你不需要一個開放 和結束標記。 但對於這一點,我們住這個 在一個錨標記CS50元素。 而且基本上,這些標記告訴 瀏覽器如何處理 的特定元素。 如此反复,CS50是文本 我們將要看到的。 它將會是 一種錨。 錨本質上是用來 對於鏈接的東西。 特別是,你可以 已經知道,這是一個 鏈接到CS50主頁。 標籤的下一部分 - 或一般, 標籤的一部分是 屬性。 我們看到這裡,那 該標籤有一個 屬性,這個href屬性。 他們修改特定的標籤。 事實上,如果你去的一 網站或我給你的參考 之前或查找標籤在線, 你會發現有一噸的 潛在的屬性。 這大概是1 最常見的。 這是告訴我創建一個 鏈接到該特定網站。 和一般屬性給出, 如果不是全部發出, 在鍵 - 值對。 因此,這裡的關鍵,HREF。 和值是在這裡正確的。 而這會派上用場,後來, 當我們開始使用一些庫 幫助我們的代碼中的JavaScript 或寫HTML內容。 我們經常將是 - 就像我們 會做陣列支架0和 會給我們一些價值。 在未來,我們會做很多的 東西喜歡的事支架的href。 而這會給我們的價值 HREF,或者如果我們要更新的href 鍵,然後給它 一個特定的值。 所以就像使用數組,我們不得不 鍵0或1鍵或2鍵,或即使有 哈希表,好了,你的哈希表 還有,你可能有 - 它 是一個數組,所以0鍵,鍵1,鍵2。 該指數在那裡,我們可以 認為那是一個關鍵。 和值是什麼 被存儲在那裡。 所有這些屬性 是鍵 - 值對。 而這將是重要的改變 他們或更新它們或 後來將它們插入。 最後,你已經看到了這個結構 之前,但是這是最基本的 HTML頁面的結構。 在頂部,我們告訴你, 這其實就是HTML。 然後我們有一個開放的HTML 標記和結束HTML標記。 所以一切的內 這是HTML。 我們看到的頭部和主體。 您的文檔的頭部 一般包括什麼? 任何猜測為你 放在頭上? 觀眾:你把標題和風格。 JASON HIRSCHHORN:標題。 這是一個偉大的猜測。 我可能已經放倒你去的。 什麼是一些其他的東西? 我們提到的其中之一, 可能去的頭部。 觀眾:他說,款式。 JASON HIRSCHHORN:樣式 - 所以如果你想在一個JavaScript鏈接 或什至一個CSS,而你說 約當你在談論 有關樣式。 另一個文件,你想在一個鏈接 文件外,也可能會 在頭部。 還有什麼? 我們提到了幾個幻燈片 的事情前一個 HTML可以為你做什麼。 它可以提供 - 開始於一個的M - 觀眾:元數據。 JASON HIRSCHHORN:元數據 - 因此很多 元數據將在頭去, 因為這將不一定需要 是你的代碼的身體的一部分。 這是一般 - 身體是 內容,有人看到的。 因此我只是給了答案 我的下一個問題。 但在體內通常的含量 那將被顯示 上的網頁。 正如我們將看到的,複雜的網站 往往混為一談,或改變了什麼 它們放置在頭部和主體。 但是總體來說,頭部包含的東西 用戶是不會 在屏幕上看到。 它連接在其他文件 並提供元數據。 然而,體內含有的一切 用戶將要看到的。 任何知道這個p標籤意味著什麼? 觀眾:段落? 觀眾:打印。 觀眾:這並不意味著打印。 觀眾:這是否意味著段落? JASON HIRSCHHORN:段落 - 所以這是一個段落。 而這個p標籤,我可能剛輸入 這在屏幕上,然後 包括換行符 在它的結束。 任何人都知道如何將 換行符? 觀眾:公關 - JASON HIRSCHHORN:公關 - 觀眾:斜線公關? JASON HIRSCHHORN:公關斜線 代表換行符。 但段有具體的 格式。 我們會得到一個格式化 第二,當我們談論的CSS。 但一切這些p標籤內 也會有一些默認的格式 與它相關的,可能是一些 之間不同間距的 段落。 而這將是區分單程 代碼塊。 任何其他標記 - 什麼是你見過的其他標籤? JASON HIRSCHHORN:通過H6 H1。 通過H6 H1,和那是什麼? 觀眾:這將意味著有多大 和大膽的字母。 JASON HIRSCHHORN:對, 它代表了頭。 所以header1的是一個很大的標題。 它可能會在默認情況下,要大膽,一 大字體的大小,大概集中在 在屏幕上,一路下跌到H6, 它是一個較小的字體大小,減 強調。 當然,你可以在你的CSS文件 或者在某個地方你的代碼 - 這, 再次,我們會得到,在第二 - 改一下默認行為 的一個h1標籤。 但請記住,鉻,野生動物園, 火狐,IE瀏覽器都有 默認查找了很多 這些標準標籤。 您可以再次,永遠改變 他們的樣子。 任何其他標記,每個人都 已經見過? 是啊 - 觀眾:一個DIV的網站。 JASON HIRSCHHORN:一個div標籤 - div標籤 沒有任何內建的格式,每 本身,用於阻擋 不同類型的代碼。 任何其他標記? 是。 觀眾:李 - JASON HIRSCHHORN:李 - 什麼是禮呢? 觀眾:列表。 觀眾:列表 JASON HIRSCHHORN:li為 對於列表中的元素。 有兩種類型的列表。 哪兩種類型? 觀眾:有序和無序。 JASON HIRSCHHORN:有序和 無序的 - 所以UL看台 對於無序列表。 這就是,如果你想有一個子彈 點,子彈的列表。 有序列表是一個編號的列表。 所以你會做一個開放的UL標籤,然後 列表中的元素噸,然後 關閉UL標記。以及將 創建一個無序列表。 我們將看到一些例子 的HTML在一個位。 但在此之前,我想要得到的CSS。 和CSS代表層疊 樣式表。 這是非常密切相關 以HTML,但略有不同。 這可以幫助您格式化所有的內容 該HTML結構。 所以在CSS中,我們一般不希望 每一個樣式單頭或每 單一的形象或每 單款。 我們希望一些風格元素 或者一個特定的元素。 和我們一路樣式的特定 元素是給它一個ID。 所以這是一個屬性。 它有一個鍵和一個值。 ID是關鍵。 標誌是價值。 我隨機挑取的標誌。 如果你給的東西一個ID, 通常,只應給予 給一個元素。 然後,在你的樣式表,你可以 風格,特定的元素,然而 你希望它看起來。 如果你想要的款式了一些 元素,也許這是一個特定的類 頭的,只有你的頭的部分。 也許這是一個頭和一個圖像和 段你都希望為中心。 然後,你可以給這些組 元素的所有類。 而且你可以給這個類 特定的樣式。 因此,一個ID和一個類兩種方法 打破你的代碼,這樣你就可以成為幫助 更具體的在你的風格。 有三種方法來樣式。 第一個是,用 這個樣式屬性。 所以你看,風格關鍵是風格。 樣式值實際上是 另一個關鍵值列表。 在這種情況下,我選擇了 一鍵,文本對齊。 我說,中心。 你可能會問自己在這個 一點,我怎麼會知道 文本對齊。 這是什麼,即使做? 這是一個很大的問題要問,以及 我們去到那裡在第二。 所以這就是樣式的東西的一種方式, 只要給它的樣式屬性。 另一種樣式的東西是 - 這是AKSHAR前面提到的。 您可以使用樣式標記,並將該 在你的HTML文檔的頭部。 所以你基本上是說, 這裡裡面的內容 是一些樣式的內容。 而對於該格式是你的事 想要的款式,然後裡面 大括號,鍵值對的 屬性,你想給 該特定類型的元素。 最後,這是 最常用的方法。 這是我們的方式 做到這一點P中集7。 這是一個外部的樣式表。 所以,你有一個。css文件。 和它裡面,你會看到很多的 事情是這樣的,這個名字 某些類型的元素或一個ID或 一個類,然後,捲曲​​的內 大括號,鍵值對的列表。 當然,如果你創建一個外部 文件,你要 需要包括它 - 犀利包括,那會 成為了C比喻 - 在你的HTML文件。 所以,你必須包含這個 在你的HTML文件中的代碼。 這是該文件的名稱和 假設它是在同一個目錄下。 確定。 這是一個很多。 而我們現在要呼吸,並期待 在一些真正的,活的網站, 探索這更多。 但在此之前,我們這樣做,是否有人 有什麼問題嗎? 所以,如果你想這樣做,隨著 我,我們可以去家電。 而我選擇了CS50主頁。 你可以與任何網站做到這一點。 但我們為什麼不開始 在CS50的主頁? 讓我們來刷新。 其實我強烈建議你在幹什麼 這個跟我一起,因為我們 打算現在要做的將是 令人難以置信的方便的你,不僅在 P-7集,但在P-8設置為好。 是啊。 觀眾:有沒有辦法做評論 在HTML中,不使用PHP? JASON HIRSCHHORN:是的,可以 在HTML中提出意見。 觀眾:什麼是語法? 觀眾:感嘆號短跑衝刺。 觀眾:確定。 JASON HIRSCHHORN:是的。 即語法。 您可以在HTML中提出意見。 你可以在PHP中提出意見。 正如你所看到的,在HTML註釋會 仍然顯示,當我們看 某網站的HTML源代碼。 因此,這cs50.net。 如果你右擊在最現代的 在幾乎所有的網頁瀏覽器,可以查看 該頁面的源代碼。 因此,讓我們做到這一點的CS50。 和你瞧,我們 看到一個巨大的東西。 CS50實際上看起來相當不錯。 很多網站會不會 看看這個漂亮的。 如果你去谷歌的主頁 並打開它。 它不會看這個不錯的。 但你注意到,在頂部 - 這是有點小。 讓我們把這個更大的。 確定。 在頂部,DOCTYPE HTML, 這是熟悉的。 然後,我們看到了開放的HTML標籤和 頭,就在這裡,所有的 這些meta標籤。 你可以看到這個OG,不 要進入這件事情。 但我幾乎可以肯定在那 這些將是Facebook的。 這實際上是Facebook的。 我認為,代表開放的圖形。 所以請記住,我提的有 功能NEW特定的元數據就可以 給到一個頁面。 那什麼是正確的位置。 所以,當你在Facebook上鏈接此頁面, 圖像它會顯示 這是圖像就在這裡。 而你實際看到它的 Facebook的,因為它是 Facebook的形象。 但無論如何,我們正在一邊。 因此,我們有一些元數據標籤在這裡。 我們看到CS50稱號。 再次,標題是善有善報 在這裡在瀏覽器選項卡。 我們看到這個鏈接是在,就在這裡, 外部JavaScript文件。 我們還沒有談到JavaScript的多, 但下週 - 當然,如果 你在做一個基於Web的問題集, 您將使用JavaScript。 這是您在外部鏈接如何 JavaScript文件。 我們看到這裡,終於,在CSS 樣式表,即這些文檔 風格的這份代碼。 讓我們真正打開和 看看真的很快。 這看起來瘋狂。 有沒有辦法,我會 能通讀。 所以,你實際上可以不過,如果你拿 一起來看看,你可以排序的看到, 有 - 我們走吧。 這看上去就像我們所看到的 之前,背景顏色,將其設置 等於一些紅綠藍值。 排序這東西不應該似乎 國外,即使當介紹 這樣,它可以是 有點勢不可擋。 我們不是要看看這個CSS文件 或花很多時間在上面,因為 它是,再次,非常難以閱讀。 讓我們回到這 HTML頁面為CS50。 並讓我們向下滾動到身體。 而且裡面我們看到這個div標籤。 我們看到了一個頭就在這裡。 我們看到的錨標記。 而這個列表元素是 給定一個特定的類。 而且我們看到,重複類 一遍又一遍。 有你柯蒂斯。 有HTML5中的註釋。 正如你看到的,我們仍然可以看到 它,但它沒有顯示出來。 它實際上是非常有趣的。 它看起來像這樣的分數列表 元素被註釋掉。 如果我們去到這個頁面,再次,它仍然 在那裡出現,那麼有趣。 哦,那是為什麼呢,因為 這下一行。 還有什麼,我們看到的興趣呢? 這樣做的其餘部分較為混亂,在 處理這種權利的一半 網站,這是一個小 更複雜一點。 因此,這是一些HTML 是要看起來像。 對於我來說,雖然,這是一個小 壓倒性的,這不 幫我那麼多。 然而,有一些 確實,其實幫了​​我很多。 這就是我用什麼,每當我 試圖找出某物 看起來它的方式,或如何能 我改動了我的網站。 那是一個開發工具 內置於Chrome瀏覽器。 所以,如果你去這三條槓權利 這裡再往工具點擊 開發工具,一個小窗口會 彈出在頁面的底部。 尤其,鉻,因為它是 精彩,將格式化這個窗口, 採取的HTML,使它看起來 很多關於你更好。 所以,現在它實際上是一些可折疊 的HTML,你可以探索檢查 頁面的元素。 如果我們想看看身體, 它實際上凸顯。 當你翻閱過的HTML的一部分, 倒在這個窗口中,它會 突出的部分它在說話 關於在大窗口。 因此,讓我再試一次,並 吹這一點。 確定。 因此,讓我們打開身體。 而且我在滾動這個左格。 而且你注意到它的突出 這左半個屏幕。 因此,讓我們點擊該 並展開。 裡面的它,它看起來像 有兩個div。 還有這個第一個div。 我沒有看到高亮顯示。 我不知道,但它看起來像這樣 第二個,左內,是內容 在屏幕的左側。 再有就是這個東西叫做頭。 它看起來像是一個突出 在CS50的一部分。 如果我們打開了,我們看到它的 無非就是頭1。 它給了一個ID,它的 給定的文本CS50。 所以,再一次,看著它通過這個 控制台或者使用開發者工具 窗格的屏幕使得底部 探索這個網站,希望一 少了很多恐嚇和 很多更方便。 這也讓我們認識到, 本網站,雖然它看起來很 漂亮,漂亮,是不是所有的東西 超過你將成為怎樣的 這樣做的習題集7。 而這完全是內 你的能力去創造。 如果我們要 - 有關使用這些其他很酷的事情 工具,如果你右鍵點擊 標題,您可以編輯HTML。 所以,讓我們把它叫做傑森。 現在你會發現我已經改變 此頁面上的HTML。 當然,我並沒有改變 它永久。 如果我刷新我的瀏覽器,那麼它會 回到原始的HTML。 但有時我想調試我的代碼, 我不想看只是有我 gedit的窗口,並嘗試理解 這是怎麼回事。 我想看看會現場發生什麼。 所以,我將修改這樣的代碼,並得到 但我想要的方式來看待。 然後我會做 變化在我的代碼。 而且我發現它是一個更容易 當你可以做的事情 瞬間,像這樣。 比方說,再次,我們要再拍 偶然的機會,因為我們正在探索與 HTML和CSS現在。 我可以編輯HTML現在。 我要去包含一個鏈接。 所以我要改變CS50的家 頁,所以它會鏈接到 - 讓我們說 - 我的主頁。 叫什麼名字,如果有人回憶說,或 什麼是我想給屬性 當我想要一個錨標籤 它鏈接到別的地方? 觀眾:HREF? JASON HIRSCHHORN:HREF - 所以,現在,你會看到有 賈森是根據下劃線。 這是因為Chrome瀏覽器,默認情況下, 給出了錨下劃線。 你可能已經看到過 當你去一個網頁。 東西都是鏈接 下劃線和藍色。 對於一個鏈接的默認樣式 是一般強調 並把它放在藍色。 如果我不喜歡這樣, 我可以改變這一點。 我們將在第二個改變它。 但現在,還注意到,如果我徘徊 在此,在左下方的 屏幕正上方的字元素 是,我給它的鏈接。 所以,如果我沒有點擊這個 - 我們可以 右鍵點擊這個,打開一個新標籤。 這其實不是我的主頁。 這只是我的名字。 你去那裡。 現在,我們已經把它變成一個鏈接。 讓我們來探討一些CSS以及。 美麗的事物 - 而且我要去 使這個稍微小了一點 - 約 這個控制台是,那個瘋狂的CSS表 我們看到之前,這是真的 很難解析,現在是美麗的 奠定了我們在左手邊 此窗格。 所以我們可以看一下。 如果我們擴展這個風格標籤,我們 可以看到所有的不同風格 一種是與相關聯的,在這種情況下, 這個特殊的元素,這 鏈接元素。 如果我們這樣做的複合樣式選項卡,即 只是告訴我們,不是這裡的一切 從何而來,但基本上所有的這些 這是經營上的風格 這個特殊的元素現在。 讓我們說,我們要 改變它一下。 因此,這是所有的樣式 操作這個特殊的元素。 說,我們要改變它,因為我們 想怎麼看東西的樣子。 而我們只是在玩 各地現在。 或者我們要測試的東西出來,才 寫它的代碼和推 它並使其生活。 我們可以去的風格標籤。 並在第一個框中它 說,element.style。 而在這裡,你可以插入, 你可以添加一些東西。 所以我想 - 讓我們去我的鏈接和 設置背景色。 它實際上自動填充它適合你, 所有可能的屬性。 背景顏色,我想 作出這樣的藍色。 BLUS是不是一個詞。 藍色是一個字。 難道我看它上來? 哦,原來是因為它是在href? 確定。 因此,我看不出這裡有什麼變化。 那是因為,如果我們突出 鏈接時,你會發現鏈接 實際上並沒有控制所述 這個特定元素的屬性。 它實際上,如果我們打開鏈接, 這個頭就在這裡這就是 控制是什麼樣子。 所以,如果我想使背景 藍色的,我其實有改變 的背景顏色 頭元素。 現在我們看到, 背景是藍色的。 如此反复,這很快可能會去 通過這種材料很快。 但是,這基本上是什麼 你會做的事情。 這不是在習題集7, 但是當你肯定 編碼在網絡上。 確定。 我想使背景的藍色。 即使在這種情況下, 藍色看起來很醜陋。 我可以去這裡玩。 我看到它變為藍色 不會在一個工作。 我必須真正改變標題 元件包括藍色 背景。 然後,如果當時我回到我的CSS 文件,實際上,我怎麼設定這個 背景是藍色和 進行此更改棒? 因為如果我們注意到,如果我刷新 頁面,所有我所做的更改都不見了。 於是我意識到,好吧,我 背景是藍色的。 我需要進入那個header1的元素 並改變背景顏色為藍色。 我怎麼居然作出這樣的改變? 嗯,記得,如果我們進去吧 在這裡,這個頭球攻門, 標題都有一個ID。 這就是冠軍。 所以在我們的CSS文件,我們可以說,OK, 採取任何帶有標題的ID和 給它這個額外的屬性。 我們該如何引用一些與 標題,任何想法,或任何人的ID 知道我們如何引用 在我們的CSS文件的ID? 哈希,這是完全正確的。 而你得到了一個暗示就在這裡。 所以,在某個地方這個CSS文件, 還有下面這行代碼 - ##左左內側##標題標題。 和它給它緣底部, 定義這個邊緣底部 特定元素。 好吧,如果我想改變這種狀況, 我會去到這個CSS文件。 我既可以找到這個 CSS文件的一部分。 或者,我可以寫我自己。 我可以做散列標題大括號和 然後背景顏色藍色結腸癌 分號和關閉的大括號。 而這將改變背景 色彩這個元素,以藍色的。 他們給你這麼多在這裡的原因是 即,有必要在這種情況下, 因為標題是一個唯一的ID。 但你可以做的是鳥巢的東西。 因此,這是說,好了,去左邊。 這是非常小的。 我對此表示道歉。 但去的東西ID為左。 裡面的那個,尋找 ID為遺忘物內。 裡面的那個樣子,找 東西用ID頭。 裡面的那個,認准的事情 編號標題和更改ID稱號。 所以這只是一種方式 嵌套的東西。 有些人喜歡窩,因為 這使得它更清楚一點。 你會看到這兒還,右 在這裡,沒有散。 這只是H1。 這是因為,H1中給出的 一個通用的標記名稱。 並有一些CSS屬性 與每一個H1相關。 所以,如果我發現了另一個H1此頁面上, 我也看到,這種風格是 適用於它。 如果我想要一個樣式應用到一個類, 我怎麼引用類或 談一類在一個CSS文件? 觀眾:點。 JASON HIRSCHHORN:這是一個點。 因此,讓我們回到這個頁面之前。 如果我做雜湊的ID。 這是改變風格 與ID的東西。 或者,對不起,如果我做散列的標誌,這是 尋找的東西與標識的ID 並給它一個特定的CSS樣式。 如果我做一些事情。頂部,這是發現 一切都與類頂部和 改變它的樣式。 如果我只是H1,即認為每個 單h1和給它的任何 風格我想給它。 如果我做H1空間,然後。頂部。 這會發現所有的H1S,然後 所有與類頂級的那些和 那麼只有改變這些樣式 無論我想給它。 再次,我們可以寫 一些這方面我們自己。 但是,我們也不會得到那麼遠。 好多了,看來真正去 上一個活生生的網站,看看如何 他們這樣做,並期待在所有的 你做奇妙的事情。 讓我們再看一個網站 在我們繼續之前。 這是一個你可能會 熟悉。 這是CS50融資。 所以,再一次,你其實可以進去 觀察這個CSS文件的 電腦,因為你已經下載了這個 CSS文件,如果你下載了 問題集。 我們可以去工具和 開發者工具。 我們看到一個更簡單的HTML佈局。 我們有頂部,中間和底部。 再次,你應該是 熟悉了,因為你已經了解了 通過分配代碼 本週的問題集。 在頂部是,每個代碼, 單個圖像調用。 那就是在圖像的源。 說我已經完成了所有的東西 我想對於習題集7。 和它的正常工作,但 我想改變它的外觀。 我想改變背景 該頁面的頂部, 例如,藍色。 如果是我,我會來的 這裡弄清楚,確定什麼 我想改變。 讓我們來看看,DIV ID之上,那長相 像的頁面的頂部。 因此,讓我們去那裡。 讓我們嘗試改變 背景顏色。 讓我們做的愛麗絲藍色,因為 這是一個更好的。 而且你會發現 - 你可能無法看到。 但是有一個淡藍色的, 旁邊的CS50的標誌。 讓我們,而不是將其更改為紅色。 ,你會發現現在我只是改變了 背景顏色為紅色。 所以,現在我將進入我的CSS文件, 鍵入#頂花括號就在這裡。 你可以看到代碼的權利 在這裡,大括號。 然後,我想補充的背景 色,紅色。 然後,就 是一個大括號。 所以這是我會怎樣探索和 試驗在CS50格式化 財經網站。 我可以在這兒試做 它在我的瀏覽器。 然後,我可以進入我的實際代碼 並進行了變化,將 實際去住的,人們 實際看到的,如果他們要來 我的具體部位。 確定。 這是一個很多。 我的經歷道歉 它如此之快。 沒有任何人有任何疑問, 在所有的HTML或CSS? 觀眾:你可以去超過你如何 掛了後來傑森,再次? JASON HIRSCHHORN:什麼 你的意思是聯繫在一起? 觀眾:你提供一個鏈接到另一個 網站,使用錨。 JASON HIRSCHHORN:所以你問, 只是籠統,你如何做一個鏈接? 觀眾:是啊。 JASON HIRSCHHORN:確定。 該代碼製作一個鏈接 - 觀眾:沒有,像在HTML中。 JASON HIRSCHHORN:羽絨服在這裡,你的意思是? 所以,如果我想包括一個鏈接 某處,說,這是對我的HTML 頁面在這裡。 這是HTML。 也許這是在打開一個文件,index.html的。 我進去了。 讓我們有這個版權約翰 哈佛鏈接到一些東西。 因此,我們將編輯這一切都為HTML。 你要做的就是包括一個,所以 支架上的接近支架在 開始,然後支架斜線 在最後一個右括號。 所以,現在我已經包括了一個錨標記。 而實際上,如果你點擊 出這一點,現在將 格式化編輯為HTML。 並說,我們要聯繫起來。 我們倒是你href屬性。 和我們說 - 現在,當你注意到,版權 約翰·哈佛是藍色的。 當我翻閱過 它,它現在是一個鏈接。 所以,你可以編寫代碼。 你可以環繞幾乎任何東西 你想在一個錨標記,並把它 成一個鏈接。 觀眾:確定。 得到了它。 JASON HIRSCHHORN:如果我不想 它 - 當然,有時人們往往 想到這些事情,只是看 藍色籠統,並強調是 不要做一個鏈接最漂亮的方式。 所以,如果我來這裡,您可以看到, 某處在CSS文件中,有 寫了這一個,然後 兩個花括號。 所以我們可以說,對於鏈接,我不 希望他們變成藍色,而我 要鏈接到的顏色 是這個漂亮的紫紅色。 讓我們給它的顏色。 讓我們挑洋紅色。 現在,在我的頁面上的所有鏈接有 成為品紅這個漂亮的顏色。 有些人不喜歡的顏色的。 有些人不喜歡下劃線。 你來挑。 的鏈接,您可以風格如何 看一次您訪問過他們。 正如你會發現在很多的網頁, 鏈接變成紫色在您訪問它們。 您可以更改顏色為好。 是啊。 觀眾:所以你改變它 對於每一個環節。 但如果你只是想這樣做鏈接 本身,你只是做在ID 底部或東西嗎? JASON HIRSCHHORN:那麼大的問題。 正如你看到這裡,我改變了一些 適用於該CSS的一部分 一切是一個A.如果我想 只是做了鏈接在底部,我 會去我的CSS文件,並可能 做,就像你說的,散列 底部空間。 而這會給我 一切正如在底部。 或者我可以,或者,給它一個 唯一的ID,然後就做哈希連接。 並且,讓我 改變了這一點。 然而,僅僅少量發放的ID不管三七二十一 通常是一個壞 實踐中,由於這些 應該是唯一的。 而你越有那些,它 可以得到一個有點混亂。 是啊。 觀眾:你能不能給同 ID為多個業主? JASON HIRSCHHORN:從技術上講,是的。 什麼也沒有去阻止你,但你 不要你應該給它一個類。 好了,其他問題 關於HTML或CSS? 確定。 讓我們繼續前進到PHP。 哦,是的。 觀眾:這是什麼關於這些 網站,這意味著我們可以編輯 他們才刷新。 但是,一旦我們刷新它恢復 回到初始的HTML? JASON HIRSCHHORN:大問題 - 所以當我們加載了這個 網頁,它是HTML。 和它的的JavaScript。 它的PHP執行給我們什麼 類型的網站,我們看到的。 和它的創建一些HTML,一些 JavaScript和一些CSS。 那就是現在訪問 通過我們的計算機。 而這些文件的副本被保存 當地對我們的電腦, 暫時。 因此,我們可以編輯本地副本。 但當然,我們不是在編輯 服務器副本。 而當我們刷新頁面, 我們得到另一台服務器副本。 因此,我們看到的東西 回到原來的。 如果我們能夠從這裡,編輯 官方網站上,我們就會有很多 的問題。 觀眾:是的,所以我們可以看 寫該副本。 JASON HIRSCHHORN:對。 我們只是做局部的變化在這裡, 但同樣,探索非常有幫助, 通常情況下。 當我在寫我的最後的項目,為 例如,我想看看一些 網站上的東西看看 途中他們做到了。 我會去,並使用此窗格下來 在這裡,看看他們給了什麼是CSS 它或它們挑什麼顏色或如何 得到它,這樣,當你徘徊 過東西,名單下來 在一個不錯的級聯方式。 這是一個偉大的方式來檢查什麼其他 網站做的,從他們借錢。 讓我們進入到PHP。 PHP代表,在遞歸感, PHP超文本處理器。 和PHP,它會做 是執行代碼的服務器端。 因此,我們永遠不會看到PHP代碼。 然而,它確實很好玩呢 HTML和往往會產生 大量的HTML代碼。 但是當你將熟悉的問題 設置7,你的PHP代碼將執行, 生成一些HTML,而這正是 用戶將最終看到。 PHP是令人難以置信的類似C。 不過,也有一對夫婦的 差異,這些差異 重要的是要注意的。 一個區別是變量 在PHP中是鬆散類型。 沒有任何人有一種感覺, 是什麼意思? 觀眾:沒必要給自己投了。 像沒有必要在文字寫的。 JASON HIRSCHHORN:我不會用 鑄字,但肯定的,無需聲明 一個類型為特定的變量中。 而不是怎麼做,我們聲明一個變量? 觀眾:用一個美元符號。 JASON HIRSCHHORN:使用一個美元符號。 因此$ x是可變的。 1美元是一個變量。 $字符串是一個變量。 這些變量,X元可以 是一個整數。 然後,它可以是一個字符串。 然後,它可能是一個字符。 這其實並不重要。 另外,關於PHP的很酷的事情是, 比方說,$ x是字符串之一。 和$ y是字符之一。 您可以添加$ x和$ y和它會 給你2,你所期望的東西。 因此,有在PHP中操作。 因為它是鬆散類型的變量, 一些隱式轉換為你做 以及一些操作。 你可以在做的事情操作 的不同類型。 而在此之前,你經常會得到一個錯誤 C語言的說法,這不是類型 這應該去這裡。 這種類型的唯一的東西可以去這裡。 你不會得到那個類型 錯誤的,一般來說,在PHP。 所以這是一個很大的不同 - 我們如何處理變數。 第二個大的區別是, PHP代碼解釋。 WHERES,C代碼編譯。 那是什麼意思? 那麼,對於C代碼,你就跑 它通過一個編譯器。 你生成的二進制文件。 而且你跑了二進制文件。 你之前把所有的錯誤護理 您生成的二進制文件。 當然,也有可能是 分割故障,當你跑了 二進制文件。 但它不喜歡你忘了,包括 printf的定義,或 你沒有使用一個變量,只是 創建一個浪費的變量。 或者你沒有定義 函數原型。 所有你編譯之前發生。 它給了你所有的錯誤或壞的 的東西,它認為可能會發生。 然後,你有你的0和 你跑了1個文件。 PHP代碼並不喜歡的工作。 你會寫你的PHP代碼。 然後,你要 保存它,大概。 並至少在P-7集,你會 刷新您的網頁瀏覽器, 你會看到發生了什麼。 你會看到輸出 那PHP代碼。 您還可能看到,在頂部 您的頁面,一個錯誤。 因為你有一些 在你的PHP錯誤。 您可能仍然會看到其餘 網頁正在尋找的罰款。 但有一部分是錯誤的,並有 在那個地方出錯。 那是因為那部分 你的PHP代碼不起作用。 事實上,當你執行,當你 去像by.php。 它會通過你的PHP 一行行的文件並執行它 然後才是。 它不會編譯它提前 時間或編譯一個副本,然後給 該編譯副本給大家。 每一次,它要經過 一行行並執行它。 因此,一些線路可能工作和 輸出正確的東西。 與其他線路可能被打破 並輸出一個錯誤信息。 綜上所述,使用PHP調試時,我們已經給 你們幾個有用的東西 幫你調試,比如 轉儲功能。 但通常,你會 看到這些錯誤。 這就是你如何去 知道你做錯了什麼。 但你只會看到錯誤 一旦你真正運行的代碼。 PHP的另一個重要方面和 Web開發是GET的想法 與崗位。 誰能解釋一下什麼區別 之間的GET和POST? 沒有人 - 是。 觀眾:他們難道沒有一 讓用戶看到的數據, 其中一人不? JASON HIRSCHHORN:太好了。 是啊,你有什麼要補充的嗎? 觀眾:我瘦職位是 超全局變量。 JASON HIRSCHHORN:中那麼這兩個 變量是給你的。 這些僅僅是變量。 你知道他們是變量, 因為在這裡我 使用美元符號。 這些都是給定的變量 給你的PHP。 而當你的網頁之間移動, 要保存一些信息。 你可能想保存,如果 該用戶已登錄。 這不是保存在GET和POST。 這是保存在別的東西, 一個不同的變量。 任何人都知道這是什麼的保存變量 中,或者你用什麼變量 P-設為7,以確保 用戶登錄? $ _SESSION,這是完全正確的, 也許重要的是熟悉 這些東西的名字 你經常使用。 所以你使用會話變量來保存 從頁面信息頁面。 這是一個超級變數。 它的存在在每一頁上,也許像 全局變量,如果你要考慮 它這樣。 有一對夫婦的其他變量 允許您傳輸的信息 從頁面到頁面。 尤其是,那些我們將重點放在 是GET和POST變量。 在PHP中,它們看起來像 $ _GET和$ _POST。 和區別,因為馬庫斯指出 出來,他們兩個之間是, 在$ _GET信息 顯示的URL。 因此,如果我們往下看這裡, 我們看到了一個YouTube鏈接。 我們看到這個問號。 我們看到ν=,然後一些價值。 回到這一想法的關鍵值 對,v是關鍵。 而在這裡就是價值。 所以,如果我們要到這個頁面或者 編碼此頁面上,我們將有一個 變量$ _GET。 如果我們去了$ _GET開括號“V” 接近支架,非常類似於數組 符號,這是一個關聯數組 因為我們沒有使用索引。 被使用字符串作為鍵。 但非常類似的想法。 如果我們去了我們,將得到這個值。 在這個頁面,我們就能夠 使用此值。 如果我們實際上看,讓我們 去YouTube的頁面。 我們應該看什麼影片? 這其中,被人哈比人球迷? 觀眾:是的。 JASON HIRSCHHORN:所以我複製 他們分享網址和 將其粘貼在一個新窗口。 而現在,如果你在這裡,你會 請注意,再次 - 我要複製並粘貼到 gedit的,所以我們可以看到它做大。 你會發現,它有 這個問號。 問號將指定 在這之後一切都將是 保存在獲取變量。 然後,它具有V,這是第一 鍵,這第一個值。 符號是特殊的。 符號是在說,好吧,我們 完成了第一個值。 我們現在移動到另一個 鍵值對。 在這裡,關鍵是所謂的功能, 並且該值是youtu.be。 所以,如果我是一個編碼這個頁面, 有人去這個URL,我有 也許watch.php。 和我在編寫這個。 我可以使用$ _GET變量。 我將有一個v和 我想有一個功能。 如果我使用v鍵,我 會得到這個值。 如果我做了$ _GET支架“功能” 接近支架,我會得到這個值。 再次,它不一定 適用於 - 顯然,YouTube的鍵和值 並獲得信息並不適用於 本習題集7。 但有一些事情是我們 通過GET傳遞我們的習題集7。 當然,當你去一個網頁 或編寫自己的頁面上, $ _GET會派上用場 當你的編碼。 什麼是一個原因使用$ _GET然後, 如果它可以提供沒有隱私? 你看到所有這些信息 這是正在轉移。 這一切都顯示給用戶。 但是,什麼是一個原因,你可能 要保存的東西在$ _GET,如 反對的$ _POST? 為什麼你可能想要做的是什麼? 好的。 我在測驗1問你。 什麼是$ _GET親? 什麼是1親? 是啊 - 觀眾:它更容易 共享信息。 JASON HIRSCHHORN:我覺得 這是偉大的。 它更容易分享信息。 它更容易書籤。 現在,您可以收藏, YouTube.com /手錶?ν=的東西,去 該特定視頻。 如果YouTube的總是做POST請求 不同的頁面,每一個YouTube網址 將YouTube.com。 你可以不書籤單一的視頻。 因為如果你說的共享該鏈接 與別人,他們不 自動獲取您的帖子變量。 他們只是得到這個鏈接,並在 鏈接是對誰都一樣。 所以這是親。 它可以讓你這個書籤 信息或分享這些信息 或讓它一點點 更加人性化。 當然,沒有隱私, 所以我們這篇文章的變量。 和後信息不 顯示的URL。 這不是一個完全私有的。 但它是稍微更私人。 所以你會看到這個網址 到這裡,cs50.net。 不論你登錄到 網站,這將具有相同的 網址,cs50.net。 很顯然,事情是不同的,如果 你登錄到該網站。 你有,一,可能是 輸入您的PIN。 並且已確認 用服務器。 而且它可能保存 一些其他信息。 但是URL不會改變的。 所以是這樣的話,當 事情是由POST發送。 URL不會改變。 這個POST信息不 顯示的URL。 但是,一些國家已經變了,也許 有保存在一些信息 POST變量。 抱歉。在我走之前到SQL,任何 關於PHP,特別是問題 對事物的問題,我們沒有去 你已經找到或任何語法或 關於PHP的邏輯問題? 確定。 最終的語言,你會 在這個星期的互動是 結構化查詢語言SQL, 常常發音續集。 這允許您與互動 數據庫中的形式化方法。 它扮演了非常漂亮的PHP。 正如您將在習題集7所見,我們 給你一個叫做查詢功能。 它需要一個SQL字符串,並執行 對數據庫的查詢。 在過去的幾年中,你是不是 鑑於此功能。 您必須使用PHP函數來使 數據庫和支票,請在查詢 的錯誤,然後得到結果。 而實際上,這並不難, 因為再次,它起著 非常漂亮的PHP。 和PHP提供了大量的功能 與SQL數據庫進行交互。 所以很多時候,兩者的 這些一起去。 當然,你可以用互動 與任何SQL數據庫 其它語言的數目。 但PHP是一個偉大的選擇。 數據庫 - 我們就去了這個很快,因為 這是我們要去一個時髦詞語 開始使用常 - 是表的集合。 因此,我們可以認為它 為Excel文件。 一個Excel文件中有多個選項卡 在屏幕的底部。 每個選項卡,我們現在會打電話給一個表,其中 一個表是行的集合。 什麼是行? 嗯,一排是一樣的東西 在Excel文件中。 這只是對每個特定的值 特定領域或每個給定列。 這就像在一個表項。 這是一個學生,誰擁有一個ID,一個 特定的ID,和一個特定的名稱和 具體的房子。 因此,一個數據庫是一個集合 表。 而表本身是一個 行或記錄的數目。 還有,在各 表的某些字段。 並指定每個記錄是什麼 將有,字段有時也被稱為 列,但通常稱為字段。 在這個非常簡單的表,我有三個 域,一個ID字段,用戶名 字段,和一個散列字段。 我有三行。 眼下,它們是空的。 他們可能不會是空的 如果這是我的真正的數據庫。 所以,如果你已經使用Excel中,類似的想法 什麼你在Excel中做,雖然, 很明顯,現在我們將能夠 做強大得多的事情上 所存儲的信息 在我們的數據庫。 你將要創建自己一個 數據庫習題集7。 但你會創建多個 在數據庫中的表。 您將創建一個數據庫 或為用戶的表。 你也可以創建一個表 大概股票交易,以保持 跟踪它們,因為你需要 實現歷史記錄功能。 這兩個表將有 不同的領域。 例如,在用戶現場,你 可能希望自己的用戶名和 ID和他們的密碼的哈希值。 在庫存表跟踪 歷史或歷史表中,您 可能不需要用戶名 和散列和ID。 你可能只需要其中的一個 值是唯一的,聯想到 它與給定的用戶。 但是,你要存儲其他 之類的東西,什麼時候 在事務中進行的。 在買入或賣出什麼股票? 股票多少股 是買還是賣? 什麼是價格在哪個 股票是買還是賣? 所以,再一次,你要進行交互 一個數據庫,這是 將有多個表。 每個表都將有 它自己的一套字段。 然而,有可能會出現類似的 字段中的每個表中,該 它們涉及到彼此。 通常,這是一個ID字段。 因為如果每個用戶都有一個唯一的ID 和你的ID與每一個相關聯 交易用戶發出或 所有用戶的歷史。 和你有用戶的ID。 您可以獲取信息 從任一台。 你可以得到他們的用戶名,你 可以得到所有他們的交易。 關於數據庫的任何問題, 或具體問題? 其實,讓我們認為。 我們會在那裡的兩個方面。 因此,有四個操作 您將使用的數據庫 習題集7和可能 永遠不會使用。 你想要做的第一件事是插入 一個新的記錄到一個​​表或一個 新行插入表中。 這是通用的功能, 通用的形式,SQL查詢。 INSERT INTO表,不管列 要插入,然後 那你會想要的值 投入這些列或字段。 如果你有在多表 數據庫或多個數據庫,您 可能還需要指定數據庫 和您想要的表 把事情落實。 但很簡單,如果你要插入 到的東西,你說,這裡有 我要插入到字段。 和這裡的值。 在一些表,也和這個用戶的 表是一個很好的例子。 大概在這個用戶的表和 大概在P-設置你的用戶的表 7,不只是一個用戶名的值。 這裡不只是一個現金價值, 或現場,而。 此外,還有一個ID字段。 我不打算插入ID字段。 那將給予 我自動,當一個 新記錄插入。 因此,有一些領域,你 可以設置為自動的。 也許你想給每個用戶 10,000元現金蝙蝠。 所以我不需要插入 多種現金此處。 我只需要插入的用戶名。 然後,現金字段將 預填充的,而ID字段將 預先填入。 所以通常情況下,我們不會插入 事到每一個領域,因為 與其他字段中會預先填入。 因為這是我們如何 建立該表。 你要去的第二件事 想要做的是刪除一條記錄。 刪除的東西是很簡單的。 你給你想要的表 要刪除的東西。 和你說好,我想刪除 記錄有米洛的用戶名。 或者我要刪除所有記錄的 有米洛的用戶名,或者是一個 交易從用戶ID號2。 對這些問題的任何 兩種類型的查詢? 觀眾:[聽不清]。 JASON HIRSCHHORN:是的。 所以我打算使用行和記錄 互換和一些 與列和字段。 但有一排是一個記錄。 一列是一個字段,將 回到這個表。 確定。 接下來的事情,你很可能 要做的是得到一些 從表中的信息。 這是一個選擇查詢。 再次,什麼表 我會從選擇? 而我要選擇什麼樣的列,或 我要選擇什麼樣的價值和 從哪一行? 因此,選擇一個特定的一點。 我說好,我想這個表。 然後我希望列名,並 我希望它從ID為2行。 這是做一個選擇的一種方式。 或者,我可以說,給我的每一個 單一的用戶名。 或者,我可以說,給我一個完整的 從這個表行,其中 用戶名是1。 因此,有幾種不同的方法來 做選擇查詢,這取決於如何 你要多的信息, 你永遠可以選擇一切 從具體的表,然後循環 通過它,挑選出 你想要的東西。 但是要記住,如果你選擇 很多事情從一個表和你 有一個非常大的表中,將採取 有一段時間,所以最好只選擇 東西,你要去 使用結束了。 此外,隨著選擇,並與所有這些 其他的SQL命令,以及,我 給你最基本的版本。 但是說,我選擇的用戶,我想 打印出來的字母順序, 我可以選擇所有用戶,然後排序 按字母順序在我的代碼。 或者是有辦法寫選擇 查詢時,選擇的東西在 按字母順序排列的方式,根據關閉的 特定的列,以升序或 降。 所以請記住,有很多你 想要做也許可以在做 通過一個附加的查詢 屬性。 所以,不要仰視這些查詢或在線 其他的事情你可以用這些做 查詢將其展開。 最後,過去的事情你想做的事 沒有東西插入或刪除 東西,而是 更新的東西。 以及與該更新完成 查詢,並再次,是什麼表。 和我想要什麼樣的變化使? 以及哪一行或記錄做 我要做出的改變? 對SQL有問題嗎? 確定。 因此,我們有大約15分鐘。 這是最後一張幻燈片我有。 並希望,這最後一張幻燈片是一個 良好的塞蓋成問題集, 因為理解,我們要 插入記錄,刪除,選擇 他們,並更新他們會幫助我們 明白了較大的邏輯和流程 的習題集7。 所以我知道所有的答案 對這些問題的。 我不會告訴你 所有的答案。 但是,如果別人想 提出了一個問題,到組或 回答這些問題之一,我們可以 使用它作為一個跳點 說說問題集。 或者,如果某人有一個更通用的 關問題的問題集,感覺 免費問那。 我們可以從這裡開始。 請記住,你是沉默 是傷害大家。 是啊。 觀眾:所以是傳遞的唯一途徑 變量,並從不同的網頁 頁,或最方便的 方式,使用POST或GET? JASON HIRSCHHORN:所以,是的,那就是 最便捷的方式說 - 當 有人填表 - 得到另一個網絡信息 頁面,使用GET或POST。 因為框架我們使用 在這個問題集,你會發現 是,很多時候,我們 渲染另一個頁面。 我們或者我們渲染另一個文件,不 一定另一頁。 所以我們在傳遞一個變量。 然後,它呈現一個 HTML頁面時,使用 從該變量的信息。 這在技術上並不傳遞 之間的信息 不同的網頁。 這是傳遞信息 不同的文件之間。 因此,我們可以使用任何 變量來做到這一點。 但是,是的,如果我們想通過 從一個特定的頁面信息 另一頁,GET和POST會 要做到這一點的方法。 任何其他問題 問題設置? 確定。 讓我們通過,那麼,具體的 問題的一部分設置。 你將需要在一個點上, 顯示某人的組合上 在屏幕上。 這是什麼意思,當我說組合, 在這個問題的上下文中設置? 觀眾:這就像股票,他們 有他們自己怎麼樣,多少股, 價格,多少 錢,他們已經離開。 JASON HIRSCHHORN:聽起來不錯。 所以,我想顯示所有的股票 他們擁有每隻股票公司 股,大概是多少那 價值,然後一個單獨的變量, 多少錢他們自己。 所以說,我想描述。 讓我們開始談論我怎麼能 去這樣做,我有什麼表 將需要有 能夠做到這一點。 是啊 - 觀眾:好用戶,然後,我猜 你可以做一個所謂的表 股份或類似的東西,這 會是如何,他們已經買了很多。 JASON HIRSCHHORN:確定。 所以我會需要一個稱為表 用戶,它記錄的 用戶名,據推測,可能是一些標識, 可能是一個單獨的密碼。 什麼是別的東西,你 剛才說的關聯? 除了邁克爾,什麼是人 這與相關的其他東西 每一個用戶,他們獨有的? 觀眾:ID。 JASON HIRSCHHORN:ID - 什麼是一件事,我們是 可能會想 此頁面上顯示? 觀眾:他們的名字。 JASON HIRSCHHORN:他們的名字 - 有什麼 另一件事與此相關的 特別是設置的問題? 觀眾:什麼他們擁有的股票 - JASON HIRSCHHORN:有將 有很多他們自己的什麼股票。 什麼是一個特定的值,雖然, 他們將不得不 與他們有聯繫? 他們怎樣買 並出售他們的股票? 觀眾:現金。 JASON HIRSCHHORN:他們是 將有現金。 因此,每個用戶將不得不 一個值,以換取現金。 而這將是 對於每個用戶唯一。 因此在用戶的表,它使 感投入現金。 你可以,當然,創建另一個 表具有用戶ID和其 的現金價值。 但它沒有任何意義。 這是有道理的只是把 所有這一切在一個表中。 所以,我們將有一個表 與該信息。 然後,有什麼其他的表 我們會得到什麼? 你說,一個種群的表。 什麼是我們投入 該股票的表? 任何人,想法 - 觀眾:該公司。 JASON HIRSCHHORN:我們要去 投入的名字 公司,所以AAPL蘋果。 是啊。 觀眾:有多少股, 他們有多少的價值。 JASON HIRSCHHORN:有多少股, 他們有多少是值得 - 有什麼別的東西,我們 需要在該表? 觀眾:一個用戶ID來索引它。 JASON HIRSCHHORN:一個用戶名。 因此,在該表中,我們將 可能有 - 比方說,如果是有人誰擁有 三只股票,三排,每 該用戶ID或個人用戶 ID,但不同的公司名稱,一個 不同數量的股份大概, 並為每個不同的價格值 這些股票的。 再次,什麼我現在說的是不是 一定的執行情況, 因為你知道有一些 有效的方法來實現它。 但是,這是一個良好的開端。 確定。 因此,這些都是這兩個表我們。 現在,我們要顯示此頁面。 什麼是查詢中的第一種類型 我們需要做。 在每個頁面上,假定是一個用戶是 登錄後,我們有自己的用戶ID。 那麼,什麼是第一類 查詢我們需要做什麼呢? 是啊。 觀眾:他們的用戶ID。 JASON HIRSCHHORN:我們有自己的用戶ID, 當我們開始代碼的 一開始我們的頁面。 那麼什麼是查詢我們的第一種類型 需要使給定一個用戶的ID? 我們過了四種類型。 這裡只有四個可能的答案。 觀眾:是選擇一個記錄。 JASON HIRSCHHORN:A選擇 - 我們希望從用戶的選擇 表就搞定了,讓我們說, 其數額的現金。 我們可以打印的現金金額 在屏幕的頂部。 確定。 什麼是下一個類 查詢我們想幹什麼? 我們有一些其他的東西 我們需要顯示。 那些被保存在另一個表中。 那麼我們如何得到呢? 觀眾:你選擇它們。 JASON HIRSCHHORN:A選擇 - 再次, 只有四個選項。 選擇可能的聲音 像那個合適的人。 因此,我們需要做的另一個選擇查詢, 再次使用該用戶ID。 而現在,我們要返回的不只是一個 行,BU符合我們的所有行 標準,其中用戶ID等於1。 然後我們可以去讓一個循環只 打印所有那些在屏幕上, 也許打印出該公司從 每個那些在屏幕上。 太好了,這聽起來像這 顯示組合,多不了多少 較複雜。 OK,然後用戶決定他們 有足夠的錢留下來。 他們想買一些 一隻股票的股票。 比方說,他們已經擁有 這家公司的股票了。 於是他們去你的購買頁面。 他們輸入公司的名稱。 這是該查詢,在輸入後的 公司的名字,你需要 執行下一個? 是啊。 觀眾:更新。 JASON HIRSCHHORN:更新 - 什麼 表你要更新? 觀眾:他們的表,根據 在他們的身份證號碼? JASON HIRSCHHORN:所以更新 沒有用戶的表 - 所以更新庫存表,其中 用戶ID不能只匹配,但 股票名稱也匹配。 你會得到一定的價值。 然後,你要取該值 並添加然而許多股票,他們 想買它。 所以,你不希望盲目 覆蓋該值。 但是你可以,​​事實上,採取這種初始 重視和剛剛更新。 你可以做一個加等於, 而不僅僅是一個等號。 是什麼東西,但 - 如果我們 想到這一點,我們要 盡可能強大 - 我們應該做的 我們運行之前更新查詢? 他們想要買五十年後,蘋果的。 蘋果的每份額為200元。 觀眾:我們首先應該檢查的錢。 JASON HIRSCHHORN:我們應該 首先檢查的錢。 我們應該確保他們 有足夠的錢。 我們可以執行什麼樣的查詢 確保他們有足夠的錢? 觀眾:另一種選擇。 JASON HIRSCHHORN:A選擇 - 我們根據他們的用戶ID進行選擇, 拿到現金的價值。 做一些快速的數學運算。 如果傳遞鼓起, 他們有足夠的現金。 然後我們可以運行我們的更新。 或者,也許,如果不是,我們通過即可。 我們給他們一個警告。 確定。 說他們沒有一家公司。 他們買一個新的公司。 他們購買微軟。 我們想要什麼樣的查詢做, 如果他們想購買微軟? 他們不擁有任何微軟。 沒有馬努,任何人,任何人 除了馬庫斯? 卡洛斯 - 觀眾:A選擇,以確保 他們有足夠的錢。 JASON HIRSCHHORN:聽起來不錯。 觀眾:然後你插入 在[聽不清]。 JASON HIRSCHHORN:沒錯,我們是 將要插入 進入股市的表。 我們要去想插入。 我們可以將其用戶ID,名字 的公司,以及有多少股 他們想買。 什麼是一些其他操作的 為你的網頁或功能 將不得不在P-設置來實現 7,我們應該走了過來? 觀眾:其實,我種得 關於這一個問題。 之前您顯示組合,應 您檢查雅虎的網站上 確定股票的價格 有沒有改變? JASON HIRSCHHORN:這是聲音 是個好主意。 那麼,什麼馬庫斯說的是,OK,股票 價格是不斷變化的。 在自己擁有的表中的股票,我們的 表稱為股票,我們可以拯救 股票的價格,他們買了它在。 但這似乎不是那麼強勁, 因為股票的價格 不斷改變的。 所以,事實上,你可能不需要 保存股票的價格。 但每次你施展 投資組合,你刷新或更新 價的股票。 如果你有 - 你已經。 我知道你一直都在看的 習題回來了。 你已經意識到,我們已經寫了 一些代碼給你,讓你 獲得股票的價格, 給定一個公司的名字。 所以,是的,這聽起來可能 更強大一點。 但該表並不一定需要 保存股票的價格。 確定。 什麼是一些其他的功能你 需要實現這個星期, 我們可以談? 我想談談他們。 你想談什麼? 這也可能是在這個規範。 我只是向下滾動至底部 規範和問我的第一個字 你看,沒有任何意義。 另外一個功能 - 讓我們來談談之一。 我們會從那裡開始。 觀眾:記錄的歷史。 JASON HIRSCHHORN:錄音 歷史上,偉大的。 所以你將不得不跟踪 交易的歷史。 所以,你要跟踪每一個的 一次,他們買進或賣出股票。 我買我的股票。 我們剛才說了,它很可能是有道理的 包括一個選擇,讓他們 金額現金回來看看。 它可能是聰明的,然後到包括 插入或更新,這取決於 不管他們是否擁有該股票。 如果我們也想跟踪 一個歷史,我們該怎麼辦呢? 這是否在股票表走? 觀眾:號 JASON HIRSCHHORN:不,它可能 不用在不同的表。 因為說你買10 蘋果公司的股票。 然後你再買10股。 你想拖獨立的記錄。 這是兩個獨立的交易。 因此,我們有另一個表中, 一個歷史表。 所以,再一次,我們買的。 我們執行一個選擇,然後 插入或更新。 我們接下來做什麼? 什麼是我們執行下一個查詢 當我們買東西? 我們想跟踪的歷史。 是啊。 觀眾:你想跟踪 失敗的交易了。 JASON HIRSCHHORN:嗯,以前我們 說什麼類型的事務, 什麼我們要 - 什麼類型的查詢,卡洛斯,會 讓我們來跟踪 事情有什麼看法? 你有四個猜測。 哪一個你覺得呢? 觀眾:更新。 JASON HIRSCHHORN:不更新。 什麼是你的第二個猜測? 對象:選擇。 JASON HIRSCHHORN:如果你想保持 軌道的東西,你可能想 到它的地方寫下來 或將其保存供以後使用。 所以,如果不更新,那麼 - 觀眾:插入它。 JASON HIRSCHHORN:插入,我們走吧。 是的,所以您選擇的金額 現金他們,聲音很大。 他們沒有足夠的現金。 該交易是行不通的。 不,你不需要保持跟踪 如果它不工作的事務。 或者你可以,如果你想 給他們一個困難時期。 但你不必。 然後,您插入或更新 在他們的庫存表。 而現在,你有你的其他表。 你有你的歷史表或 無論你怎麼稱呼它。 並在該表中,你會 插入一個新行。 這可能將 有用戶的ID。 它可能將不得不 股票的名稱。 它可能將不得不 一時間,他們做到了。 在這種情況下,你就可能 要插入的價格。 因為對於一個歷史,你不 關心目前的價格是什麼。 你關心的價格是什麼時候 他們買或賣的東西。 所以它聽起來像,落實購買 充分涉及多個不同 SQL查詢,但說實話,不 這麼多代碼的整體。 確定。 而這需要歷史的照顧。 比方說,我們要 顯示我們的歷史。 我們談到展示 我們的產品組合。 我們將如何展示我們的歷史? 觀眾:大概時間順序。 JASON HIRSCHHORN:據推測 按時間順序 - 你覺得什麼疑問我們會使用? 聽眾:一個選擇。 JASON HIRSCHHORN:一個選擇 - 選擇也許所有從該表中的行 相匹配的用戶ID,然後 顯示它們按時間順序, 聽起來不錯。 我們需要編寫代碼來 通過列表進行排序? 觀眾:沒有,因為你告訴 我們有一個上升 和降序的事情。 JASON HIRSCHHORN:事? 觀眾:是啊。 JASON HIRSCHHORN:是啊。 好了,不要在代碼中轉向我, 手動排序,通過你的查詢, 對它們進行排序。 已經給該代碼。 你可以寫一個Select查詢 進行排序的東西。 他們事先進行排序和 然後打印出來。 它使這麼多情理之中的事 這種方式,比其他方式。 是。 觀眾:我們是否需要 事先對它們進行排序? 這是否意味著你排序 他們在數據庫中? JASON HIRSCHHORN:SELECT查詢 他們返回到您排序。 這樣做,而不是僅僅讓他們 返回到您在隨機順序 然後自己對它們進行排序。 是啊。 觀眾:有沒有一種方法來保持它 分類在數據庫本身,使 不必進行排序 它的每一次你 - 觀眾:你能否將它插入排序的? JASON HIRSCHHORN:問題 - 這很重要的事情 分類在數據庫中? 觀眾:號 JASON HIRSCHHORN:嗯, 它們進行排序。 他們是按時間順序排序。 但是,讓我們假定事物進行排序 按時間順序,從上到下。 我們有一個谷歌的形式。 每當有人回應我們的谷歌 形成的,它只是被放在 該表的底部。 這有什麼關係,事情 排序不按時間順序? 觀眾:如果不是按時間順序, 不要你有充分的時間來排序呢 你把信息了。 但是,如果它已經排序,可以嗎 不必做額外的 函數調用? JASON HIRSCHHORN:所以這是 實際上是一個很好的點。 我們作為程序員, 它可能無關緊要。 而我們可能希望找到一個數據庫 不理清頭緒 按時間順序。 或者設置我們的數據庫,所以它保持 東西整理按用戶ID。 所以這種方式,比方說,我們有 1,000用戶ID。 或Facebook,我們擁有數百萬 的用戶ID。 我們不希望我們的表只是 隨機或我們的數據庫是隨機的。 這將是很好,如果所有的 用戶ID進行排序。 這樣的話,我們可以運行的二進制搜索 在我們的表,然後只要找到 具體塊。 所以,是的,這取決於 - 如果我們擴大規模, 我們可能希望找到一個數據庫 即把每一件事情整理在不同的 方式,使這些查詢 將需要更少的時間。 而我們沒有經過我們 在每一個單列整個數據庫 給定表。 但水平在我們正在努力,我們 不必擔心保持 東西整理。 我們可以假設,所花費的時間 該查詢運行將是 可以忽略不計,因為什麼 我們正在處理。 但是,是的,偉大的想法 - 因為我們擴大規模, 它可能是有意義的設計我們 數據庫在一個有點不同的方式。 最後一個數據​​庫設計的東西我想 提為好,因為你會 進行分級,或得分相當,上 數據庫的設計。 我們談到了這一點。 現金是唯一的每個用戶。 所以,你有一個表叫了現金 有他們的用戶ID和金額 現金,然後一個名為表 用戶有自己的用戶 ID和他們的用戶名。 這些表映射到每個 其它1至1。 它很可能是有道理的, 他們是一個表。 因此,讓我們假設你有一個用戶 表跟踪 用戶名和現金。 您現在有,有一個表 股票的個人擁有。 和一個人可能擁有 以上的股票了。 所以,這些不映射到 相互一至1。 這是沒有意義的有一個巨大的 表中有30個的記錄 所有重複的用戶名,即所有 重複輸入密碼,所有的 重複了一些現金。 但每個人都有可能是不同的股票 名稱或不同的股票價格。 這是沒有意義的有 許多大型記錄。 是聰明的,當你創建這些有關 數據庫,所以,你是不是在做 一些愚蠢的那樣,重複 很多不必要的信息。 確定。 我們有兩分鐘時間。 外面的人很高興能夠加入 我們甚至可能,大概, 開始他們自己的類。 沒有任何人有任何疑問, 之前,我們完成了? OK,這的確是一個旋風 通過一切。 我很抱歉,這不得不如此快 而且,我們不能因為動手 這個星期我會一直 喜歡過。 但如果你有任何問題, 我們走過去任何事或任何東西 這個問題的設置 - 假設你已經讀過它,並把 在一個善意的努力 - 請隨時給我發電子郵件或與我聯繫。 我很樂意工作,通過 與您或回答您的任何代碼 問題,你有。 請記住,本週,很多 你的時間會花在學習 新的語法,並試圖了解 如何編寫SQL查詢或PHP 功能或處理 一個MVC框架。 很多這一周可能是你的時間 不會試圖找出該 瘋狂的邏輯,我們是 要求你這樣做。 很多它我們剛剛走過去的是 相對簡單。 因此,這並不意味著等待 直到最後一分鐘。 但它確實意味著調整你如何做你的 相應的工作,以確保 你的理解和 學習的語法。 所以,你沒有,突然,不知 你想到底該怎麼做, 但不知道如何 正是寫。 好吧,我會看到你下週。