[音樂播放] 道格·勞埃德:在我們的視頻 關於Web開發的話題, 我們已經提到的概念 數據庫幾次,對不對? 所以數據庫你 可能是熟悉的 說使用Microsoft Excel 或谷歌電子表格。 它實際上只是一個有組織的 設置表,行和列。 而數據庫是哪裡 我們的網站商店 這一點很重要信息 為我們的網站能正常工作。 此外,一個非常常見的例子在這裡 在存儲用戶名和密碼 在數據庫中,使得當 用戶登錄到我們的網站, 該數據庫可被查詢,看 如果該用戶在數據庫中存在。 如果是這樣,檢查 他們的密碼是正確的。 而如果他們的密碼是正確的, 那麼,我們可以給他們任何網頁 他們請求。 所以,你很可能再次熟悉 這個想法從Excel或谷歌 電子表格。 我們有數據庫, 表,行和列。 這就是真正的排序 基本集 這裡分層分解。 因此,這裡的Excel電子表格。 如果你曾經開了這 或其他類似的程序 你知道,這些這裡有 rows-- 1,2,3,4,5,6,7。 這些都是列。 也許到這裡,雖然你可能 不使用此功能非常much-- 我會放大in--我們 這一想法的片材。 因此,也許這些表,如果 我交替往復, 不同的表 存在於我的數據庫。 如果我們繼續這個例子所有 順便說一下,這個數據庫的名稱 是書1。 也許我有第二冊和第三冊。 所以,每一個Excel文件是一個 數據庫中,每個片是一個表, 每個表格裡面我有 這一想法的行和列。 那麼,如何使用這個數據庫的工作? 我如何獲得它的信息? 那麼有一個叫做語言SQL-- 我通常只是打電話Sequel-- 它代表的是 結構化查詢語言。 而且它是一種編程語言, 但它是一個相當有限編程 語言。 這不是很喜歡別人 我們已經合作過。 但這樣做的目的 程序設計語言 是查詢數據庫,以 問一個數據庫的信息​​, 找到一個信息 數據庫,等等。 我們在CS50--這是一個非常 共同的平台,這就是所謂的MySQL。 這就是我們在使用過程中使用的。 這是一個開放源碼 平台建立 所謂關係型數據庫 - 一個數據庫,有效。 我們並不需要得到 太多細節 對什麼是關係數據庫。 但是,SQL語言 非常善於工作 與MySQL和其它類似 樣式的關係數據庫。 而很多的安裝 MySQL的來的東西 所謂的phpMyAdmin,這 是一個圖形用戶 interface--一個GUI--的 使得它多一點 用戶友好的執行 數據庫查詢, 因為數據庫不僅用於 由高級程​​序員,對嗎? 有時有 這些小企業, 他們無法承受 聘請程序員的團隊, 但他們仍然需要存儲 在數據庫中的信息。 類似的phpMyAdmin 使得它很容易為別人 誰之前從未編程 拿起和熟悉如何 與數據庫一起工作。 問題是,phpMyAdmin的,而 這是一個奇妙的工具,學習 有關數據庫,它是手動的。 你將不得不登錄 它與執行命令和類型 事情手動研究。 而且,因為我們知道我們的 例如PHP的Web編程, 有做手工 在我們的網站上的東西, 如果我們想要一個充滿活力,積極響應 網站,也許不是最好的方法。 我們希望找到一種方法, 也許是自動完成這一莫名其妙。 和SQL將使我們能夠做到這一點。 所以,當我們要 開始使用SQL工作, 我們首先需要有一個 數據庫一起工作。 創建一個數據庫 一些你可能 會做的phpMyAdmin的,因為 你只需要做一次, 和語法這樣做 很多更簡單。 這是一個更容易做到這一點 在圖形用戶界面 不是打字它作為一個命令。 該命令可能會變得有些繁瑣。 同樣,在創建一個表可以 得到相當有點麻煩,以及。 所以像創建數據庫 並創建一個表,你 大概只打算做once-- 每一次表,每一次數據庫 - 它是確定做,在 圖形界面。 在過程中 創建一個表,你會 還必須指定所有的 列,就可以在該表中。 什麼樣的信息做 要存儲在表中? 也許用戶的姓名和出生日期, 口令,用戶ID號,也許 城市和國家,對不對? 而對於每一次我們要添加一個用戶 到數據庫中,我們希望得到所有六個 的這些信息。 同時,我們也通過添加 行到表。 因此,我們首先創建一個數據庫, 然後我們創建一個表。 作為創建的一部分 一個表中,我們被要求 指定每列 我們希望在此表中。 然後,當我們開始增加 信息到數據庫 和查詢數據庫的更多 generally--不僅僅是增加, 但一切我們 do--我們會處理 與行的表,這是一個 從整組用戶的信息。 所以,每一個SQL列能夠 保持一個特定數據類型的數據。 因此,我們的排序消除了這種 在PHP中的數據類型的想法, 但他們回到這裡SQL。 而且有很多的數據類型。 這裡的只有20人,但 它甚至不是所有的人。 因此,我們有一些理念,如INTs-- Integers--我們大概知道 該列可以容納整數。 而有變化thereon-- SMALLINT,TINYINT,MEDIUMINT,BIGINT。 也許我們並不總是需要四個叮咬。 也許我們需要8個字節,所以我們 可以使用整數這些變化 要多一點空間,高效。 我們可以做的十進制數,我們 可以做浮點數。 這是非常相似的。 有一定的差異, 如果你願意 想查找 SQL排序指導,你 可以看到輕微 區別是它們之間。 也許我們要存儲 關於日期和時間信息。 也許我們跟踪 當用戶加入了我們的網站, 所以,也許我們要 有一列的 日期時間或時間戳 表示當用戶實際上 報了名。 我們可以做的幾何形狀和線串。 這實際上是很酷。 我們可以繪製出 使用地理區域 GIS坐標繪製出的區域。 所以實際上可以存儲排序 在一個SQL列信息。 文本是文本的只是巨大的斑點,也許。 枚舉是一種有趣的。 他們實際上存在於C.我們不 談論他們,因為他們不 非常常用,至少CS50。 但它是一個枚舉數據類型, 能夠保持限制值。 一個真正很好的例子是 創建一個枚舉,其中七 可能的值是星期日,星期一, 週二,週三,週四,週五, 週六,對不對? 對這些數據類型的天 週不存在, 但我們可以創建一個 枚舉數據類型, 這列永遠只能容納 其中的一個七個可能的值。 我們列舉所有 的可能值。 然後我們有CHAR和VARCHAR, 我已經上色這些綠色 因為我們實際上 要採取第二 談論的區別 這兩件事情之間。 所以CHAR,不像C,其中 CHAR是單個字符, SQL中的CHAR指 一個固定長度的字符串。 而當我們創建這個 專欄中,我們實際上 可以指定字符串的長度。 所以在這個例子中, 我們可以說CHAR(10)。 這意味著,每 該列的元件 將包括10字節的信息。 沒有更多,不會少。 因此,如果我們試圖把一個15 位或15字符元素 或值此列, 我們只拿到了前10。 如果我們把在兩 字符長的值, 我們將有兩個 字符,然後8空叮咬。 我們永遠不會比這更有效。 一個varchar是一種像 我們一串概念 我們已經很熟悉 從C或從PHP。 這是一個可變長度的字符串。 當你創建 這個專欄中,你只要 指定的最大可能長度。 因此,也許99或通常255。 這將是最大長度。 所以,如果我們存儲 15文字串, 我們將使用15個字節,也許16 字節的空終止。 如果我們存儲 三個字符的字符串, 我們將使用三個或四個字節。 但是,我們不會使用完整的99。 那麼,為什麼我們兼得? 那麼,如果我們需要弄清楚如何 長的東西是一個VARCHAR, 我們有一種迭代的 通過它就像我們用C做 並找出它停止。 而如果我們知道這一切 在此列是10個字節​​,也許 我們知道的信息,我們可以跳 10字節,10字節,10字節,10字節, 始終找不到了 開頭的字符串。 因此,我們可能有一些 浪費的空間用CHAR, 但也許有一個貿易 關閉有更好的速度 在導航數據庫。 但也許我們想要的 VARCHAR類型的靈活性 而不是having--如果我們的CHAR 是255的,但我們的大多數用戶 只輸入三個或四個字節 的信息價值或三個或四個 字符的信息價值。 但是,一些用戶使用 整個255,也許 VARCHAR會比較合適那裡。 這有點交易的關閉, 一般為了CS50的, 你不必太擔心 無論您使用的是CHAR或VARCHAR。 但在現實世界中,這些東西 做的事,因為所有這些列 佔用實際的物理空間。 和物理空間,在 現實世界中,是有溢價。 所以有其他考慮 你建立一個表時, 是選擇一列是 什麼叫做一個主鍵。 和主鍵是一列 其中,每一個值是唯一的。 這意味著,你可以很容易地 挑選出的單行只是看 在該行的主鍵。 因此,例如,你 通常,與用戶, 不想讓兩個用戶誰 具有相同的用戶ID號。 所以,也許你有 大量的信息, 也許兩個用戶 具有相同的name-- 你有約翰·史密斯和約翰·史密斯。 這不一定是一個問題, 因為有多人 在名為約翰·史密斯的世界。 但是,我們只有一個用戶ID號 10,一個用戶ID號11,12,13。 我們沒有兩個用戶 用相同的號碼, 所以也許用戶ID號 將是一個好主鍵。 我們沒有任何重複, 我們現在可以唯一地 只是識別每一行 通過查看該列。 選擇主鍵實際上可以 進行後續表操作 輕鬆很多,因為你可以利用 一個事實,即某些行會 是唯一的,或者某些列 你的數據庫或表 將是唯一的挑 出特定的行。 你也可以有一個聯合主 密鑰,你會發現機會 使用,這僅僅是一個 兩列的組合,其 保證是唯一的。 因此,也許你有一個 列的AS和B, 一列這是一個,兩個, 三,但你永遠只 有一個單一的A 1,單 A2,等等等等。 但是,你可能有一個B2,一 C 2,或A1,A2,A3,A4。 所以,你可能有多個如,多 燒烤,多的,多三三兩兩, 但你永遠只能有一個 單A1,B2,C3等。 所以,正如我所說的,SQL是一種 編程語言, 但它有一個相當有限的詞彙。 這是不是很廣闊的 C和PHP等語言 我們在談的過程中。 它是更詳細的一 語言比我們 要在此談談 視頻,因為在這個視頻 我們要談 四則運算我們 可以對表執行。 還有比這更多。 我們可以做的比這更多, 但我們的目的, 我們通常將要使用 短短四年operations--插入, 選擇,更新和刪除。 你大概可以直觀地猜測 什麼所有這四個事情要做。 但是,我們將進入一個位 細節上的每一個。 所以為便於這 視頻,讓我們假設 我們有以下兩種 表在單個數據庫中。 我們有有一個表稱為用戶 4 columns-- ID號,用戶名, 密碼和全名。 我們有一個第二 表在同一數據庫中 叫媽媽,只是存儲信息 關於用戶名和母親。 因此,對於所有的實施例 在這段視頻中,我們將 使用此數據庫並 後續更新它。 因此,讓我們說,我們要 信息添加到表中。 這就是插入操作做什麼。 在解釋所有 這些命令,我​​要去 給你一個總體框架來使用。 因為基本上,查詢 打算看非常相似, 我們只是要改變 略微不同的信息 做不同的事情與表。 所以對於INSERT,骨架 看起來有點像這樣。 我們要插入到 一個特定的表。 然後,我們有一個開放的括號 和列的列表 我們希望把值放入。 關閉括號中, 下面的值,然後 再次,我們列出的值 我們希望把在表中。 這所以一個例子 將是如下。 我想插入到表 用戶以下columns-- 用戶名,密碼和全名。 因此,一個新行,其中我把 在這三列,我們很 打算把在值 紐曼,USMAIL,和紐曼。 因此,在這種情況下,我 把小寫紐曼 入用戶名欄,密碼 USMAIL,並全稱資本ñ 紐曼進入全名列。 因此,這裡就是數據庫 看起來像以前一樣。 下面是用戶表上 頂級前看著我們這樣做等。 當我們執行這個 查詢,我們得到這個。 我們增加了一個新行到表中。 但請注意這樣一件事 我沒有具體說明, 但不知何故,我已經有了一個值 對,這就是這12個就在這裡。 我並沒有說我想 把ID號在那裡。 我希望把用戶名, 密碼,全稱。 而我做了,這很好。 但我也得到了這個12。 為什麼我得到這12? 嗯,事實證明, 當你定義 這將是一列你 主鍵,通常是, 就像我說的,一個ID號。 這並不一定總是 將是一個ID號碼, 但它通常是一個好主意 是某種整數值。 你必須在phpMyAdmin的選擇 你創建數據庫時 或者你的表設置 列自動遞增。 這是一個非常好的主意時, 你有一個主鍵的工作, 因為你想每個值 該列中是唯一的。 如果你忘記指定 它為一個以上的人, 你現在有一個情況 該列不再是唯一的。 你有兩個空格,這樣你就可以沒有 較長的唯一標識一個column-- 或者你可以不再唯一 確定根據該列一行。 它失去了它的所有 值作為主鍵。 所以顯然我做了什麼 這裡被配置的用戶ID 列自動遞增,使每個 時間我想補充信息表, 它會自動給我 對於主鍵的值。 所以,我永遠也不會忘記這樣做,因為 數據庫會為我做的。 所以這是一種很好的。 所以這就是為什麼我們得到 12在那裡,因為我 設置列設置為自動遞增。 如果我加別人 這將會是13,如果我加入 人家這將會是14,依此類推。 因此,讓我們只是做一個更多的插入。 我們會插入到媽媽表中, 特別是,用戶名和母 列,值 克萊默和巴布斯克雷默。 因此,我們以前有這個。 當我們執行該 SQL查詢,我們有這個。 我們增加了克萊默和巴布斯 克萊默向媽媽表。 所以這是插入。 選擇是我們用它來提取 從表中的信息。 因此,這是我們如何得到 信息從數據庫中。 所以SELECT命令都將是 非常經常用於編程。 一般framework--的 普通的骨架看起來是這樣的。 選擇一組列 一個表,然後任選 你可以指定一個condition--或 我們通常所說的謂語, 通常我們在SQL中使用的術語。 但它基本上是什麼 你要特別行獲得。 如果你想要的,而不是獲取 一切,縮小它, 這是在那裡你會做到這一點。 然後選擇性地,你也可以 命令由一個特定的列。 因此,也許你想擁有的東西排序 按字母順序的基礎上一列 按字母順序或基於另一個。 再次,WHERE和ORDER BY是可選的。 但是,他們很可能會 useful--特別 哪裡會是有益的 縮小讓你不 讓你的整個數據庫背部和 必須處理它,你只得到 它的作品,你所關心的。 因此,舉例來說,我可能要選擇 從用戶的ID號和全名。 所以,什麼才是這個樣子呢? 因此,這裡是我的用戶表。 我想選擇IDNUM 和全名的用戶。 我該怎麼走? 我要得到這一點。 我並沒有縮小它,所以我 獲得的ID號的每一行 而我得到的全部 從每列名。 確定。 如果我要選擇密碼 從用戶WHERE--所以現在 我加入一個條件,一個predicate-- 其中IDNUM小於12。 因此,這裡是我的數據庫再次, 我的用戶表的頂部。 我該怎麼得到,如果我想 選擇信息,密碼, 其中用戶ID或IDNUM小於12? 我要得到這 信息反饋,對不對? 它發生IDNUM是10以下, 超過12,ID號11小於12。 我得到的密碼,這些行。 這就是我要的。 怎麼樣? 如果我要選擇從星 媽媽表其中username等於傑里? OK,選擇明星是特 排序外卡的所謂 我們用它來搞定一切。 所以他們說選擇 用戶名逗號的母親,這 碰巧是僅 兩列此表, 我可以選擇星級 並得到一切 其中,用戶名等於傑里。 所以這就是我會得到 如果我做了特定的查詢。 現在,數據庫 偉大的,因為他們允許 我們也許是組織信息 多一點效率比我們 否則可能會。 我們並不一定存儲 信息各相關件 大約在同一表的用戶。 我們有兩個表存在。 我們需要存儲 每個人的母親的名字, 也許我們沒有社會保障 數,我們有他們的出生日期。 這並不總是需要 是在同一個表。 只要我們可以定義 在tables--之間的關係 而這也正是這關係 哪種數據庫術語起源 進入play--只要我們可以定義 表之間的關係, 之類的,我們可以劃分 或抽象事物的方式, 在這裡我們只有 真正重要的信息 我們關心用戶的表。 然後我們有輔助信息 在其他表或額外的信息 我們可以回到連接到主 用戶表中的某個特定的方式。 所以在這裡,我們有這兩個表,但 有它們之間的關係, 對不對? 這似乎是用戶名 可能是什麼 中存在之間的共同 這兩個不同的表。 那麼,如果我們現在有 的情況下,我們 希望從中獲取用戶的全名 用戶的表,和他們的母親 從母親表名? 我們沒有辦法讓 那樣子,對不對? 有不包含單個表 雙方的全名和母親的名字。 我們沒有這個選項 從我們到目前為止看到的。 因此,我們就來介紹 一個JOIN的想法。 並加入可能 最complex-- 這真是最複雜的操作 我們要談的視頻。 他們是有點複雜, 但一旦你得到了它的竅門, 他們實際上是不是太糟糕。 這只是一個選擇的一個特例。 我們要選擇一組 加入從表中的列 在一些謂詞第二個表。 在這種情況下,考慮一下像this-- 表一是一圈過來, 表二是另一個圈子在這裡。 並說明上游部分 在中間,它的 有點像,如果你認為 關於作為一個維恩圖,是什麼 他們有什麼共同點? 我們想鏈接這兩個表 根據他們的共同點 創造這個假設的表 這是兩人在一起的合併。 所以我們會看到這一點的 例如,也許這會幫助 它清除掉一點點。 因此,也許你想選擇 user.fullname和moms.mother 從用戶的加入,在 在任何情況下媽媽表 其中username列 是它們之間的相同。 這是一個新的 語法在這裡,這個用戶。 和媽媽.. 如果我做多個表 在一起,我可以指定一個表。 我可以在特定的區別 上在最底層那裡。 我可以區分用戶名 用戶表列 從的username列 媽媽表,它是otherwise-- 如果我們剛才說的用戶名等於 用戶名,並沒有真正 意味著什麼。 我們想這樣做,他們匹配。 所以,我可以指定表和 在殼體的情況列名 哪裡會不清楚 我在說什麼。 所以,這就是我做的有我 從這個表說此列, 而且是非常明確的。 所以,再一次,我選擇 全名和母親的名字 從用戶表連接在一起 在任何情況下的媽媽表 在那裡他們共享column-- 它們共享該用戶名的概念。 因此,這裡是我們以前的表。 這是我們的國家 數據庫作為它存在現在。 我們提取信息 這是開始。 這是新的表格,我們要去 創建這些結合在一起。 同時注意我們不突出 紐曼的行中的用戶的表, 我們不是在突出 克萊默的行中的媽媽表 因為沒有一個存在於 無論sets--兩個表。 這是僅有一個共同的信息 它們之間是傑里的兩個表中 和gcostanza既是表。 所以,當我們在SQL JOIN,我們 get--我們做真正得到這一點。 這有點一個臨時變量。 這就像一個假設 合併這兩個表中。 實際上,我們得到的東西 這樣,在 我們在表合併在一起 它們在共同的信息。 所以請注意users.username 和moms.username列, 它是完全一樣的。 這是信息 是來自用戶的一致 表和媽媽表。 所以,我們合併在一起。 我們丟棄的克萊默,因為他 在用戶表中不存在, 我們拋棄紐曼,因為 他沒有在母親表中存在。 因此,這是假設合併 使用SELECT的JOIN操作。 然後,我們正在尋找的 用戶的全名和用戶的媽媽, 因此,這是信息 我們會從整個查詢 我們用SELECT進行。 因此,我們加入了表一起 我們提取這兩列, 所以,這就是我們會得到。 但是SQL連接是一種複雜的。 你可能不會做他們太多, 但只是有骨架的一些想法 你可以用它來合併兩個 表如果你一起需要。 最後兩個是一 簡單一點我保證。 所以在更新,我們可以使用UPDATE 改變表中的信息。 一般格式是更新一些 表中,設置一些列的一些值 WHERE一些謂詞是滿意的。 因此,例如,我們可能要 更新用戶表 並設置密碼亞達 亞達,其中ID號是10。 因此,在這種情況下,我們 更新用戶表。 ID號是10,用於 那裡,第一行中, 我們要更新 密碼內容十分重要。 所以這是會發生什麼。 這是非常簡單的,對不對? 這只是一個很簡單的 修改該表。 DELETE是我們用來操作 從表中刪除的信息。 DELETE FROM表WHERE 一些謂詞是滿意的。 我們要從中刪除 用戶表例如 其中,用戶名是紐曼。 你可能已經猜到了什麼事情 在這裡發生之後,我們執行的SQL 查詢,紐曼走了從表中。 因此,所有這些操作,因為我已​​經說過了, 是很容易做到在phpMyAdmin。 這是一個非常友好的用戶界面。 但它確實需要手動操作。 我們不想聘請手動操作。 我們希望我們的節目 做到這一點對我們來說,對不對? 因此,我們可能想要做的 這種編程方式。 我們希望將SQL和有 別的東西,為我們做到這一點。 但是,我們已經看到,它允許 我們以編程方式做一些事情? 我們已經看到了PHP的,對不對? 它介紹了一些 動力到我們的節目。 所以幸運的是,SQL和 PHP玩的很漂亮起來。 有一個在PHP函數 稱為查詢,它都可以使用。 你可以通過為 參數或參數 查詢一個SQL查詢 您想執行。 和PHP會做以您的名義。 所以,你已經接通後 用PHP數據庫, 有兩大初選你這樣做。 有一種叫做MySQLi的 而一些所謂的PDO。 我們不會進入一個巨大的 大量的細節那裡。 在CS50,我們使用PDO。 您已經連接後 你的數據庫, 然後可以進行查詢數據庫 通過把查詢作為參數 到PHP函數。 當你這樣做,你存儲 在關聯數組結果集。 而且我們知道如何一起工作 關聯數組在PHP。 所以,我可能會說 像this-- $ results-- 這是在PHP--等於查詢。 和然後把裡面的 查詢功能參數 那我傳遞查詢 看起來像SQL。 而事實上這是SQL。 這是查詢字符串,我會 喜歡在我的數據庫中執行。 因此紅色,這是PHP。 這是SQL,我很 納入PHP通過 它的參數,查詢功能。 我想從選擇全名 其中,用戶ID號等於10。 然後,也許以後我做到了這一點, 我可能會說這樣的事情。 我想打印出來的 消息謝謝登錄。 我希望它interpolate--我想 插值$結果全名。 所以,這就是我與該是如何工作的 我回來關聯數組。 $結果全稱會 基本上結束了打印輸出, 感謝登錄,傑里宋飛。 這是全名 其中,IDNUM等於10。 所以我做的 是我now--我存儲 我的查詢,我的查詢結果 並導致一個關聯數組, 和全名是名 在專欄中,我漸漸的。 所以這是我的鑰匙插入結果 我想關聯數組。 所以感謝登錄,$結果, 全名會打印出來,將繼續堅持 就在這些花間 牙套,傑里宋飛。 我會想打印出的信息 感謝您登錄傑里宋飛。 現在,我們可能不希望辛苦 代碼之類的東西在,對吧? 我們可能想要做類似打印 f,其中我們可以代替,也許 收集不同的信息, 或者有查詢過程 不同的信息。 因此查詢時,查詢功能有 排序換人的這一概念 非常相似的打印˚F百分之小號 和百分比C,是問號。 我們可以使用問題 標誌非常類似 打印f以替代變量。 因此,也許你的用戶登錄前, 和保存他們的用戶ID號 在$的PHP超_session 全球性的密鑰ID。 他們登錄因此,也許以後, 你設置$ _SESSION ID等於10, 從實例推斷 我們只是在一秒鐘前看到的。 所以,當我們真正執行 此查詢的結果現在, 它會插上10,或任何 在$ _SESSION ID值。 所以,讓我們來 有點更有活力。 我們不是硬編碼了的東西。 我們保存信息 某處,然後 我們可以再次使用這些信息來 排序概括了我們想做的事情, 和公正的插件和變化 我們網頁的行為 基於什麼用戶的ID號碼 實際上,他們已經登錄後。 它也可以,不過, 您的結果集 可能包括多個行。 在這種情況下,你有 arrays--的陣列 關聯數組的數組。 而你只需要遍歷它。 而且我們知道如何遍歷 通過在PHP中的數組,對不對? 因此,這裡可能是最 我們到目前為止看到的複雜的東西。 它實際上是把 三種語言在一起。 在這裡,在紅,這是一些HTML。 我顯然starting--這是 一些HTML,我有一個片段。 我開始一個新的段落 電視的宋飛的媽媽說。 然後隨即 我開始的表。 並在那之後,我 有一些PHP的,對不對? 我有這一切的PHP代碼在那裡。 我顯然會進行查詢。 而為了讓查詢,我要去 可以使用SELECT母親們的媽媽。 因此,這是getting--這是SQL。 所以藍色是SQL。 我們看到在一秒鐘前,紅色是HTML。 在這裡,綠色的是PHP。 所以,我正在做一個查詢 到我的數據庫,我 選擇所有的 母親在母親表。 不只是縮小它歸結為特定的 行,我問了所有的人。 然後我檢查,如果結果是 不等於等於false。 這只是我的檢查方式排序 如果結果不等於空, 我們會看到下例子。 基本上這只是檢查,以 確保它實際上得到的數據備份。 因為我不想開始打印 出的數據,如果我沒有得到任何數據。 然後為每個結果作為結果的 從PHP的foreach語法,我做的 正在打印$結果母親。 所以我要得到一套 所有each--的母親的 它的關聯數組 arrays--,我打印出 每一個作為它自己的一個表中的行。 而這真的很漂亮 很多都在那裡給它。 我知道有一點 位怎麼回事 在這個最後的例子與陣列 arrays--關聯數組的數組。 但它確實剛燒開 倒在SQL中,查詢數據, 通常選擇後,我們已把 把信息到表, 然後就拉出來。 這是我們把它 在這種特殊情況下。 我們將提取所有個人 母親從媽媽表。 我們得到了一整套他們,而我們 要遍歷並打印出 每一個。 如此反复,這可能是 最複雜的例子 我們已經看到,因為我們是混合三種 不同的語言在一起,對不對? 同樣,我們在這裡的HTML紅色, 一些SQL這裡的藍色混合, 在綠一些PHP混合。 但所有這些玩 很好地在一起,這是 發展中的問題而已 良好的生活習慣,這樣你可以得到 他們你想要的方式一起工作。 而只有這樣,才能真正做到這一點 就是練習,練習,再練習。 我是道格·勞埃德,這是CS50。