1 00:00:00,000 --> 00:00:05,040 2 00:00:05,040 --> 00:00:08,440 >> SAM LEVATICH:歡迎 節這個星期。 3 00:00:08,440 --> 00:00:10,040 我不是安迪。 4 00:00:10,040 --> 00:00:14,590 安迪生了病這一天,和我 那種被稱為在最後一分鐘 5 00:00:14,590 --> 00:00:15,700 接管。 6 00:00:15,700 --> 00:00:20,920 這是流感季節,所以一定要確保你 是住乾淨,洗手, 7 00:00:20,920 --> 00:00:24,800 和飲食健康,使 你也一樣,不是臥床不起。 8 00:00:24,800 --> 00:00:26,870 >> 但是,如果沒有進一步的 廢話不多說,讓我們開始吧。 9 00:00:26,870 --> 00:00:29,970 今天,我們要談論 關於PHP bit--如何一點點 10 00:00:29,970 --> 00:00:33,900 PHP涉及到HTML,它是如何 涉及CSS和一些紙幅的 11 00:00:33,900 --> 00:00:36,100 東西你做了最後一次轉讓。 12 00:00:36,100 --> 00:00:37,930 我們要談 有關SQL一點 13 00:00:37,930 --> 00:00:41,360 以及如何使用數據庫的工作, 這是P的一個非常關鍵的組成部分 14 00:00:41,360 --> 00:00:43,650 設置8- P設定7。 15 00:00:43,650 --> 00:00:44,480 P設定7。 16 00:00:44,480 --> 00:00:48,400 >> 然後,我們要談一點 有關視圖控制器是如何工作的位 17 00:00:48,400 --> 00:00:54,640 為什麼這是一個理念背後的一些 現代的網頁和不同的設計。 18 00:00:54,640 --> 00:00:58,760 差不多了很多類型的應用程序 和應用程序,你可能會出貨 19 00:00:58,760 --> 00:01:01,120 利用該模型, 視圖控制器架構, 20 00:01:01,120 --> 00:01:02,890 你會使用 P中設置7,所以我會 21 00:01:02,890 --> 00:01:05,220 講一點點 為什麼這已經成為 22 00:01:05,220 --> 00:01:07,970 流行的,為什麼它是重要的和漂亮的。 23 00:01:07,970 --> 00:01:12,052 然後,我將最終轉移到 關於解決P的一些技巧設置7。 24 00:01:12,052 --> 00:01:13,760 如果我們有時間 剩下的底, 25 00:01:13,760 --> 00:01:17,320 我們實際上可以做一些 上一起工作。 26 00:01:17,320 --> 00:01:20,380 >> 因此,PHP。 27 00:01:20,380 --> 00:01:23,790 事實上,你可能已經注意到this-- 你真的沒有潛入它 - 28 00:01:23,790 --> 00:01:27,880 但P設定6有一些PHP 這是怎麼回事代碼。 29 00:01:27,880 --> 00:01:34,710 而由於PHP是一種類似C 語言,PHP,不像HTML和CSS, 30 00:01:34,710 --> 00:01:39,030 是一種編程語言, 而HTML和CSS是靜態的。 31 00:01:39,030 --> 00:01:44,050 他們是處理標記語言 與風格和視覺佈局。 32 00:01:44,050 --> 00:01:46,230 PHP是實打實的。 33 00:01:46,230 --> 00:01:51,590 >> PHP有循環,它具有條件 - 所有的東西,很有趣約C. 34 00:01:51,590 --> 00:01:56,190 它有幾件事情是一個小 位比C,我們將看到更好的, 35 00:01:56,190 --> 00:01:59,760 但我認為,最簡單的方法談 關於PHP只是潛水研究。 36 00:01:59,760 --> 00:02:04,087 所以我要去權 到IDE在此點。 37 00:02:04,087 --> 00:02:06,170 我們要的第一件事情 這樣做實際上是看 38 00:02:06,170 --> 00:02:10,169 在一些一點點 PHP代碼,這是P中設置6。 39 00:02:10,169 --> 00:02:13,600 讓我們做that--方式 之前,我們正在運行的方式 40 00:02:13,600 --> 00:02:18,550 服務器為家電 是,我們將不得不類型 - 41 00:02:18,550 --> 00:02:21,750 既可以使用您的實現 或員工實施 42 00:02:21,750 --> 00:02:27,059 server.c通過進入目錄 並運行server.c與不用 43 00:02:27,059 --> 00:02:30,100 arguments--所以叫它的 本地主機,這就是你大概是什麼 44 00:02:30,100 --> 00:02:31,849 做了大部分的時間 - 的 然後餵養它 45 00:02:31,849 --> 00:02:35,380 有directory-- 其中作為其根使用 46 00:02:35,380 --> 00:02:38,310 其中,網站將 運行,基本上是這樣。 47 00:02:38,310 --> 00:02:42,180 >> 本週的p設置7,如 偉大的,因為我們的代碼server.c 48 00:02:42,180 --> 00:02:47,580 是,還有人誰已經 在CS50寫這些美好的事情了 49 00:02:47,580 --> 00:02:49,630 有一點點 更多的功能, 50 00:02:49,630 --> 00:02:52,920 一個服務器程序,它是能夠 處理多一點 51 00:02:52,920 --> 00:02:56,350 錯綜複雜的關係,我們將 看到在P組7和P設置8。 52 00:02:56,350 --> 00:03:01,410 並且您啟動的方式 服務器只需鍵入“apache50。” 53 00:03:01,410 --> 00:03:03,960 >> 你做任何事情之前, 你要確保 54 00:03:03,960 --> 00:03:06,070 阿帕奇50不 已經運行,因為它是 55 00:03:06,070 --> 00:03:08,130 在我的機器,我做到了,以測試它。 56 00:03:08,130 --> 00:03:10,320 而你做到這一點通過調用apache50。 57 00:03:10,320 --> 00:03:14,070 停下來,你會看到它停 Web服務器,如果你能在那裡尋找 58 00:03:14,070 --> 00:03:16,340 在終端窗口的底部。 59 00:03:16,340 --> 00:03:21,090 然後剛開始,我們 要叫,“apache50開始。” 60 00:03:21,090 --> 00:03:23,150 然後我們要去 給它一個目錄。 61 00:03:23,150 --> 00:03:26,950 >> 現在,因為我們想看看 在一些為P的設置6個碼 62 00:03:26,950 --> 00:03:32,850 我們已經實施了,其實我 複製的P一點點 63 00:03:32,850 --> 00:03:37,090 設置6碼到我自己的文件夾中, 您可以在左邊有看到。 64 00:03:37,090 --> 00:03:40,170 這就是所謂的“SECTION8” 在所有大寫字母 65 00:03:40,170 --> 00:03:44,510 因為我只是太激動了 以視頻直播的今天。 66 00:03:44,510 --> 00:03:47,330 >> 因此,如果我們運行它,它應該 一切都非常有效地開展工作。 67 00:03:47,330 --> 00:03:52,350 它說,好了,我們的網站現在 可在IDE的地址, 68 00:03:52,350 --> 00:03:57,710 基本上,這是你正在使用 正是因為它是在P設定7-- P設定6。 69 00:03:57,710 --> 00:04:00,899 我所有的指標是當今一個索引。 70 00:04:00,899 --> 00:04:02,940 因此,我們可以去那 地址,如果你還記得, 71 00:04:02,940 --> 00:04:05,710 只需點擊這個小 按鈕在右上角。 72 00:04:05,710 --> 00:04:14,200 >> 你還記得這個代碼,這 當你走進hello.php發生。 73 00:04:14,200 --> 00:04:18,000 和哪些代碼被設計成 做的是,當你在一個名字類型 74 00:04:18,000 --> 00:04:20,550 這裡 - 如果你說山姆 因為這是我name-- 75 00:04:20,550 --> 00:04:23,620 我點擊打招呼,當 我們去到下一個頁面, 76 00:04:23,620 --> 00:04:25,270 該名稱應該顯示。 77 00:04:25,270 --> 00:04:28,550 它會說,“餵,山姆” 或“你好,”任意名稱 78 00:04:28,550 --> 00:04:32,470 投入它,即使我們去 以一個全新的網頁。 79 00:04:32,470 --> 00:04:36,610 >> 這是諸如此類的事情, PHP可以為你做。 80 00:04:36,610 --> 00:04:42,840 PHP是能夠通過數據 在兩個網頁。 81 00:04:42,840 --> 00:04:44,390 這是一個完全不同的頁面。 82 00:04:44,390 --> 00:04:46,990 你會看到標題為“Hello”在這裡。 83 00:04:46,990 --> 00:04:49,080 實際上,它們具有 同樣的冠軍,但我 84 00:04:49,080 --> 00:04:52,560 保證它們是不同的網絡 網頁如果我們看看源。 85 00:04:52,560 --> 00:04:55,890 你可以通過這就是數據 在這個文本字段中輸入, 86 00:04:55,890 --> 00:04:59,830 你提交給下一個 頁面正在被叫了起來, 87 00:04:59,830 --> 00:05:02,490 然後該數據能夠 在那裡以其目前的形式。 88 00:05:02,490 --> 00:05:04,810 >> 現在我們還沒有實現 這個我們自己,這 89 00:05:04,810 --> 00:05:08,710 就是我們要做的,現在到 排序得到了香精,用於PHP是如何工作的, 90 00:05:08,710 --> 00:05:15,070 但關鍵的想法是,PHP--可以 那種認為它像一個功能。 91 00:05:15,070 --> 00:05:18,570 東西PHP可以讓你 做的是它可以帶參數 92 00:05:18,570 --> 00:05:24,710 您輸入到HTML頁面 通過使用PHP和形式, 93 00:05:24,710 --> 00:05:29,960 它可以通過那些作為參數 給它加載了下一個頁面。 94 00:05:29,960 --> 00:05:35,110 >> 在這種情況下,我們加載了這個 頁的“打個招呼”按鈕。 95 00:05:35,110 --> 00:05:38,960 但現在,其實我 刪除了一些代碼 96 00:05:38,960 --> 00:05:44,850 在hello.php當時正在運行 這實際上顯示了“你好, 97 00:05:44,850 --> 00:05:49,680 世界“或”你好,薩姆“或 “你好,”無論是剛投入。 98 00:05:49,680 --> 00:05:53,620 因此,對於現在,我們 要做到這一點,基本上是這樣。 99 00:05:53,620 --> 00:05:56,570 我們將重新創建和 還添加一些更多的功能, 100 00:05:56,570 --> 00:06:00,210 做多一點吧,看 PHP是什麼真正的能力。 101 00:06:00,210 --> 00:06:04,870 >> 因此,首先,讓我們來談談 該文件,hello.php。 102 00:06:04,870 --> 00:06:07,440 因此,如果我們放大了 小bit--現在我 103 00:06:07,440 --> 00:06:10,520 那種試圖滾動所有 順便around--我們走吧。 104 00:06:10,520 --> 00:06:14,220 你會看到它被稱為 hello.php,但語法它 105 00:06:14,220 --> 00:06:16,880 看起來像一個HTML文件。 106 00:06:16,880 --> 00:06:20,380 這是因為 在該文件中的實際的PHP 107 00:06:20,380 --> 00:06:25,220 在所有的這些卡之間 問號插入符塊。 108 00:06:25,220 --> 00:06:28,610 這裡的一切 被認為是PHP代碼。 109 00:06:28,610 --> 00:06:32,040 >> 而且你會發現, 當我做了評論, 110 00:06:32,040 --> 00:06:35,320 你會看到熟悉的 兩個正斜杠。 111 00:06:35,320 --> 00:06:38,440 如果你還記得,在 HTML,如果我輸入評論, 112 00:06:38,440 --> 00:06:42,540 它看起來更接近於 這一點,這是HTML註釋。 113 00:06:42,540 --> 00:06:46,570 之間,真是應有盡有 這兩個尖括號 114 00:06:46,570 --> 00:06:50,060 現在是PHP代碼,這 反映在實際上 115 00:06:50,060 --> 00:06:53,270 這個小註釋符號 變成一個註釋。 116 00:06:53,270 --> 00:06:58,420 >> 所以每次你寫PHP代碼,甚至 如果有在它之外沒有HTML代碼, 117 00:06:58,420 --> 00:07:02,720 它總是將是 括在這些尖括號 118 00:07:02,720 --> 00:07:04,080 帶有問號的。 119 00:07:04,080 --> 00:07:08,260 那種你可以考慮一下它 - 怎麼回事 跑在你的C程序代碼 120 00:07:08,260 --> 00:07:13,950 被封閉在一個int主,無效的, 大括號,結束大括號的語句。 121 00:07:13,950 --> 00:07:17,100 你會看到在大括號 PHP也一樣,但這是有點 122 00:07:17,100 --> 00:07:20,490 像PHP的主要方法。 123 00:07:20,490 --> 00:07:25,630 >> 所以,現在,我們該怎麼做在PHP什麼? 124 00:07:25,630 --> 00:07:29,190 現在,PHP是一種編程 語言這是非常類似C, 125 00:07:29,190 --> 00:07:30,970 但它的運作在網絡上。 126 00:07:30,970 --> 00:07:33,270 所以一件事, 你會immediately-- 1 127 00:07:33,270 --> 00:07:38,130 你真的跟做的第一件事 ℃的你打印的東西了,對吧? 128 00:07:38,130 --> 00:07:42,290 因此,在C中,我們做到了 用printf函數。 129 00:07:42,290 --> 00:07:46,430 我們給它一個字符串, 可能有一個新的生產線, 130 00:07:46,430 --> 00:07:49,850 然後我們終止 它與一個分號。 131 00:07:49,850 --> 00:07:53,790 >> 所以說我們要做到這一點的方式 在PHP--因為它不是相當的printf。 132 00:07:53,790 --> 00:07:55,940 這是不同的語法一點點。 133 00:07:55,940 --> 00:08:02,580 我們打印的東西出路 在PHP是我們說,“迴聲你好” 134 00:08:02,580 --> 00:08:04,180 或“迴聲”的任何文字。 135 00:08:04,180 --> 00:08:09,830 並且具有這樣做的效果 printf輸出字符串,“你好。” 136 00:08:09,830 --> 00:08:11,990 並增加了新的生產線給它。 137 00:08:11,990 --> 00:08:16,000 >> 因此,讓我們現在做sure-- 我會再次縮小了一點bit-- 138 00:08:16,000 --> 00:08:18,250 讓我們確保 該代碼工作 139 00:08:18,250 --> 00:08:21,030 因為很可能會 以及在這個代碼中的錯誤 140 00:08:21,030 --> 00:08:22,880 我們將必須解決。 141 00:08:22,880 --> 00:08:25,860 因此,服務器已經在運行。 142 00:08:25,860 --> 00:08:30,630 因此,如果我們滾動回落至底部, 是啊,在服務器仍在運行。 143 00:08:30,630 --> 00:08:34,510 因此,如果我們只需輕按在此 有點右這裡 - 144 00:08:34,510 --> 00:08:37,620 welcome--我們應該get--很大。 145 00:08:37,620 --> 00:08:39,930 >> 我們仍然擁有的 熟悉的“問好”的對話, 146 00:08:39,930 --> 00:08:45,750 但是當我輸入“喜”,我們拭目以待 文本“你好”確實是 147 00:08:45,750 --> 00:08:50,080 打印出來,這是完全一樣 我們預計,由於迴響在PHP 148 00:08:50,080 --> 00:08:53,190 就像是一個printf語句。 149 00:08:53,190 --> 00:09:01,410 於是回到代碼,如何在P設定6那樣 您提供的發行代碼 150 00:09:01,410 --> 00:09:05,920 讓這個PHP會 輸出的東西,你 151 00:09:05,920 --> 00:09:07,920 上一個屏幕上鍵入的? 152 00:09:07,920 --> 00:09:10,350 >> 而要排序的研究 為什麼出現這種情況,我們 153 00:09:10,350 --> 00:09:15,510 要進入的index.html,這 是原始的文件,該文件是 154 00:09:15,510 --> 00:09:18,710 顯示了這個屏幕上 與“打個招呼”按鈕。 155 00:09:18,710 --> 00:09:20,950 您會注意到有 所有的經典的東西 156 00:09:20,950 --> 00:09:26,910 我們來自HTML這樣的期待 因為這些東西,這些標籤封閉 157 00:09:26,910 --> 00:09:31,080 在尖括號,如PHP 但沒有問號, 158 00:09:31,080 --> 00:09:34,650 這表明一個特別的事情為HTML。 159 00:09:34,650 --> 00:09:36,895 我們有稱號,這是“你好”。 160 00:09:36,895 --> 00:09:41,010 而且你會發現,正如我們所看到的, 標題是在兩種情況下的“hello”。 161 00:09:41,010 --> 00:09:43,260 讓我們改變這一個 以“說”只是讓我們 162 00:09:43,260 --> 00:09:48,170 能夠區分自己哪裡了。 163 00:09:48,170 --> 00:09:49,600 >> 但是,我們已經有了一個身體。 164 00:09:49,600 --> 00:09:52,690 然後是有趣的一點,在 位,顯示了在HTML, 165 00:09:52,690 --> 00:09:54,530 是這樣的表單元素。 166 00:09:54,530 --> 00:09:56,370 因此,我們有一個形式。 167 00:09:56,370 --> 00:09:58,330 這是關鍵。 168 00:09:58,330 --> 00:10:00,530 這是我們如何使用PHP。 169 00:10:00,530 --> 00:10:05,790 的動作參數 形式表示,hello.php 170 00:10:05,790 --> 00:10:09,310 就是我們要發送的 在這種形式的值。 171 00:10:09,310 --> 00:10:13,830 這是我們傳遞 參數,可以這麼說。 172 00:10:13,830 --> 00:10:18,680 >> 你會注意到這裡還有一件事 是,該方法是“獲取”。 173 00:10:18,680 --> 00:10:24,450 有兩個主 方法通過在後 174 00:10:24,450 --> 00:10:28,750 可以使用PHP來傳遞數據 websites--網頁之間, 175 00:10:28,750 --> 00:10:30,500 rather--此分配。 176 00:10:30,500 --> 00:10:34,070 而這些方法都是“get”和“後”。 177 00:10:34,070 --> 00:10:37,010 有一些微妙 GET和POST之間的區別 178 00:10:37,010 --> 00:10:40,520 我們會得到into--我們 將“得”到,如果你願意。 179 00:10:40,520 --> 00:10:44,030 >> 但是,對於所有的意圖和 目的,get和post 180 00:10:44,030 --> 00:10:47,120 都只是方式 你傳遞參數 181 00:10:47,120 --> 00:10:49,500 略有不同的執行。 182 00:10:49,500 --> 00:10:53,500 現在,我們要使用get因為 得到的是什麼最初使用 183 00:10:53,500 --> 00:10:57,340 在P的PHP文件中設置6。 184 00:10:57,340 --> 00:11:00,850 而實際上,如果我們進去看看 之前我們已經別的編輯什麼, 185 00:11:00,850 --> 00:11:03,090 我會打個招呼 用於:你叫什麼名字? 186 00:11:03,090 --> 00:11:03,812 >> 聽眾:艾略特。 187 00:11:03,812 --> 00:11:04,770 SAM LEVATICH:哦,天哪。 188 00:11:04,770 --> 00:11:05,600 我不知道如何拼寫的。 189 00:11:05,600 --> 00:11:06,766 你能拼一下嗎? 190 00:11:06,766 --> 00:11:08,710 聽眾:E-L-L-I-O-T。 191 00:11:08,710 --> 00:11:09,720 >> SAM LEVATICH:我-O-T? 192 00:11:09,720 --> 00:11:10,440 >> 聽眾:是的。 193 00:11:10,440 --> 00:11:10,960 >> SAM LEVATICH:完美。 194 00:11:10,960 --> 00:11:11,210 好。 195 00:11:11,210 --> 00:11:12,751 我想我確實知道如何拼寫的。 196 00:11:12,751 --> 00:11:13,510 對於那個很抱歉。 197 00:11:13,510 --> 00:11:16,560 但是,如果我們說“打招呼,”這不是 它不會顯示在屏幕上 198 00:11:16,560 --> 00:11:18,476 然而,由於我們修改 代碼一點點。 199 00:11:18,476 --> 00:11:21,290 但是,如果我們“打個招呼” - 好了,“你好”就在這裡。 200 00:11:21,290 --> 00:11:24,137 但是,如果我們仔細 看看URL本身, 201 00:11:24,137 --> 00:11:26,220 我們將看到它結束 與hello.php?NAME =埃利奧特。 202 00:11:26,220 --> 00:11:30,980 203 00:11:30,980 --> 00:11:37,180 >> 所以,這是一種方式 連通到下一個網頁 204 00:11:37,180 --> 00:11:39,240 我們已經傳遞的參數。 205 00:11:39,240 --> 00:11:40,870 我們說的名字=埃利奧特。 206 00:11:40,870 --> 00:11:46,290 而這最終P如何設置6 訪問我們通過在變量 207 00:11:46,290 --> 00:11:47,520 通過形式。 208 00:11:47,520 --> 00:11:51,470 這是東西 所特有的GET請求。 209 00:11:51,470 --> 00:11:57,480 GET請求,使參數 在網站的URL已知的。 210 00:11:57,480 --> 00:12:01,190 >> 你會記得,太多, P中設置6,你 211 00:12:01,190 --> 00:12:04,450 只好寫一個函數 該處理的事實 212 00:12:04,450 --> 00:12:09,700 這個查詢字符串 一個文件後,可能存在。 213 00:12:09,700 --> 00:12:14,684 有可能是一個問號,後面跟隨 通過基本上任意數目的字符。 214 00:12:14,684 --> 00:12:16,350 而這正是這裡發生了。 215 00:12:16,350 --> 00:12:21,280 你有原因解析 在P中實現server.c的 216 00:12:21,280 --> 00:12:27,570 設定6是使你能告訴 PHP代碼的NAME =埃利奧特。 217 00:12:27,570 --> 00:12:30,460 您需要能夠以 解析出的URL 218 00:12:30,460 --> 00:12:35,900 使有問題的PHP文件 知道它處理。 219 00:12:35,900 --> 00:12:39,350 >> 因此,希望這給 動機server.c 220 00:12:39,350 --> 00:12:43,900 現在我們繼續前進 的C外到PHP。 221 00:12:43,900 --> 00:12:48,240 因此,讓我們真正專注於訪問 通過GET請求事情現在 222 00:12:48,240 --> 00:12:48,880 在此刻。 223 00:12:48,880 --> 00:12:50,157 我要保存這個。 224 00:12:50,157 --> 00:12:51,240 我們沒有改變任何東西。 225 00:12:51,240 --> 00:12:56,080 看起來我們已經有了一個輸入欄。 226 00:12:56,080 --> 00:12:58,550 >> 我們設置一些屬性, 因為我們可以做一個HTML。 227 00:12:58,550 --> 00:12:59,550 這些都是簡單的事情。 228 00:12:59,550 --> 00:13:00,580 我們不需要這些。 229 00:13:00,580 --> 00:13:03,750 但是,我們已經有了自動完成了, 這基本上says--你知道, 230 00:13:03,750 --> 00:13:05,710 當你輸入的東西 入網絡,有時 231 00:13:05,710 --> 00:13:07,355 它試圖填補的為您服務。 232 00:13:07,355 --> 00:13:08,230 所以這是一個很好的事情。 233 00:13:08,230 --> 00:13:11,700 我們要關閉它用於此目的。 234 00:13:11,700 --> 00:13:13,970 這是一個CS50的決定。 235 00:13:13,970 --> 00:13:15,640 因此,我們可以刪除,如果我們想要的。 236 00:13:15,640 --> 00:13:19,510 >> 自動對焦剛粘光標 在開始時的形式的權利。 237 00:13:19,510 --> 00:13:21,060 同樣,沒有太重要了。 238 00:13:21,060 --> 00:13:26,220 >> 但NAME =“名” - 這是一個有點 棘手,因為它的名字和名稱。 239 00:13:26,220 --> 00:13:28,730 但我們可以已經改變 這對別的東西。 240 00:13:28,730 --> 00:13:30,563 而事實上,這是 我們要做的現在。 241 00:13:30,563 --> 00:13:34,830 我們會說“的人,”這 有點像名 242 00:13:34,830 --> 00:13:36,790 如果一個人是由他們的名字來定義。 243 00:13:36,790 --> 00:13:41,480 >> 因此,讓我們關閉此, 重新打開了我們的網站: 244 00:13:41,480 --> 00:13:46,110 因為我們的服務器仍在運行 Apache的50,我們會說,你好,這裡是 245 00:13:46,110 --> 00:13:47,200 艾略特一次。 246 00:13:47,200 --> 00:13:48,460 為什麼不呢? 247 00:13:48,460 --> 00:13:49,220 您好。 248 00:13:49,220 --> 00:13:52,880 如果我們走在這裡,我們將看到 而不是名稱,則=埃利奧特, 249 00:13:52,880 --> 00:13:55,200 它說:人=埃利奧特。 250 00:13:55,200 --> 00:14:00,060 這就是這一事實的直接結果 我們只是改變了名稱=“人”。 251 00:14:00,060 --> 00:14:06,840 >> 因此在一個輸入元件 HTML表單的名稱字段 252 00:14:06,840 --> 00:14:10,590 是標識符的 這正在被傳遞的參數。 253 00:14:10,590 --> 00:14:14,250 這就像如果你創建一個函數 “加”是參加了兩個整數 254 00:14:14,250 --> 00:14:16,670 你說的INT A和INT灣 255 00:14:16,670 --> 00:14:22,680 這將是一個名稱,並且如果 你想要的另一種形式,這 256 00:14:22,680 --> 00:14:27,800 我們可以通過複製做到公正, 粘貼,那麼我們將不得不名灣 257 00:14:27,800 --> 00:14:31,030 >> 所以,現在我們有兩個參數: 正在通過傳遞 258 00:14:31,030 --> 00:14:36,970 到達下一個website-- 下一個網頁,hello.php。 259 00:14:36,970 --> 00:14:39,770 我們可以清楚地看到 這一次,如果我們想要的。 260 00:14:39,770 --> 00:14:44,830 這是處理最簡單的方法 在IDE的網頁代碼,基本上是這樣。 261 00:14:44,830 --> 00:14:47,940 你啟動服務器,把它 運行,然後每一次 262 00:14:47,940 --> 00:14:50,649 做出一些改變,只需關閉 該文件只是為了安全起見。 263 00:14:50,649 --> 00:14:52,440 按後退按鈕 是有點棘手 264 00:14:52,440 --> 00:14:55,800 因為它可能會加載一個較早 版本,而不是最更新之一。 265 00:14:55,800 --> 00:14:59,200 >> 然後你只需點擊 按鈕再次,彈出右鍵up--哦, 266 00:14:59,200 --> 00:15:00,510 現在有兩種形式。 267 00:15:00,510 --> 00:15:10,440 因此,如果我們輸入一件事到每個 埃德蒙頓“賈森赫什霍恩,”對於instance-- 268 00:15:10,440 --> 00:15:11,590 我們打招呼。 269 00:15:11,590 --> 00:15:12,840 我們仰望我們的參數。 270 00:15:12,840 --> 00:15:18,910 看起來我們已經得到了,因為 預計,A =傑森和b =赫什霍恩, 271 00:15:18,910 --> 00:15:23,760 它代表了兩個參數 我們傳遞給這個函數。 272 00:15:23,760 --> 00:15:27,900 >> 所以,現在,讓我們真正得到 實現該功能,我們 273 00:15:27,900 --> 00:15:30,840 有P中設置6。 274 00:15:30,840 --> 00:15:32,490 所以現在我們只是呼應打招呼。 275 00:15:32,490 --> 00:15:34,310 而這還不是非常有用的。 276 00:15:34,310 --> 00:15:38,530 我們要回應一些變量 這是傳遞給我們。 277 00:15:38,530 --> 00:15:40,320 我們也知道這個變量的名稱。 278 00:15:40,320 --> 00:15:41,770 我們有一個,我們已經灣 279 00:15:41,770 --> 00:15:43,500 因此,我們可以選擇迴聲任何一個。 280 00:15:43,500 --> 00:15:45,470 >> 但是,我們如何獲得呢? 281 00:15:45,470 --> 00:15:48,820 嗯,也有一定的 在PHP中的全局變量。 282 00:15:48,820 --> 00:15:51,240 而且我會寫 他們在這裡評論。 283 00:15:51,240 --> 00:15:59,910 這兩個最重要的是GET 並張貼我們的目的現在。 284 00:15:59,910 --> 00:16:05,350 這些是陣列或, 技術上,該詞典 285 00:16:05,350 --> 00:16:10,540 在那裡我們的變量,我們是 傳遞到下一個網頁直播。 286 00:16:10,540 --> 00:16:14,520 我們將很快看到如何使用它們。 287 00:16:14,520 --> 00:16:19,720 >> 關於PHP代碼的另一個簡要說明 而它 - 在C中的一些細節, 288 00:16:19,720 --> 00:16:23,260 聲明變量 或者使用變量, 289 00:16:23,260 --> 00:16:24,570 你首先必須聲明它們。 290 00:16:24,570 --> 00:16:30,860 而你又做什麼,當你 宣稱他們是說INT一個或炭灣 291 00:16:30,860 --> 00:16:35,630 你必須申報這些類型 之前變量創造了他們。 292 00:16:35,630 --> 00:16:38,800 PHP--你不需要做任何的。 293 00:16:38,800 --> 00:16:42,522 PHP不要求 變量的類型。 294 00:16:42,522 --> 00:16:44,480 和使用的方式 創建一個變量 - 而 295 00:16:44,480 --> 00:16:49,930 不是說INT,CHAR,string-- 這是真正的char *,因為我們知道 - 296 00:16:49,930 --> 00:16:52,180 而不是做所有的 即,因為一切 297 00:16:52,180 --> 00:16:54,620 是相同類型的, 無類型,我們只要 298 00:16:54,620 --> 00:16:59,210 使用一個字符,這 是美元符號。 299 00:16:59,210 --> 00:17:03,700 你會看到它已經彈出 起來,小自動完成的事情。 300 00:17:03,700 --> 00:17:11,380 而且它說_GET和彥博 有兩種選擇,我有可用 301 00:17:11,380 --> 00:17:11,900 對我來說。 302 00:17:11,900 --> 00:17:16,430 其中的一些其他的東西 在PHP中其它全局變量 303 00:17:16,430 --> 00:17:18,430 您將使用過 P的過程設置7。 304 00:17:18,430 --> 00:17:20,569 現在我們要 注重GET和POST。 305 00:17:20,569 --> 00:17:22,910 但是,這是一個有益的 該IDE做的事情 306 00:17:22,910 --> 00:17:24,980 一旦你輸入的地方 在美元符號, 307 00:17:24,980 --> 00:17:28,760 它會開始填充全局變量 或者你已經定義的變量。 308 00:17:28,760 --> 00:17:34,360 >> 所以,如果你想定義 一個叫做變量“字符串” 309 00:17:34,360 --> 00:17:38,290 你可以只將其設置為“喜”。 310 00:17:38,290 --> 00:17:40,100 而且它基本上是這麼簡單。 311 00:17:40,100 --> 00:17:44,720 然後我們可以做 像“迴聲$字符串。” 312 00:17:44,720 --> 00:17:48,524 IDE將要拋出一些 錯誤,如果我做錯什麼, 313 00:17:48,524 --> 00:17:50,190 所以希望我做的一切權利。 314 00:17:50,190 --> 00:17:52,060 但錯誤總是這樣出現的。 315 00:17:52,060 --> 00:17:56,670 >> 關於另一個棘手的事情 PHP是,它不是編譯。 316 00:17:56,670 --> 00:18:00,640 因此,與C程序,你會怎麼做 日常of--基本上, 317 00:18:00,640 --> 00:18:02,710 你會做編輯 你的代碼,你會來救它, 318 00:18:02,710 --> 00:18:04,460 然後你會 使,在化妝是 319 00:18:04,460 --> 00:18:08,830 調用該編譯器的步驟中, 鐺,使你的代碼,該文本 320 00:18:08,830 --> 00:18:10,570 文件,到可執行。 321 00:18:10,570 --> 00:18:15,550 PHP是C類,但它的執行 在通過Web瀏覽器飛。 322 00:18:15,550 --> 00:18:17,640 因此,有沒有辦法知道。 323 00:18:17,640 --> 00:18:19,790 >> 請將引發這些 有用的錯誤,對吧? 324 00:18:19,790 --> 00:18:22,190 這將是一樣,你 沒有宣布這個變量 325 00:18:22,190 --> 00:18:23,320 你嘗試過使用它。 326 00:18:23,320 --> 00:18:29,120 你做了這一切壞stuff--段錯誤, 段錯誤,所有諸如此類的有趣的時代 327 00:18:29,120 --> 00:18:31,000 隨化妝。 328 00:18:31,000 --> 00:18:33,920 PHP是一種雙刃劍 因為你不會得到這些錯誤, 329 00:18:33,920 --> 00:18:37,770 但是這也意味著你不會知道 真的有什麼錯你的程序 330 00:18:37,770 --> 00:18:39,840 如果你只是運行它,它不工作。 331 00:18:39,840 --> 00:18:45,130 但調試器應該指出 一些希望有用的小事情 332 00:18:45,130 --> 00:18:47,950 語法就可以解決。 333 00:18:47,950 --> 00:18:52,850 >> 因此,如果我們去了用於: 說了,讓我們關閉了。 334 00:18:52,850 --> 00:18:54,522 重新打開。 335 00:18:54,522 --> 00:18:55,480 我們又回到了這裡。 336 00:18:55,480 --> 00:18:57,210 所以,我們已經有了一個變量 和一變量b。 337 00:18:57,210 --> 00:18:58,626 而這些都不會最終無所謂。 338 00:18:58,626 --> 00:19:01,850 我們會打電話給他們^ h和g 無特殊原因。 339 00:19:01,850 --> 00:19:03,120 >> 而我們打招呼。 340 00:19:03,120 --> 00:19:07,480 現在看來,我們的字符串 “喜”確實打印。 341 00:19:07,480 --> 00:19:10,460 我們創建了一個名為變量 “弦”,將其設置為“喜”。 342 00:19:10,460 --> 00:19:15,520 請注意,我們沒有做 的malloc或作出一個字符數組。 343 00:19:15,520 --> 00:19:19,110 >> 在PHP中,由於變量 是無類型,一個字符串 344 00:19:19,110 --> 00:19:22,230 是一樣的字符為 所有意圖和目的。 345 00:19:22,230 --> 00:19:23,570 這可能是“喜”。 346 00:19:23,570 --> 00:19:26,340 這可能只是角色k。 347 00:19:26,340 --> 00:19:29,290 這可以是一個數字1。 348 00:19:29,290 --> 00:19:30,300 而且它並不關心。 349 00:19:30,300 --> 00:19:33,560 PHP不關心 你的變量的類型。 350 00:19:33,560 --> 00:19:34,390 或者,它確實照顧。 351 00:19:34,390 --> 00:19:36,240 當您嘗試它關心 和做的事情吧, 352 00:19:36,240 --> 00:19:38,790 但它並不關心在 聲明一步。 353 00:19:38,790 --> 00:19:46,960 >> 就這樣你就可以在C,你可以 棧像這樣的聲明串 354 00:19:46,960 --> 00:19:51,130 雖然說“棧”是一個小 一個潛在的用詞不當,當位 355 00:19:51,130 --> 00:19:52,230 我們談論的PHP。 356 00:19:52,230 --> 00:19:54,020 但是,我們不必擔心。 357 00:19:54,020 --> 00:19:55,936 因此,我們得到了我們的字符串 “嗨,”我們回顯字符串。 358 00:19:55,936 --> 00:19:58,880 所以,現在我們已經討論了變數。 359 00:19:58,880 --> 00:20:06,060 所以,現在我們需要談談get和 發布並執行的最後一件事那 360 00:20:06,060 --> 00:20:12,660 需要真正得到這個備份 到P的功能設置6。 361 00:20:12,660 --> 00:20:14,990 所以現在我們 呼應字符串,但我們 362 00:20:14,990 --> 00:20:17,080 確實有這些變量GET和POST。 363 00:20:17,080 --> 00:20:19,430 而且因為我們使用 該方法得到的,它 364 00:20:19,430 --> 00:20:24,810 很自然,我們的變量 我們感興趣的,A和B, 365 00:20:24,810 --> 00:20:29,870 將位於在陣列中 或字典,在技術上得到。 366 00:20:29,870 --> 00:20:33,510 >> 所以,如果我們成立了得到這樣 你groups--我按下進入 367 00:20:33,510 --> 00:20:36,770 它不喜歡它 - 但在這裡,我們有得到。 368 00:20:36,770 --> 00:20:38,000 並因此獲得已經存在。 369 00:20:38,000 --> 00:20:41,380 因此,我們已經可以開始訪問 有些人會的元素。 370 00:20:41,380 --> 00:20:45,000 如果我們得到的,這個語法 在PHP中的數組非常類似C。 371 00:20:45,000 --> 00:20:47,900 我們有我們的兩個方括號。 372 00:20:47,900 --> 00:20:53,440 >> 所以,如果我們說得到一個正常的 數組,我們就可以訪問 373 00:20:53,440 --> 00:20:55,600 第零指數,第一索引。 374 00:20:55,600 --> 00:20:56,840 PHP是零指標。 375 00:20:56,840 --> 00:21:00,550 我們可以說零,一, two--這樣的東西。 376 00:21:00,550 --> 00:21:03,420 而且我一直在說,得到 在技​​術上是一本字典。 377 00:21:03,420 --> 00:21:08,290 那麼,什麼PHP做的引擎蓋下, 這是比C一點點更好, 378 00:21:08,290 --> 00:21:12,760 是它已經是給你一些 詞典功能,這 379 00:21:12,760 --> 00:21:16,240 真的是哈希表, 或嘗試,據說。 380 00:21:16,240 --> 00:21:19,360 或者,在技術上它 可以一試為好。 381 00:21:19,360 --> 00:21:25,500 但是PHP正在實施一個哈希表, 形成一個有效的詞典。 382 00:21:25,500 --> 00:21:28,400 >> 因此,我們知道這個名字 我們的變量,對不對? 383 00:21:28,400 --> 00:21:32,440 它被傳遞 通過PHP查詢字符串。 384 00:21:32,440 --> 00:21:37,290 我們有A = H且b =克,其中和b 是變量的名稱。 385 00:21:37,290 --> 00:21:41,580 這樣的方式,我們可以訪問 對應於密鑰值 386 00:21:41,580 --> 00:21:45,055 在我們的詞典 只是說_GET_GET [“一個”。 387 00:21:45,055 --> 00:21:48,170 388 00:21:48,170 --> 00:21:51,365 >> 所以現在我們有_GET [“一”。 389 00:21:51,365 --> 00:21:56,930 如果我們只需更換裡面 我們的迴聲,如果我們迴聲_GET_GET [“A”] - 390 00:21:56,930 --> 00:22:02,410 我們會如果調試器看到 拋出約this--任何錯誤 391 00:22:02,410 --> 00:22:05,620 我們將保存並關閉了這一點。 392 00:22:05,620 --> 00:22:07,130 打開它。 393 00:22:07,130 --> 00:22:10,390 所以,我們只是做了正確的 現在,所以B不應該的問題。 394 00:22:10,390 --> 00:22:12,980 “她”和“他” - “哼。” “她”和“哼哼。” 395 00:22:12,980 --> 00:22:14,810 聽起來不錯。 396 00:22:14,810 --> 00:22:18,040 >> 它打印出來 “她說,”這太瘋狂了。 397 00:22:18,040 --> 00:22:21,920 但是,這到底是什麼 是發生P中設置6。 398 00:22:21,920 --> 00:22:27,240 基本上,P設定6 是doing--迴聲你好, 399 00:22:27,240 --> 00:22:31,580 name--其中它有一個 變量的名稱,它只是 400 00:22:31,580 --> 00:22:35,520 問你在文本的位輸入。 401 00:22:35,520 --> 00:22:37,380 以前也有一些 額外的代碼在哪裡 402 00:22:37,380 --> 00:22:40,550 它包括if語句, 這是我們現在可以做。 403 00:22:40,550 --> 00:22:50,120 >> 我們可以說,如果存在,其 是PHP中的功能, 404 00:22:50,120 --> 00:22:55,110 _GET用下劃線,“名” - 這基本上是說, 405 00:22:55,110 --> 00:22:58,760 “如果名字已經填充了”,因為 我們只需單擊按鈕 406 00:22:58,760 --> 00:23:02,580 無需提交表單 輸入任何內容到該領域。 407 00:23:02,580 --> 00:23:07,760 而我們總結了在我們的 友好的大括號。 408 00:23:07,760 --> 00:23:09,175 我們可以有一個else語句。 409 00:23:09,175 --> 00:23:13,300 410 00:23:13,300 --> 00:23:18,820 而這一切在PHP的角度 支架,問號,尖括號, 411 00:23:18,820 --> 00:23:20,040 如果你願意。 412 00:23:20,040 --> 00:23:21,750 >> 現在我們可以看到,如果這個工程。 413 00:23:21,750 --> 00:23:26,300 我一直在等待它調試 和廢話了我,基本上, 414 00:23:26,300 --> 00:23:28,410 但它沒有。 415 00:23:28,410 --> 00:23:30,830 也許這將現在 因為我講了。 416 00:23:30,830 --> 00:23:31,330 對。 417 00:23:31,330 --> 00:23:32,510 它做到了,其實。 418 00:23:32,510 --> 00:23:34,610 那麼,什麼也沒有顯示出來。 419 00:23:34,610 --> 00:23:38,750 這是因為一些錯誤 我寫在PHP代碼。 420 00:23:38,750 --> 00:23:42,844 而我所提到的調試 是棘手,因為在PHP中,我們 421 00:23:42,844 --> 00:23:45,260 沒有預先編譯 而編譯器是不喜歡, 422 00:23:45,260 --> 00:23:46,710 這裡的地方你的錯誤。 423 00:23:46,710 --> 00:23:49,690 >> 但是,我們能做些什麼 is--做的人記住 424 00:23:49,690 --> 00:23:57,010 如何看待不同的網絡 該PHP--或網站請求 425 00:23:57,010 --> 00:23:57,620 發送? 426 00:23:57,620 --> 00:24:00,290 [?馬林?]這樣做的 講座一次或兩次。 427 00:24:00,290 --> 00:24:05,830 你還記得我們去哪裡找 不同的債務和200 OKS, 428 00:24:05,830 --> 00:24:09,780 正在發送的所有這些代碼 通過HTTP的網頁,網頁? 429 00:24:09,780 --> 00:24:12,514 曾記否 我們去哪裡做? 430 00:24:12,514 --> 00:24:13,787 >> 聽眾:頁面源代碼。 431 00:24:13,787 --> 00:24:14,870 SAM LEVATICH:頁面源。 432 00:24:14,870 --> 00:24:15,890 究竟。 433 00:24:15,890 --> 00:24:19,230 如果你去頁Source--完美的。 434 00:24:19,230 --> 00:24:21,630 所以頁面源代碼拉起督察。 435 00:24:21,630 --> 00:24:23,140 >> 而我使用的Safari瀏覽器。 436 00:24:23,140 --> 00:24:25,790 你們很多人大概會 可以使用Chrome或Firefox。 437 00:24:25,790 --> 00:24:27,750 但只要你 在任何現代browser-- 438 00:24:27,750 --> 00:24:29,500 並隨時跟進 同時,如果你想要的。 439 00:24:29,500 --> 00:24:32,560 您最多可以輸入此代碼或 只是看在P組6的內部 440 00:24:32,560 --> 00:24:35,820 目錄中一些類似的東西。 441 00:24:35,820 --> 00:24:41,020 hello.php是我們 目前正在仿效。 442 00:24:41,020 --> 00:24:42,476 >> 所以有各種標籤。 443 00:24:42,476 --> 00:24:43,850 我們可以看一下所有的資源。 444 00:24:43,850 --> 00:24:45,810 我們可以看到的源代碼。 445 00:24:45,810 --> 00:24:49,900 所以看起來它沒有 闖過身體到底。 446 00:24:49,900 --> 00:24:54,890 它在PHP中,它發現了一個錯誤 停止加載整個網頁。 447 00:24:54,890 --> 00:24:58,320 我們甚至沒有結束 標記HTML或任何東西。 448 00:24:58,320 --> 00:25:07,189 >> 如果我們看一下網絡,我們可以 看到我們正在發送的請求。 449 00:25:07,189 --> 00:25:07,980 這是域。 450 00:25:07,980 --> 00:25:09,270 這是地址。 451 00:25:09,270 --> 00:25:10,070 這是一個文檔。 452 00:25:10,070 --> 00:25:14,310 我們使用get方法。 453 00:25:14,310 --> 00:25:15,760 >> 而且它是紅色的。 454 00:25:15,760 --> 00:25:19,030 或者,它是紅色的,當我 不選擇它。 455 00:25:19,030 --> 00:25:22,680 我怎麼不選擇呢? 456 00:25:22,680 --> 00:25:23,980 那麼,它是紅色的。 457 00:25:23,980 --> 00:25:25,201 讓我刷新。 458 00:25:25,201 --> 00:25:25,700 在那裡,它是。 459 00:25:25,700 --> 00:25:26,640 現在,它是紅色。 460 00:25:26,640 --> 00:25:30,530 >> 因此,它是紅色的,這意味著 它失敗了,這是不好的。 461 00:25:30,530 --> 00:25:32,280 所以,讓我們來看看它為什麼失敗。 462 00:25:32,280 --> 00:25:37,070 因此,所有的頁面源可以 基本上告訴你,是你的事 463 00:25:37,070 --> 00:25:38,720 沒有工作,我們已經可以看到。 464 00:25:38,720 --> 00:25:42,100 因此,理想情況下將有 是更為有用的工具。 465 00:25:42,100 --> 00:25:45,710 還有一些瀏覽器擴展 ,讓您的​​PHP調試, 466 00:25:45,710 --> 00:25:50,490 但我們不打算 可以寫一噸​​的PHP, 467 00:25:50,490 --> 00:25:53,190 所以它可能只是最好的 翻閱你的代碼 468 00:25:53,190 --> 00:25:56,760 仔細,只要確保 它沒有做別的事情。 469 00:25:56,760 --> 00:26:03,876 >> 因此,讓我們來看看,如果這個格式 if語句是問題的所在。 470 00:26:03,876 --> 00:26:07,420 我想加載備份在這裡。 471 00:26:07,420 --> 00:26:09,830 你好。 472 00:26:09,830 --> 00:26:11,350 所以這是一個問題。 473 00:26:11,350 --> 00:26:15,130 >> 因此,對於正確的語法 PHP的,PHP是怎麼回事 474 00:26:15,130 --> 00:26:17,369 為C類的,你會看到循環。 475 00:26:17,369 --> 00:26:18,410 if語句,你會看到的。 476 00:26:18,410 --> 00:26:20,920 你會看到所有的這些朋友 你已經熟悉 477 00:26:20,920 --> 00:26:24,820 超過課程 這CS50學期。 478 00:26:24,820 --> 00:26:29,960 但是,最好的辦法弄清楚如何 做一下PHP是谷歌, 479 00:26:29,960 --> 00:26:33,170 還是要看PHP代碼的一些例子 因為你知道的功能。 480 00:26:33,170 --> 00:26:35,080 >> 你知道你能 做的程序。 481 00:26:35,080 --> 00:26:35,976 你可以循環。 482 00:26:35,976 --> 00:26:37,600 您可以根據需要循環多次。 483 00:26:37,600 --> 00:26:39,433 您可以循環中的所有 各種不同的方式。 484 00:26:39,433 --> 00:26:40,700 您可以創建功能。 485 00:26:40,700 --> 00:26:43,241 您可以創建函數 呼叫等功能,功能 486 00:26:43,241 --> 00:26:44,150 那個自稱。 487 00:26:44,150 --> 00:26:45,733 而且你的名字,這些概念。 488 00:26:45,733 --> 00:26:49,860 你有遞歸,循環, 如果,其他的控制流。 489 00:26:49,860 --> 00:26:51,300 所以,谷歌是你最好的朋友。 490 00:26:51,300 --> 00:26:53,540 甚至說,“PHP如果 聲明“,並有會 491 00:26:53,540 --> 00:26:57,740 要噸,職位 答案給其他人 492 00:26:57,740 --> 00:27:02,090 誰已經有類似的問題給你, 誰是剛剛開始接觸PHP 493 00:27:02,090 --> 00:27:03,820 和好奇語法的事情。 494 00:27:03,820 --> 00:27:08,480 >> 因為我們擁有的是奢侈品 能看P中集6的代碼中, 495 00:27:08,480 --> 00:27:14,980 我們實際上拉起來,看到 好了,下面是一些有趣的事情。 496 00:27:14,980 --> 00:27:18,070 因此,這是它實際上 看起來像P中設置6。 497 00:27:18,070 --> 00:27:20,340 因此,如果我們通過這個, 我們可以看到,我們已經 498 00:27:20,340 --> 00:27:27,150 有幾個這些小的 PHP般的問號位。 499 00:27:27,150 --> 00:27:29,050 >> 而且不會有大括號。 500 00:27:29,050 --> 00:27:30,250 有冒號。 501 00:27:30,250 --> 00:27:32,340 而且有大 括號中的PHP,但是這 502 00:27:32,340 --> 00:27:38,700 是一種格式和做的一種方式 PHP與HTML效果很好 503 00:27:38,700 --> 00:27:43,830 因為如你所見,我們現在要關門 關閉這些PHP bits--了別人的 504 00:27:43,830 --> 00:27:49,770 而如果和所有that--後的 我們在他們裡面穿插HTML 505 00:27:49,770 --> 00:27:54,640 同時還繼 控制流設置由PHP。 506 00:27:54,640 --> 00:27:58,480 >> 所以我只是要 通過這個快走 507 00:27:58,480 --> 00:28:01,740 因為它是一個很大的相同 概念,我們之前做的事情。 508 00:28:01,740 --> 00:28:07,280 如果不為空,我們已經得到了, 括號,_GET_GET [“名稱”]。 509 00:28:07,280 --> 00:28:08,500 這都是一樣的東西。 510 00:28:08,500 --> 00:28:15,430 我們使用的_GET字典, PHP將根據表格的要求, 511 00:28:15,430 --> 00:28:20,720 因為它是的參數 動作,並且該方法是獲得。 512 00:28:20,720 --> 00:28:22,110 然後,該結束了。 513 00:28:22,110 --> 00:28:27,420 冒號是一個能指只做到這一點 如果if語句的計算結果為真。 514 00:28:27,420 --> 00:28:29,490 這就像一個大括號。 515 00:28:29,490 --> 00:28:33,320 而事實上,這是一個大括號 在其他語言如Python, 516 00:28:33,320 --> 00:28:37,070 您可能,如果你只是遇到 這樣做,對你的最終項目。 517 00:28:37,070 --> 00:28:40,170 >> 然後這條線,你好。 518 00:28:40,170 --> 00:28:41,510 然後,我們已經得到了這個奇怪的事情。 519 00:28:41,510 --> 00:28:43,190 我們有更多的括號內。 520 00:28:43,190 --> 00:28:46,140 有沒有HTTP那裡 - 或者PHP,對不起。 521 00:28:46,140 --> 00:28:47,250 但有一個等號。 522 00:28:47,250 --> 00:28:50,625 然後我們有一個函數, 用htmlspecialchars(_GEThtmlspecialchars(_GET [“名稱”])。 523 00:28:50,625 --> 00:28:54,440 524 00:28:54,440 --> 00:28:58,040 這有點像一個更 高級版本迴聲。 525 00:28:58,040 --> 00:29:01,450 就像我們已經回應的一種方式 打印出來的東西在PHP。 526 00:29:01,450 --> 00:29:03,890 這是一個函數,是 在PHP中定義 527 00:29:03,890 --> 00:29:08,160 將處理一些更討厭 字符和字節值 528 00:29:08,160 --> 00:29:09,540 你可以通過它。 529 00:29:09,540 --> 00:29:11,070 它總是最安全的使用。 530 00:29:11,070 --> 00:29:14,930 但是,迴聲會做的工作 就好了,如果我們不 531 00:29:14,930 --> 00:29:17,620 處理任何事情太討厭。 532 00:29:17,620 --> 00:29:20,340 >> 所以這具有相同的 基本上效果, 533 00:29:20,340 --> 00:29:26,360 這個東西在這個問題之間 標記是由PHP評估。 534 00:29:26,360 --> 00:29:34,490 用htmlspecialchars返回一個不錯的HTML _GET_GET [“名稱”],即印刷價值 535 00:29:34,490 --> 00:29:36,010 無論我們輸入的形式。 536 00:29:36,010 --> 00:29:40,025 然後它會打個招呼, 逗號空間,然後將該。 537 00:29:40,025 --> 00:29:42,910 之間的整個事情 尖括號 538 00:29:42,910 --> 00:29:47,390 將取代任何 用htmlspecialchars推出。 539 00:29:47,390 --> 00:29:49,390 所以這是基本相似 以我們正在做的。 540 00:29:49,390 --> 00:29:54,760 我們有一個else語句是 世界你好,這是有道理的。 541 00:29:54,760 --> 00:29:58,070 所以,現在,讓我們回到我們 代碼,看看exactly--哦。 542 00:29:58,070 --> 00:30:02,200 我說存在,這是不 一個事情,我們想做的事。 543 00:30:02,200 --> 00:30:05,370 我們想說的話不是空的。 544 00:30:05,370 --> 00:30:10,020 >> 所以這應該有點 好一點,不為空_GET_GET [“名稱”]。 545 00:30:10,020 --> 00:30:12,710 而這大括號 匹配大括號。 546 00:30:12,710 --> 00:30:15,210 現在我們得到我們的大括號內。 547 00:30:15,210 --> 00:30:17,790 迴聲你好_GET [“名稱”]。 548 00:30:17,790 --> 00:30:19,912 讓我們來看看這效果更好一點。 549 00:30:19,912 --> 00:30:21,350 我們仍然運行在我們的服務器。 550 00:30:21,350 --> 00:30:23,910 您好傑森。 551 00:30:23,910 --> 00:30:24,780 您好傑森。 552 00:30:24,780 --> 00:30:25,810 和它的工作這一次。 553 00:30:25,810 --> 00:30:29,860 所以這是一個證明 你的確可以 554 00:30:29,860 --> 00:30:35,180 使用大括號,你 熟悉和喜愛在HTML PHP代碼。 555 00:30:35,180 --> 00:30:41,100 提供給PHP代碼 您在PSET 6-- PSET 6-- 556 00:30:41,100 --> 00:30:44,760 提供了另一種方式 這樣做同樣的事情。 557 00:30:44,760 --> 00:30:49,220 >> 所以,現在我們有力量。 558 00:30:49,220 --> 00:30:55,740 我們有功能來實現 我們在PSET 6看到的PHP代碼 559 00:30:55,740 --> 00:30:57,390 由我們自己,基本上是這樣。 560 00:30:57,390 --> 00:31:01,350 在我繼續前進,有哪些的 你必須在這一點上的問題? 561 00:31:01,350 --> 00:31:02,066 是[聽不清]。 562 00:31:02,066 --> 00:31:06,512 >> 聽眾:所以在pset6的版本, 當你運行它,有一個空間。 563 00:31:06,512 --> 00:31:09,330 我能看到的空間 後面的逗號。 [聽不清]啟動 564 00:31:09,330 --> 00:31:10,700 開放的支架。 565 00:31:10,700 --> 00:31:15,420 你怎麼把的空間 你寫你自己的代碼的方法是什麼? 566 00:31:15,420 --> 00:31:17,910 >> 演講嘉賓:這是一個很好的問題。 567 00:31:17,910 --> 00:31:21,650 因此,讓我們明白這一點。 568 00:31:21,650 --> 00:31:24,450 所以這是一個非常好的問題 一,我沒有考慮。 569 00:31:24,450 --> 00:31:25,950 但是,讓我們一起做吧。 570 00:31:25,950 --> 00:31:30,280 >> 所以首先,是什麼 我做的迴聲 571 00:31:30,280 --> 00:31:33,690 當我們剛剛迴聲 你好,你好輸出。 572 00:31:33,690 --> 00:31:41,310 如果我們現在呼應這個獲得獨立 行,讓我們看看會發生什麼。 573 00:31:41,310 --> 00:31:43,740 所以我們點擊這裡。 574 00:31:43,740 --> 00:31:45,220 我們一直在說,喜賈森。 575 00:31:45,220 --> 00:31:48,690 所以,再一次,我們沒有這個空間。 576 00:31:48,690 --> 00:31:53,090 >> 那是因為,在 PHP的,當我們有迴聲, 577 00:31:53,090 --> 00:31:55,820 無論有多少 spaces--不,不是V-- 578 00:31:55,820 --> 00:32:01,770 無論有多少空間,我們投放 這裡 - 如果我們現在再重新裝了起來, 579 00:32:01,770 --> 00:32:03,010 喜賈森。 580 00:32:03,010 --> 00:32:05,770 是啊,看,所有這些 空間得到了吃掉。 581 00:32:05,770 --> 00:32:08,020 而這件事情, 迴聲功能一樣。 582 00:32:08,020 --> 00:32:11,110 >> 所以要照顧 空間,而這是 583 00:32:11,110 --> 00:32:14,960 的原因之一 你為什麼不使用echo 584 00:32:14,960 --> 00:32:18,200 並使用用htmlspecialchars代替。 585 00:32:18,200 --> 00:32:22,140 我很好奇會是什麼 如果我們沒有這種情況發生 586 00:32:22,140 --> 00:32:26,700 在這裡我們封閉在一個字符串的空間。 587 00:32:26,700 --> 00:32:29,720 我真的不知道是什麼 當我這樣做會出現這種情況。 588 00:32:29,720 --> 00:32:30,790 >> 所以,這是一種方式。 589 00:32:30,790 --> 00:32:32,210 這是要照顧它的一種方式。 590 00:32:32,210 --> 00:32:34,840 如果包裹的空間 一個字符串,則空間 591 00:32:34,840 --> 00:32:36,920 將輸出很好地通過迴聲。 592 00:32:36,920 --> 00:32:41,930 做最安全的事情是 做用htmlspecialchars。 593 00:32:41,930 --> 00:32:43,800 這始終是安全的賭注。 594 00:32:43,800 --> 00:32:47,050 但是,現在我們有辦法做到 它的迴聲,如果有必要的。 595 00:32:47,050 --> 00:32:50,700 並以類似的方式,我們可以 迴聲新的生產線,所有的排序 596 00:32:50,700 --> 00:32:53,550 東西你熟悉做在PHP。 597 00:32:53,550 --> 00:32:57,460 >> 任何人,什麼是更多 問題是其他人都 598 00:32:57,460 --> 00:33:01,090 在這一點上關於PHP? 599 00:33:01,090 --> 00:33:04,620 如果人們出現了一個有點晚, 我很高興留後一點點 600 00:33:04,620 --> 00:33:06,420 說說一些開始。 601 00:33:06,420 --> 00:33:10,380 而且這也是所有livestreamed, 和存檔,這太瘋狂了。 602 00:33:10,380 --> 00:33:13,960 >> 無論如何,所以現在讓我們做一些 更先進的東西用PHP。 603 00:33:13,960 --> 00:33:18,790 而最早的事情之一,你 被引入到C組的循環。 604 00:33:18,790 --> 00:33:24,060 和PHP擁有更強大的 所謂循環foreach循環。 605 00:33:24,060 --> 00:33:37,940 它看起來像this--每空 為空白,大括號,該做的事。 606 00:33:37,940 --> 00:33:41,500 因此,這基本上是一個簡寫。 607 00:33:41,500 --> 00:33:45,380 >> 你看,在for循環中一 句法結構 608 00:33:45,380 --> 00:33:50,590 被設計在C和彙編 語言之類的東西。 609 00:33:50,590 --> 00:33:56,300 設計出C,準確的說,作為一個速記 對於很多循環的類型的 610 00:33:56,300 --> 00:33:57,750 人們會看到的。 611 00:33:57,750 --> 00:34:01,230 當你寫一個循環,有沒有像 常常是一個初始化步驟 612 00:34:01,230 --> 00:34:04,700 一開始,右執行 調節在環路將stop-- 613 00:34:04,700 --> 00:34:07,030 這就是功能 這只是在一個while循環, 614 00:34:07,030 --> 00:34:10,040 或者說一段時間恰有 只是feature--然後 615 00:34:10,040 --> 00:34:12,320 一個增量步驟在末端。 616 00:34:12,320 --> 00:34:16,489 所以你會經常發現自己 編寫代碼如下所示。 617 00:34:16,489 --> 00:34:19,780 我要刪除一些這方面的。 618 00:34:19,780 --> 00:34:23,850 >> 但是,如果我們迭代通過 以陣列的字符, 619 00:34:23,850 --> 00:34:26,960 舉例來說,像我們已經 得到的字符陣列。 620 00:34:26,960 --> 00:34:29,400 對不起帶回C.我知道, 你以為你做了。 621 00:34:29,400 --> 00:34:31,900 但是,這只是為目的 學習PHP的,我保證。 622 00:34:31,900 --> 00:34:38,880 所以,如果你有一個char海峽 長度為8,讓我們 623 00:34:38,880 --> 00:34:46,760 說這說Hellooo 後面有個空。 624 00:34:46,760 --> 00:34:48,270 太好了,所以這是我們的字符串。 625 00:34:48,270 --> 00:34:51,469 >> 然後我們有一個for循環。 626 00:34:51,469 --> 00:34:53,730 我們是int i等於0。 627 00:34:53,730 --> 00:34:57,960 628 00:34:57,960 --> 00:35:09,110 我們想退出str的時候 我等於不等於空, 629 00:35:09,110 --> 00:35:11,590 因為我們退出的時候它等於空。 630 00:35:11,590 --> 00:35:19,170 然後我們做我++在每 點在for循環。 631 00:35:19,170 --> 00:35:30,480 做一些與我海峽。 632 00:35:30,480 --> 00:35:34,950 >> 因此,基本公式是, 我們有這個數組,我們 633 00:35:34,950 --> 00:35:37,910 想當作單獨的元素。 634 00:35:37,910 --> 00:35:45,170 但是,我們必須做的是,我們不得不 基本上創建一個單獨的整數 635 00:35:45,170 --> 00:35:50,530 變量是計數每 一次,我們通過循環去了。 636 00:35:50,530 --> 00:35:55,240 然後,我們就必須再調用 的strstr [我]當我們真正想做的事 637 00:35:55,240 --> 00:35:57,280 剛去的性格 按字符,對不對? 638 00:35:57,280 --> 00:36:00,185 我們不希望增加的 整數,然後使用該整數 639 00:36:00,185 --> 00:36:02,780 訪問每一個字符。 640 00:36:02,780 --> 00:36:04,410 我們真正想要的字符一個字符。 641 00:36:04,410 --> 00:36:08,600 >> 所以,每個智能 計算,對我們來說。 642 00:36:08,600 --> 00:36:11,875 如果我們有一個數組,其中 我們可以在PHP聲明 643 00:36:11,875 --> 00:36:15,900 作為just--如果我們有一個變量 所謂的,讓我們稱之為數組。 644 00:36:15,900 --> 00:36:19,840 不用打字的奇蹟,這是 就像任何其他變量。 645 00:36:19,840 --> 00:36:20,730 這只是一個數組。 646 00:36:20,730 --> 00:36:26,890 我們有一點點[聽不清]像1, 2,3,只是一種初始化數組。 647 00:36:26,890 --> 00:36:29,680 這是確定的,它不喜歡我的foreach。 648 00:36:29,680 --> 00:36:33,120 >> 但是,如果我們foreach--實際上 我輸入了一個有點不對勁。 649 00:36:33,120 --> 00:36:34,840 有兩種方法可以做到foreach循環。 650 00:36:34,840 --> 00:36:37,400 還有的在語法和作為語法。 651 00:36:37,400 --> 00:36:40,580 而我們要做的 首先在語法,還不如。 652 00:36:40,580 --> 00:36:41,780 這是我的錯誤。 653 00:36:41,780 --> 00:36:53,785 >> 在陣列所以的foreach NUM,迴聲NUM。 654 00:36:53,785 --> 00:36:56,970 655 00:36:56,970 --> 00:36:59,500 而PHP吼 我出於某種原因。 656 00:36:59,500 --> 00:37:03,520 它的發現一個意想不到的 在東西, 657 00:37:03,520 --> 00:37:05,820 這是一個麻煩一點點。 658 00:37:05,820 --> 00:37:09,105 但是,我們會找出 這是為什麼在某一時刻。 659 00:37:09,105 --> 00:37:11,960 660 00:37:11,960 --> 00:37:13,610 所以不喜歡這樣。 661 00:37:13,610 --> 00:37:15,040 讓我們嘗試使用的。 662 00:37:15,040 --> 00:37:17,310 它更喜歡的語法似乎。 663 00:37:17,310 --> 00:37:22,550 因此,讓我們做的foreach陣列為num。 664 00:37:22,550 --> 00:37:24,520 >> 那麼一點點的解釋 對剛剛發生了什麼 665 00:37:24,520 --> 00:37:30,670 是因為語法saying--那麼首先, 讓我們來看看這是什麼打印出來。 666 00:37:30,670 --> 00:37:32,260 因此,我們打開我們的IDE。 667 00:37:32,260 --> 00:37:33,110 我們去這裡。 668 00:37:33,110 --> 00:37:35,845 我們說,你好傑森。 669 00:37:35,845 --> 00:37:41,390 它做到了123,這是內容 我們創建了上面的數組。 670 00:37:41,390 --> 00:37:45,500 >> 因此,在深入這個foreach循環, 我們有一個可變稱為陣列 671 00:37:45,500 --> 00:37:47,470 這是三個數的陣列。 672 00:37:47,470 --> 00:37:52,120 然後,我們正在做的foreach 陣列為num,迴聲NUM。 673 00:37:52,120 --> 00:37:54,990 而這更 直觀的比對LOP。 674 00:37:54,990 --> 00:38:02,380 我們說,對待每一個 事情的數組NUM中, 675 00:38:02,380 --> 00:38:05,180 我要你給我的NUM。 676 00:38:05,180 --> 00:38:06,640 而這也正是它在做什麼。 677 00:38:06,640 --> 00:38:12,000 >> PHP是計算的 當你說的foreach陣列, 678 00:38:12,000 --> 00:38:16,080 而你處理的是一個數組,什麼 你將要遍歷 679 00:38:16,080 --> 00:38:19,950 是在該陣列中的字符, 在該數組的整數, 680 00:38:19,950 --> 00:38:21,920 是在該數組中的元素。 681 00:38:21,920 --> 00:38:26,110 而且它讓你存儲 這些變量為num, 682 00:38:26,110 --> 00:38:29,360 然後只輸出NUM 馬上而不是說, 683 00:38:29,360 --> 00:38:34,090 我有一個叫我的變量, 那麼我想輸出的strstr [1]。 684 00:38:34,090 --> 00:38:39,130 >> 所以,讓我們做很酷的事情。 685 00:38:39,130 --> 00:38:43,330 基本上一樣,我們沒有創造 這些變量像我的,並盡一切 686 00:38:43,330 --> 00:38:45,090 這個增量的東西在最後。 687 00:38:45,090 --> 00:38:48,290 PHP需要照顧所有這一切為您。 688 00:38:48,290 --> 00:38:54,470 >> 所以,現在讓我們來談談的foreach作為 它適用於我們_GET字典。 689 00:38:54,470 --> 00:38:57,170 因此,我們將快速地註釋了這一點。 690 00:38:57,170 --> 00:39:02,030 因此,我們有我們的_GET數組。 691 00:39:02,030 --> 00:39:04,361 我們有這個變量。 692 00:39:04,361 --> 00:39:05,610 而且它有它的一些東西。 693 00:39:05,610 --> 00:39:10,275 >> 現在,我們只有一個變量 被傳遞到它,這是名稱。 694 00:39:10,275 --> 00:39:13,420 但是,如果我們按Enter鍵,現在 我們可以有兩個變量。 695 00:39:13,420 --> 00:39:17,910 我們可以有姓名和年齡,例如, 如果我們想獲得的年齡,也 696 00:39:17,910 --> 00:39:20,960 一個人的名字,有趣的是。 697 00:39:20,960 --> 00:39:25,690 >> 所以,現在_GET將是一個 字典中有兩個元素, 698 00:39:25,690 --> 00:39:27,980 有兩個關鍵值對。 699 00:39:27,980 --> 00:39:33,490 而第一key--我要去 寫這篇文章一上來就板了。 700 00:39:33,490 --> 00:39:37,136 我們有我們的字典是_GET。 701 00:39:37,136 --> 00:39:39,520 對不起,這是一個有點難以看到。 702 00:39:39,520 --> 00:39:46,690 但是我們的字典裡面,我們有 名字,這將是什麼 703 00:39:46,690 --> 00:39:47,680 我們正在給定的。 704 00:39:47,680 --> 00:39:53,040 我們將有年齡,這也是 將是我們正在思考的東西。 705 00:39:53,040 --> 00:39:56,020 這就是整體 我們的字典中。 706 00:39:56,020 --> 00:39:57,730 >> 所以它有它的兩個元素。 707 00:39:57,730 --> 00:40:01,310 所以,因為的foreach 循環是聰明的,我們 708 00:40:01,310 --> 00:40:04,900 可能會認為,正確 可能會認為的foreach 709 00:40:04,900 --> 00:40:08,080 可以通過這個迭代 字典,打印出 710 00:40:08,080 --> 00:40:10,850 給出姓名和年齡的值。 711 00:40:10,850 --> 00:40:14,510 >> 因此,讓我們其實做到這一點。 712 00:40:14,510 --> 00:40:17,520 讓我們構造一個foreach循環。 713 00:40:17,520 --> 00:40:23,351 而我們要做的_GET的。 714 00:40:23,351 --> 00:40:24,850 而我們要做到以下幾點。 715 00:40:24,850 --> 00:40:34,186 因此,讓我們看看如果我們輸入會發生什麼 只是字,然後說迴聲字。 716 00:40:34,186 --> 00:40:40,540 我們也將呼應新行 這只是為了更​​清晰一點, 717 00:40:40,540 --> 00:40:41,260 這是怎麼回事。 718 00:40:41,260 --> 00:40:42,890 >> 所以,讓我們來看看。 719 00:40:42,890 --> 00:40:44,390 它沒有給我任何錯誤。 720 00:40:44,390 --> 00:40:46,810 我們將關閉此。 721 00:40:46,810 --> 00:40:51,020 在我們的網站,你會做 很多,超過pset7的過程。 722 00:40:51,020 --> 00:40:53,890 所以我們說我的名字叫薩姆。 723 00:40:53,890 --> 00:40:58,560 我的年齡是45。 724 00:40:58,560 --> 00:41:01,060 不是。 725 00:41:01,060 --> 00:41:05,640 但它打印出來,符合市場預期,薩姆45。 726 00:41:05,640 --> 00:41:08,930 >> 所以你會發現, 什麼foreach循環在這裡did--, 727 00:41:08,930 --> 00:41:12,360 讓我們回到那個,所以它的 在board--我們得到_GET的字。 728 00:41:12,360 --> 00:41:15,130 並有四樣東西在_GET。 729 00:41:15,130 --> 00:41:17,410 但只打印出兩件事情。 730 00:41:17,410 --> 00:41:21,290 的foreach,是其智能的自我, 假設我們真正想要的 731 00:41:21,290 --> 00:41:24,100 是數值,而不是鍵。 732 00:41:24,100 --> 00:41:27,800 >> 但有一種方式,我們可以打印 出鍵為好,如果我們想。 733 00:41:27,800 --> 00:41:30,810 如果我們想也知道是什麼 這些變量被稱為, 734 00:41:30,810 --> 00:41:33,540 有一個辦法,我們 可以訪問這一點。 735 00:41:33,540 --> 00:41:36,840 而方式排序做到這一點, 所以我們可以說,讓我們真正 736 00:41:36,840 --> 00:41:39,485 它拆分成鍵值對。 737 00:41:39,485 --> 00:41:42,370 738 00:41:42,370 --> 00:41:47,580 讓我們看看現在發生了什麼。 739 00:41:47,580 --> 00:41:50,550 >> 因此,我們有鑰匙。 740 00:41:50,550 --> 00:41:52,290 我們的價值。 741 00:41:52,290 --> 00:41:56,650 我們有另一個新 行以提高可讀性。 742 00:41:56,650 --> 00:42:00,540 讓我們看看會發生什麼 當我們這樣做了。 743 00:42:00,540 --> 00:42:04,950 744 00:42:04,950 --> 00:42:06,720 我不知道賈森有多老。 745 00:42:06,720 --> 00:42:09,180 Jason的15。 746 00:42:09,180 --> 00:42:11,650 因此,我們有名字傑森,15歲。 747 00:42:11,650 --> 00:42:15,830 所以我們能夠訪問該鍵 和值對本詞典 748 00:42:15,830 --> 00:42:18,590 剛才說的關鍵點值。 749 00:42:18,590 --> 00:42:23,350 這就是一個foreach語法 糖位,使 750 00:42:23,350 --> 00:42:25,960 您訪問在字典中的東西。 751 00:42:25,960 --> 00:42:31,190 >> 因此,希望這種強調 foreach循環的力量。 752 00:42:31,190 --> 00:42:35,690 你幾乎可以扔 事情,似乎可迭代的, 753 00:42:35,690 --> 00:42:38,922 像什麼,有多個 像數組中的元素, 754 00:42:38,922 --> 00:42:41,880 像dictionary--這是兩個 你將要使用的主要的事情 755 00:42:41,880 --> 00:42:45,630 無論是在生活和PSET 7。 756 00:42:45,630 --> 00:42:49,350 所以,你可以扔的東西 它,它會找出 757 00:42:49,350 --> 00:42:51,030 你想用它做什麼。 758 00:42:51,030 --> 00:42:54,250 它會說,好吧,我會得到 這些東西從數據 759 00:42:54,250 --> 00:42:55,680 傳遞給我。 760 00:42:55,680 --> 00:43:02,470 而這,你是什麼 要在PSET 7使用了很多。 761 00:43:02,470 --> 00:43:08,550 >> 我要快速滾動 下來正好看到我在哪裡。 762 00:43:08,550 --> 00:43:11,410 763 00:43:11,410 --> 00:43:13,070 人們是否有在這一點上的問題? 764 00:43:13,070 --> 00:43:13,778 在所有的問題嗎? 765 00:43:13,778 --> 00:43:14,400 是? 766 00:43:14,400 --> 00:43:18,320 >> 聽眾:所以與鍵和值, 你能說出它什麼都重要 767 00:43:18,320 --> 00:43:20,507 它仍然工作? 768 00:43:20,507 --> 00:43:21,090 演講嘉賓:哎呀。 769 00:43:21,090 --> 00:43:22,820 哇,我完全刪除整條生產線。 770 00:43:22,820 --> 00:43:23,380 做得好。 771 00:43:23,380 --> 00:43:26,502 所以,一個。 772 00:43:26,502 --> 00:43:30,109 鍵和值僅僅是一個慣例。 773 00:43:30,109 --> 00:43:30,650 這是有幫助的。 774 00:43:30,650 --> 00:43:34,010 你會得到一些設計 點,也許有些造型加分 775 00:43:34,010 --> 00:43:36,970 這樣做,因為這 真正傳達的意圖。 776 00:43:36,970 --> 00:43:39,650 但是,我們說和yarp。 777 00:43:39,650 --> 00:43:42,476 >> 聽眾:你不必 在HTML文件中改變什麼 778 00:43:42,476 --> 00:43:43,607 為了反映? 779 00:43:43,607 --> 00:43:44,440 演講嘉賓:不是。 780 00:43:44,440 --> 00:43:47,260 聽眾:它只是知道 因為等於更大的than-- 781 00:43:47,260 --> 00:43:47,801 演講嘉賓:是的。 782 00:43:47,801 --> 00:43:49,489 聽眾:那that's-- --that指標 783 00:43:49,489 --> 00:43:50,030 演講嘉賓:是的。 784 00:43:50,030 --> 00:43:52,260 這是一個foreach語法,惟命是從。 785 00:43:52,260 --> 00:43:53,720 >> 聽眾:有沒有類型。 786 00:43:53,720 --> 00:43:57,230 所以,如果你想要的是什麼 年齡只是一個數字? 787 00:43:57,230 --> 00:43:59,510 有沒有辦法做到這一點? 788 00:43:59,510 --> 00:44:04,550 >> 演講嘉賓:有辦法檢查 變量符合一定的類型。 789 00:44:04,550 --> 00:44:08,482 所以PHP請求從多一點 你因為沒有類型研究。 790 00:44:08,482 --> 00:44:09,440 某些方面,它要求較少。 791 00:44:09,440 --> 00:44:11,070 在某些方面,它要求更多。 792 00:44:11,070 --> 00:44:13,320 因為如果你剛 東西在變, 793 00:44:13,320 --> 00:44:14,960 你不知道它是什麼類型。 794 00:44:14,960 --> 00:44:19,310 但是,如果你是聰明的變量 您分配類型,並確保 795 00:44:19,310 --> 00:44:22,750 該功能僅return--您 要功能只返回 796 00:44:22,750 --> 00:44:26,210 一種類型的值,以便 你基本上可以 797 00:44:26,210 --> 00:44:31,090 預計該變量你回來 從函數將是類型 798 00:44:31,090 --> 00:44:32,780 你覺得會,基本上是這樣。 799 00:44:32,780 --> 00:44:36,550 >> 但也有一些方法 通過它,你可以檢查。 800 00:44:36,550 --> 00:44:39,801 我不記得他們 從我的頭頂。 801 00:44:39,801 --> 00:44:43,300 我等著它變成藍色。 802 00:44:43,300 --> 00:44:45,560 isint? 803 00:44:45,560 --> 00:44:48,070 ISSTR? 804 00:44:48,070 --> 00:44:52,000 有方法 內置入PHP可以 805 00:44:52,000 --> 00:44:54,440 檢查你的變量的類型。 806 00:44:54,440 --> 00:44:58,250 但是,如果您分配變量 聰明,你不應該 807 00:44:58,250 --> 00:45:01,330 要做到這一點太多PSET 7。 808 00:45:01,330 --> 00:45:02,780 但這些方法確實存在。 809 00:45:02,780 --> 00:45:06,704 而這件事情, 在語言本身。 810 00:45:06,704 --> 00:45:08,370 我不記得確切的語法。 811 00:45:08,370 --> 00:45:09,930 我們甚至可以查找。 812 00:45:09,930 --> 00:45:11,974 但是,時間是至關重要的。 813 00:45:11,974 --> 00:45:13,890 有沒有任何其他人 有什麼問題嗎? 814 00:45:13,890 --> 00:45:14,660 是。 815 00:45:14,660 --> 00:45:15,951 >> 聽眾:我只有一個了。 816 00:45:15,951 --> 00:45:19,050 所以你提到的GET方法,但 你沒有提到的POST方法。 817 00:45:19,050 --> 00:45:20,500 難道我們回來了嗎? 818 00:45:20,500 --> 00:45:21,540 >> 演講嘉賓:是的,我們將 可回來了。 819 00:45:21,540 --> 00:45:24,840 這正是我一直在尋找 在我的電話,現在睡著了, 820 00:45:24,840 --> 00:45:26,960 但我會找到的。 821 00:45:26,960 --> 00:45:30,680 只是確保我們打 所有的PHP筆記。 822 00:45:30,680 --> 00:45:35,640 是的,沒有調試版本。 823 00:45:35,640 --> 00:45:41,940 是的,我們有一些更多的東西, 我們現在要做到這一點。 824 00:45:41,940 --> 00:45:45,980 >> 因此,談到POST, 你所提到的, 825 00:45:45,980 --> 00:45:49,630 唯一的區別 之間的GET和POST是 826 00:45:49,630 --> 00:45:53,150 該記得,當我們看著 在此URL,我們看到,哦, 827 00:45:53,150 --> 00:45:58,270 名等於和年齡等於yarp 是正確的網址為我們那裡。 828 00:45:58,270 --> 00:46:03,300 POST是多了幾分神秘的 其傳遞的信息。 829 00:46:03,300 --> 00:46:08,090 >> 所以,如果你不想用戶 要知道,比如說你 830 00:46:08,090 --> 00:46:11,160 不想用戶名 和該人的口令 831 00:46:11,160 --> 00:46:15,080 當前登錄到顯示在 的URL,這是一個合理的事 832 00:46:15,080 --> 00:46:17,770 到不希望在URL, 因為對方能看到它。 833 00:46:17,770 --> 00:46:21,520 如果有人鏈接到一個網頁,你 不希望自己的網址貼滿了那裡, 834 00:46:21,520 --> 00:46:27,850 因為這將讓人們登錄 只是一個URL的粘貼,而不是 835 00:46:27,850 --> 00:46:29,670 實際上填寫表格。 836 00:46:29,670 --> 00:46:31,710 POST是有點更隱秘。 837 00:46:31,710 --> 00:46:34,150 >> 而唯一的東西, 我們必須改變 838 00:46:34,150 --> 00:46:38,550 此方法,改變 從得到張貼。 839 00:46:38,550 --> 00:46:42,367 然後在HTTP裡面,而不是 訪問陣列_GET的, 840 00:46:42,367 --> 00:46:43,950 我們要訪問陣列_POST。 841 00:46:43,950 --> 00:46:48,600 >> 我們會發現,如果 我們打開這再度回升, 842 00:46:48,600 --> 00:46:51,910 傑森緩慢下降的年齡。 843 00:46:51,910 --> 00:46:53,230 傑森的名字,14歲。 844 00:46:53,230 --> 00:46:54,280 同樣的東西彈出。 845 00:46:54,280 --> 00:46:57,190 但我們去的網址, 這些變量不存在。 846 00:46:57,190 --> 00:47:00,540 >> 而方式POST passes--所以要記住 847 00:47:00,540 --> 00:47:02,750 如何看待一個頁面的源代碼。 848 00:47:02,750 --> 00:47:04,570 我們去到網絡。 849 00:47:04,570 --> 00:47:06,920 我們刷新。 850 00:47:06,920 --> 00:47:10,690 這是另一件事, POST將要給大家介紹的警告。 851 00:47:10,690 --> 00:47:15,050 你可能已經看到了一個箱子,一個文本 盒這樣的瀏覽器。 852 00:47:15,050 --> 00:47:18,170 你確定你想 再次發送的一種形式? 853 00:47:18,170 --> 00:47:21,170 POST是的發送這些表格。 854 00:47:21,170 --> 00:47:24,680 >> 因為基本上,如果你發送的 信用卡信息的人, 855 00:47:24,680 --> 00:47:26,350 這不是要顯示在URL。 856 00:47:26,350 --> 00:47:28,180 這將是一個POST請求。 857 00:47:28,180 --> 00:47:32,905 所以,當你刷新頁面, 它重新發送POST請求。 858 00:47:32,905 --> 00:47:35,530 所以,現在我們確實想發送 再次形成,因為它不會 859 00:47:35,530 --> 00:47:37,340 創建任何重複購買。 860 00:47:37,340 --> 00:47:41,160 >> 我們會發現,到這裡, 我們使用的方法是POST。 861 00:47:41,160 --> 00:47:43,065 它確實傳輸字節。 862 00:47:43,065 --> 00:47:45,460 它轉移其中的401。 863 00:47:45,460 --> 00:47:47,190 計劃漂亮的渺小。 864 00:47:47,190 --> 00:47:51,600 但是,沒有什麼地方,我們可以看到 正在傳遞的值。 865 00:47:51,600 --> 00:47:59,540 該網頁本身可以看出, 但我們作為用戶不能夠看到, 866 00:47:59,540 --> 00:48:01,650 除非你是一個黑客。 867 00:48:01,650 --> 00:48:05,340 如果你是一個優秀的黑客,你可以看看。 868 00:48:05,340 --> 00:48:09,360 >> 如果你知道基本 在HTML格式, 869 00:48:09,360 --> 00:48:11,790 該值將 自己在頁面知。 870 00:48:11,790 --> 00:48:13,160 你就可以看到。 871 00:48:13,160 --> 00:48:16,720 該值將在那裡,他們是 只是一個小的你不太明顯 872 00:48:16,720 --> 00:48:19,522 訪問,基本上是這樣。 873 00:48:19,522 --> 00:48:23,620 >> 我們有更多的 有關GET,POST問題 874 00:48:23,620 --> 00:48:26,800 before--就是我們接下來要做 實際上是看一些代碼 875 00:48:26,800 --> 00:48:30,837 那你給pset中7,說說 它如何使用這些概念, 876 00:48:30,837 --> 00:48:32,670 而談 東西,你會 877 00:48:32,670 --> 00:48:35,090 有做的pset 7一點點。 878 00:48:35,090 --> 00:48:36,760 在此之前,還有什麼問題嗎? 879 00:48:36,760 --> 00:48:38,047 你們更多的問題有哪些? 880 00:48:38,047 --> 00:48:41,250 881 00:48:41,250 --> 00:48:41,840 大。 882 00:48:41,840 --> 00:48:45,370 >> 好吧,讓我們來看看 在PSET 7一點點, 883 00:48:45,370 --> 00:48:49,530 毫無疑問,你是什麼 所有最激動的。 884 00:48:49,530 --> 00:48:52,126 885 00:48:52,126 --> 00:48:54,750 我的意思是,這是一件 大衛經過一點點。 886 00:48:54,750 --> 00:49:00,890 但是,我們必須在三個目錄 頂部,以及一個配置文件。 887 00:49:00,890 --> 00:49:04,650 這對數據庫,我們將 在大約五分鐘談。 888 00:49:04,650 --> 00:49:07,220 包括,你永遠需要 看此目錄中 889 00:49:07,220 --> 00:49:12,480 如果你不想,但它是很好的 知道有各種各樣的幫手。 890 00:49:12,480 --> 00:49:14,210 助手就像是有幫助的功能。 891 00:49:14,210 --> 00:49:18,120 然後我們有配置, 其中設置一些東西了。 892 00:49:18,120 --> 00:49:24,590 >> 有一些功能CS50具有 撰文指出,在助手和配置。 893 00:49:24,590 --> 00:49:27,250 而一些PHP的那 已經存在的文件 894 00:49:27,250 --> 00:49:30,880 會做很多更幾分 為您的鈍專家組的工作。 895 00:49:30,880 --> 00:49:35,250 就像如果我們進入公眾 的login.php,這是什麼 896 00:49:35,250 --> 00:49:38,350 顯示了權當你進入PSET 7。 897 00:49:38,350 --> 00:49:40,580 我們會看到有 這需要聲明。 898 00:49:40,580 --> 00:49:43,420 這有點像 犀利包括,包括hashtag 899 00:49:43,420 --> 00:49:46,850 包括如果你是一個新的一代。 900 00:49:46,850 --> 00:49:49,740 但是,這基本上 說我需要訪問 901 00:49:49,740 --> 00:49:52,260 要在config.php所有功能。 902 00:49:52,260 --> 00:49:55,290 你可以有一個要求 對於各種各樣的其他東西。 903 00:49:55,290 --> 00:49:59,670 >> 配置實際上需要幫手。 904 00:49:59,670 --> 00:50:02,490 所以每當你需要 配置,你也 905 00:50:02,490 --> 00:50:05,660 其中,也不需要助手為好。 906 00:50:05,660 --> 00:50:09,590 這樣,您可以訪問所有的 很酷的功能,我們要使用, 907 00:50:09,590 --> 00:50:10,420 事情喜歡渲染。 908 00:50:10,420 --> 00:50:13,490 實際上,我來緩解 下來一點點。 909 00:50:13,490 --> 00:50:16,280 所以,函數,那麼我們是 要穿行 910 00:50:16,280 --> 00:50:22,380 就在我們移動到SQL一點 位是login.php中的功能,只是 911 00:50:22,380 --> 00:50:26,586 因為它使用的一些話題 我們剛才談到了PHP。 912 00:50:26,586 --> 00:50:30,840 >> 你看到的第一件事情是,如果$ _ SERVER。 913 00:50:30,840 --> 00:50:34,500 這又是一個全局變量, 你將要處理。 914 00:50:34,500 --> 00:50:38,460 這就像_GET和_POST,但什麼 服務器包含在這可以讓你 915 00:50:38,460 --> 00:50:42,730 知道如果請求方法 是一個GET或​​POST的。 916 00:50:42,730 --> 00:50:47,250 就像以前我們在做什麼 就在我們的代碼,我們寫的, 917 00:50:47,250 --> 00:50:51,880 我們只是改變它是GET和 POST取決於什麼HTML有。 918 00:50:51,880 --> 00:50:55,120 但也有可能的頁面 與這兩種類型的請求訪問。 919 00:50:55,120 --> 00:50:57,410 你可能想要做的 根據不同的事情 920 00:50:57,410 --> 00:50:59,740 上的請求的類型, 就像登錄一樣。 921 00:50:59,740 --> 00:51:04,400 >> 所以,你可以檢查的要求 通過訪問密鑰的方法, 922 00:51:04,400 --> 00:51:08,630 通過使用鍵和獲取 東西在字典中的價值 923 00:51:08,630 --> 00:51:10,260 _服務器。 924 00:51:10,260 --> 00:51:13,800 所以這是另一次全球 變像_GET和_POST。 925 00:51:13,800 --> 00:51:16,990 >> 如果我們得到,我們要 呈現登錄表單。 926 00:51:16,990 --> 00:51:21,920 渲染是一個函數,基本上 剛搭設相應的HTML 927 00:51:21,920 --> 00:51:24,500 並將其傳遞一些參數。 928 00:51:24,500 --> 00:51:28,740 這個稱號是一個參數,它是 在顯示,奇怪的是使用, 929 00:51:28,740 --> 00:51:32,670 網頁中的標題 問題的東西在這裡, 930 00:51:32,670 --> 00:51:34,850 說還是招呼我們上面的例子。 931 00:51:34,850 --> 00:51:36,100 現在我們有一個不同的東西。 932 00:51:36,100 --> 00:51:38,570 否則,如果它的文章中,我們 做一些其他的東西。 933 00:51:38,570 --> 00:51:40,790 我們使用的空方法。 934 00:51:40,790 --> 00:51:42,750 它是不存在的,它是空的。 935 00:51:42,750 --> 00:51:45,440 而且我們看到之前,PHP 有建相當數量的 936 00:51:45,440 --> 00:51:52,370 在方法大衛will--如果有 是那些對你有用的方法, 937 00:51:52,370 --> 00:51:55,560 他們會提醒你 通過大衛走 938 00:51:55,560 --> 00:51:59,770 給出一開始概述, 也Zamyla的有益位。 939 00:51:59,770 --> 00:52:01,040 她回來了每一個人。 940 00:52:01,040 --> 00:52:03,100 我們都感到歡欣鼓舞。 941 00:52:03,100 --> 00:52:06,530 道歉是適當命名的功能 這基本上只是打印出 942 00:52:06,530 --> 00:52:10,130 一些錯誤消息, 因為CS50很有禮貌。 943 00:52:10,130 --> 00:52:14,770 >> 而現在這個,這是一個 因為這有點棘手 944 00:52:14,770 --> 00:52:16,697 在這裡我們要查詢數據庫。 945 00:52:16,697 --> 00:52:18,280 現在,我們還沒有談到數據庫。 946 00:52:18,280 --> 00:52:22,220 而我們將在接下來的 五分鐘左右,最大。 947 00:52:22,220 --> 00:52:24,980 但是,這是一個函數 這CS50寫 948 00:52:24,980 --> 00:52:38,050 從數據庫獲取表基本 我們正在pset中7個有。 949 00:52:38,050 --> 00:52:40,860 我真的很糟糕我 零索引今天。 950 00:52:40,860 --> 00:52:42,060 但是,是的,這是7。 951 00:52:42,060 --> 00:52:46,340 >> 因此,查詢它會返回一個 陣列,主要是鍵位。 952 00:52:46,340 --> 00:52:54,130 而且因為這些東西沒有 打字,所以行是一個數組的數組。 953 00:52:54,130 --> 00:52:59,480 因為當我們正在考慮 一個表,我們將做什麼 954 00:52:59,480 --> 00:53:04,830 是,當你在pset中了解到 喜歡遊戲的15,反正 955 00:53:04,830 --> 00:53:06,990 在這裡你不得不使用 雙陣列,我們基本上 956 00:53:06,990 --> 00:53:15,210 還有其他的數組 陣列來生成表。 957 00:53:15,210 --> 00:53:18,150 而且你有行和列。 958 00:53:18,150 --> 00:53:24,450 然後你就可以訪問它們像 [0] [1],你得到的[0] [1]。 959 00:53:24,450 --> 00:53:26,900 基本的東西一樣。 960 00:53:26,900 --> 00:53:29,380 >> 所以,我們在做什麼 這裡在此功能, 961 00:53:29,380 --> 00:53:35,070 我們要求數據庫 如果用戶那 962 00:53:35,070 --> 00:53:40,200 試圖登錄,這將是 通過POST方法發送。 963 00:53:40,200 --> 00:53:43,950 我們會看到我們得到 用戶名從彥博。 964 00:53:43,950 --> 00:53:46,900 他們將有發送,用戶 或者你會送一個價值 965 00:53:46,900 --> 00:53:50,750 穿過POST一個形式,因為 它的用戶名和密碼的東西。 966 00:53:50,750 --> 00:53:54,830 我們正在檢查用戶名 看,這是在表中? 967 00:53:54,830 --> 00:53:58,070 因為,如果用戶正在記錄 在,那麼他們的用戶名 968 00:53:58,070 --> 00:54:03,320 應存儲在的表 存在此網站的用戶。 969 00:54:03,320 --> 00:54:09,360 所以基本上,如果 用戶是在數據庫中, 970 00:54:09,360 --> 00:54:16,400 查詢是否會返回 該行,這是一個數組。 971 00:54:16,400 --> 00:54:24,560 >> 但棘手的問題是,如果即使 雙陣列只有一行, 972 00:54:24,560 --> 00:54:31,900 即使它是一個行array-- 就像你有basically-- 973 00:54:31,900 --> 00:54:36,900 如果你有一個大小為一數組 這是抱著另一個數組, 974 00:54:36,900 --> 00:54:38,940 你真的處理的一列。 975 00:54:38,940 --> 00:54:41,420 但它仍然是處理 就像一個雙陣列。 976 00:54:41,420 --> 00:54:44,560 >> 而這正是它有時可以得到 棘手的,因為現在我們得到的行。 977 00:54:44,560 --> 00:54:46,440 我們的變量行。 978 00:54:46,440 --> 00:54:48,590 然後我們要創建 一個新的變量叫做行 979 00:54:48,590 --> 00:54:51,450 並將其設置等於 行的第一行。 980 00:54:51,450 --> 00:54:55,150 而且你會發現,意見 說,這是第一個也是唯一的行。 981 00:54:55,150 --> 00:54:57,080 >> 因此,這是很棘手 部分在哪裡,現在功能 982 00:54:57,080 --> 00:54:59,660 可以返回數組非常容易。 983 00:54:59,660 --> 00:55:01,270 這裡沒有mallocs。 984 00:55:01,270 --> 00:55:02,280 你不會看到mallocs。 985 00:55:02,280 --> 00:55:03,940 所以你不會看到賽格故障。 986 00:55:03,940 --> 00:55:08,380 但是功能仍然會通過 圍繞陣列和數據分組。 987 00:55:08,380 --> 00:55:12,250 而且你必須要警惕的是什麼 正是你的函數將返回。 988 00:55:12,250 --> 00:55:15,160 即使它的One 類似這樣的專欄,查詢 989 00:55:15,160 --> 00:55:17,520 仍然會返回一個雙陣列。 990 00:55:17,520 --> 00:55:21,390 因此,要訪問該column--或者您 能想到這一切作為倒 991 00:55:21,390 --> 00:55:22,870 因為我們正在談論的行。 992 00:55:22,870 --> 00:55:26,810 但訪問一行, 你不能只是說行。 993 00:55:26,810 --> 00:55:31,540 即使是一排,你必須 樣的不rowsrows [0]來消除這種 994 00:55:31,540 --> 00:55:37,360 陣列的外位和 剛才你一行。 995 00:55:37,360 --> 00:55:38,342 >> 做一些其他的事情。 996 00:55:38,342 --> 00:55:40,050 有一個函數 所謂password_verify 997 00:55:40,050 --> 00:55:42,980 這驗證 密碼被張貼。 998 00:55:42,980 --> 00:55:48,500 然後,我們看到另一個全球 可變這裡,_SESSION。 999 00:55:48,500 --> 00:55:51,340 基本會話ID 你是怎麼保持跟踪 1000 00:55:51,340 --> 00:55:53,990 如果有人登錄與否。 1001 00:55:53,990 --> 00:55:58,590 所以現在用的login.php, 我們正在登錄的用戶。 1002 00:55:58,590 --> 00:56:01,920 所以我們想要做的是我們要 說會話ID是等於行 1003 00:56:01,920 --> 00:56:05,890 ID,這很有道理,因為 每一行都會有不同的ID 1004 00:56:05,890 --> 00:56:07,239 號作為表的一部分。 1005 00:56:07,239 --> 00:56:09,280 我們將進入SQL中 第二,因此,如果任何的這 1006 00:56:09,280 --> 00:56:13,500 似乎是胡說一點點, 那麼一切都將被清除了。 1007 00:56:13,500 --> 00:56:18,450 但是,我們要設置id等於 正確的事情,登錄用戶。 1008 00:56:18,450 --> 00:56:20,530 很抱歉,如果有什麼差錯。 1009 00:56:20,530 --> 00:56:27,600 這是在登錄的目的 生活馬蘭教授會說。 1010 00:56:27,600 --> 00:56:29,130 >> 所以這是的login.php。 1011 00:56:29,130 --> 00:56:33,750 和很多你寫的PHP代碼 在PSET 7,他們會一點點。 1012 00:56:33,750 --> 00:56:36,470 不要忘記chmod命令 適當的權限。 1013 00:56:36,470 --> 00:56:40,180 將有大約一點點 在規格中的開頭。 1014 00:56:40,180 --> 00:56:46,382 >> 但是,你的PHP 寫入將是 1015 00:56:46,382 --> 00:56:47,840 做的東西,這與此類似。 1016 00:56:47,840 --> 00:56:49,715 你會成為 訪問一些事情, 1017 00:56:49,715 --> 00:56:52,760 在是給你 PHP的全局變量 1018 00:56:52,760 --> 00:56:56,105 正在處理當前 登錄的用戶,是否有 1019 00:56:56,105 --> 00:57:00,460 有發送到這個被請求 頁上,這樣的不同的東西。 1020 00:57:00,460 --> 00:57:05,790 它也將是潛在的 迭代通過行的這件事情。 1021 00:57:05,790 --> 00:57:09,010 >> 在一個不同的功能,查詢 不會返回這雙陣列。 1022 00:57:09,010 --> 00:57:11,450 如果有更多的 比中已有一個行, 1023 00:57:11,450 --> 00:57:15,080 如果有are--是,如果有 在它超過一個的行, 1024 00:57:15,080 --> 00:57:16,870 那麼這將是一個表。 1025 00:57:16,870 --> 00:57:20,500 你可能要遍歷 在這個數組中使用的行 1026 00:57:20,500 --> 00:57:22,860 我們描述的foreach循環。 1027 00:57:22,860 --> 00:57:30,270 >> 所以,如果你做的foreach上雙 陣列,會出現什麼word--在這裡, 1028 00:57:30,270 --> 00:57:31,909 我其實寫。 1029 00:57:31,909 --> 00:57:32,950 我會寫它很快在這裡。 1030 00:57:32,950 --> 00:57:44,280 >> 如果我們有行一個foreach 為行,什麼是行的類型? 1031 00:57:44,280 --> 00:57:45,390 有誰知道? 1032 00:57:45,390 --> 00:57:54,000 1033 00:57:54,000 --> 00:57:54,500 你說對了? 1034 00:57:54,500 --> 00:57:57,110 因此,行是一個雙陣列。 1035 00:57:57,110 --> 00:58:02,810 那麼,什麼是的foreach去推斷 我們從該雙陣列希望 1036 00:58:02,810 --> 00:58:04,280 如果我們遍歷了嗎? 1037 00:58:04,280 --> 00:58:07,170 1038 00:58:07,170 --> 00:58:10,770 我們基本可以假定, 這將是兩種元素, 1039 00:58:10,770 --> 00:58:14,970 或行或列,基本上是這樣。 1040 00:58:14,970 --> 00:58:18,740 所以行和列的我們 可以當作一回事。 1041 00:58:18,740 --> 00:58:23,880 >> 基本上什麼foreach循環是怎麼回事 做的是它會返回行。 1042 00:58:23,880 --> 00:58:28,500 行會是類型行的, 而行是一個雙陣列。 1043 00:58:28,500 --> 00:58:32,290 所以,如果你給的foreach 雙陣列,它的 1044 00:58:32,290 --> 00:58:35,830 不會迭代 不止一層。 1045 00:58:35,830 --> 00:58:44,464 這基本上是,如果說有 八個細胞在這個table-- 1,2, 1046 00:58:44,464 --> 00:58:48,110 3 4,5,6,7,8-所述 foreach循環不 1047 00:58:48,110 --> 00:58:51,880 要去通過每個這些細胞。 1048 00:58:51,880 --> 00:58:56,390 什麼foreach循環會做 是它會經過此行, 1049 00:58:56,390 --> 00:58:57,870 給你這個整行。 1050 00:58:57,870 --> 00:58:59,410 然後它會通過該行。 1051 00:58:59,410 --> 00:59:01,850 >> 因此,它只能迭代一層。 1052 00:59:01,850 --> 00:59:05,310 如果添加了嵌套 foreach循環,那麼你 1053 00:59:05,310 --> 00:59:16,280 可以把從返回的每一行 行,你做的foreach行作為元素, 1054 00:59:16,280 --> 00:59:17,640 比如說。 1055 00:59:17,640 --> 00:59:22,750 然後你可以呼應的元素。 1056 00:59:22,750 --> 00:59:24,930 所以這是一個簡單的 如何少進修 1057 00:59:24,930 --> 00:59:30,220 你可能會使用的foreach 循環中的查詢的上下文。 1058 00:59:30,220 --> 00:59:32,840 >> 是否有關於PHP什麼問題? 1059 00:59:32,840 --> 00:59:36,520 任何事情之前都我們 轉移到談論的SQL 1060 00:59:36,520 --> 00:59:37,820 和數據庫的樂趣? 1061 00:59:37,820 --> 00:59:41,480 1062 00:59:41,480 --> 00:59:42,110 感覺不錯? 1063 00:59:42,110 --> 00:59:42,750 感覺不錯。 1064 00:59:42,750 --> 00:59:43,470 好吧。 1065 00:59:43,470 --> 00:59:49,130 >> 讓我們在回移到 PowerPoint中,您可能會錯過。 1066 00:59:49,130 --> 00:59:51,800 SQL,耶。 1067 00:59:51,800 --> 00:59:57,900 人們誰是我的部分典型 就知道縮略詞的副標題 1068 00:59:57,900 --> 01:00:01,220 永遠只是第一個字 我認為,比賽的 1069 01:00:01,220 --> 01:00:02,690 算法 - 這首字母縮寫。 1070 01:00:02,690 --> 01:00:04,090 這不是一種算法。 1071 01:00:04,090 --> 01:00:08,050 >> 因此,SQL是一種數據庫。 1072 01:00:08,050 --> 01:00:11,060 它是一種語言, 適用於數據庫。 1073 01:00:11,060 --> 01:00:14,440 並且所有數據庫都為 表,至少在方式 1074 01:00:14,440 --> 01:00:17,220 該SQL代表他們。 1075 01:00:17,220 --> 01:00:23,610 >> 另一種方式來思考數據庫是 數據庫是一組鍵和值 1076 01:00:23,610 --> 01:00:24,110 基本上。 1077 01:00:24,110 --> 01:00:29,530 你可以想想一個數據庫 一個詞典,也可以作為表。 1078 01:00:29,530 --> 01:00:34,300 基本上這是一個方法,關聯 不同的數據與其他數據, 1079 01:00:34,300 --> 01:00:36,270 常常通過行和列。 1080 01:00:36,270 --> 01:00:38,470 這就是方式 這是SQL效果最好。 1081 01:00:38,470 --> 01:00:40,880 >> 因此,這是一個表的一個例子。 1082 01:00:40,880 --> 01:00:44,610 我有幾個例子 人在我的部分,它 1083 01:00:44,610 --> 01:00:45,970 我沒有時間來改變。 1084 01:00:45,970 --> 01:00:52,020 但是,我們已經有了像ID, 名,超級大國,和家鄉。 1085 01:00:52,020 --> 01:00:54,100 我不知道任何人的 從我的部分, 1086 01:00:54,100 --> 01:00:56,266 所以我只是要承擔 每個人從紐約 1087 01:00:56,266 --> 01:00:59,370 市,因為我有很高的統計學 可能性是正確的。 1088 01:00:59,370 --> 01:01:04,200 >> SQL會自動取 關心你的ID列。 1089 01:01:04,200 --> 01:01:07,560 如果您插入新行 成一個SQL數據庫, 1090 01:01:07,560 --> 01:01:09,700 這將增加的 ID號和剛 1091 01:01:09,700 --> 01:01:14,890 基本上堅持到五的名字, 超級大國的故鄉,誰就 1092 01:01:14,890 --> 01:01:16,430 到該表的末端。 1093 01:01:16,430 --> 01:01:19,160 所以,ID是一列,你會 永遠不用擔心。 1094 01:01:19,160 --> 01:01:22,770 但是,像在的情況下 login.php中,當我們 1095 01:01:22,770 --> 01:01:26,610 都拿到會話ID 從表中,只是用ID, 1096 01:01:26,610 --> 01:01:30,320 ID是一種方法,唯一地標識 一個數據庫中的一個元素。 1097 01:01:30,320 --> 01:01:34,980 >> 因此,如果我們有兩個薩姆斯,兩者的 這本書教會了CS50,以及兩者的誰 1098 01:01:34,980 --> 01:01:39,370 來自密爾沃基,那些會 還是有不同的ID號 1099 01:01:39,370 --> 01:01:43,420 因而是不同的 表中的情況下。 1100 01:01:43,420 --> 01:01:48,700 因此,這是SQL正在處理 有,在後端工作。 1101 01:01:48,700 --> 01:01:54,160 >> 現在,這些都是四個命令 ,你需要使用SQL工作。 1102 01:01:54,160 --> 01:01:56,390 而我把它們全部在一個幻燈片。 1103 01:01:56,390 --> 01:01:59,530 但是,我們要經過 他們都分別。 1104 01:01:59,530 --> 01:02:03,300 >> 第一個命令是UPDATE, 這不,你可能期望。 1105 01:02:03,300 --> 01:02:07,240 說你有一些數據 該表是過時了。 1106 01:02:07,240 --> 01:02:09,470 如果你保存像 賽道人的名字 1107 01:02:09,470 --> 01:02:13,350 和年齡,如果誰家 年齡的增長,那麼 1108 01:02:13,350 --> 01:02:18,590 你會想進去, 更新只是人的年齡。 1109 01:02:18,590 --> 01:02:21,902 對於工作的例子 我們的第一個table-- 1110 01:02:21,902 --> 01:02:24,610 不用擔心寫的是 這些命令在同一時間。 1111 01:02:24,610 --> 01:02:27,640 但是,如果你有更新了, 這將有利於這部分, 1112 01:02:27,640 --> 01:02:29,790 因為我們要 回到表。 1113 01:02:29,790 --> 01:02:33,920 >> 因此,如果我們回到桌子上, 比方說,事情發生 1114 01:02:33,920 --> 01:02:38,480 在發生地震或 斷層線直接拆分 1115 01:02:38,480 --> 01:02:39,920 通過紐約市。 1116 01:02:39,920 --> 01:02:45,130 我們想更新大家 誰住在紐約市。 1117 01:02:45,130 --> 01:02:49,670 他們都不得不搬到賓夕法尼亞州。 1118 01:02:49,670 --> 01:02:51,130 這不是一個故鄉。 1119 01:02:51,130 --> 01:02:53,180 他們都不得不搬到紐黑文。 1120 01:02:53,180 --> 01:02:54,030 在那裡,我們走了。 1121 01:02:54,030 --> 01:02:57,630 所以每個人都在紐約 移動到紐黑文。 1122 01:02:57,630 --> 01:03:01,300 >> 而這樣的東西,是 編輯該表中三行。 1123 01:03:01,300 --> 01:03:04,716 但在SQL中,你可以做 在短短一個語句。 1124 01:03:04,716 --> 01:03:05,715 因此,我們重新更新。 1125 01:03:05,715 --> 01:03:09,670 讓我再次快速擦除這款主板。 1126 01:03:09,670 --> 01:03:14,570 當我們談論 更新,有 1127 01:03:14,570 --> 01:03:17,640 一些部件是關鍵的語法。 1128 01:03:17,640 --> 01:03:19,770 好了,所有的語法是關鍵。 1129 01:03:19,770 --> 01:03:22,210 但在綠色的東西是可選的。 1130 01:03:22,210 --> 01:03:25,680 白是必需的, 像預定義的名字。 1131 01:03:25,680 --> 01:03:30,750 而淡藍色的事情 根據表而變化。 1132 01:03:30,750 --> 01:03:34,640 所以,這就是同回事 配色方案在這裡,那裡。 1133 01:03:34,640 --> 01:03:40,250 >> 因此,如果我們要更新只是那些行 誰住在紐約的人, 1134 01:03:40,250 --> 01:03:43,490 所以我們想,如果我們說的更新呢? 1135 01:03:43,490 --> 01:03:46,320 因此,表是我們放 我們的表的名稱。 1136 01:03:46,320 --> 01:03:49,170 遠的不說名字 我們的表是表中的一個。 1137 01:03:49,170 --> 01:03:52,515 因此,我們要更新表之一。 1138 01:03:52,515 --> 01:03:57,470 我們要set-- 我們需要什麼設置? 1139 01:03:57,470 --> 01:04:05,160 好了,我們想說的是,這麼column-- PHP 把行作為唯一標識符。 1140 01:04:05,160 --> 01:04:07,930 然後列 不同領域 1141 01:04:07,930 --> 01:04:09,940 的數據庫的那些元件。 1142 01:04:09,940 --> 01:04:14,210 >> 這樣的數據庫的第一元件 有山,CS50的超級大國的名字, 1143 01:04:14,210 --> 01:04:16,210 和雄鹿的故鄉。 1144 01:04:16,210 --> 01:04:20,710 所以如果我們所說的設置,讓我們來看看 再參數設定需要。 1145 01:04:20,710 --> 01:04:23,880 我們有列等於價值。 1146 01:04:23,880 --> 01:04:27,290 因此,我們要說出一些 column--這記 1147 01:04:27,290 --> 01:04:31,850 是field--我們希望看到一個 字段等於新的東西。 1148 01:04:31,850 --> 01:04:42,340 >> 因此,如果我們剛才說的更新 表1,設置名稱等於艾略特。 1149 01:04:42,340 --> 01:04:46,310 得到一些人的 在這個新的章節。 1150 01:04:46,310 --> 01:04:51,540 但是,如果我們只是做了更新表1 集名稱相同艾略特,會是什麼 1151 01:04:51,540 --> 01:04:55,530 該表的樣子之後呢? 1152 01:04:55,530 --> 01:04:56,410 人們有什麼想法? 1153 01:04:56,410 --> 01:04:59,710 1154 01:04:59,710 --> 01:05:00,210 是啊。 1155 01:05:00,210 --> 01:05:03,195 >> 聽眾:一切都在那 行會成為埃利奧特。 1156 01:05:03,195 --> 01:05:04,570 演講嘉賓:這行的一切嗎? 1157 01:05:04,570 --> 01:05:06,067 聽眾:在第一行中。 1158 01:05:06,067 --> 01:05:07,150 揚聲器:在第一行? 1159 01:05:07,150 --> 01:05:09,724 為什麼第一排? 1160 01:05:09,724 --> 01:05:10,890 我不是說要接你。 1161 01:05:10,890 --> 01:05:13,287 >> 聽眾:也許一切 在整個表? 1162 01:05:13,287 --> 01:05:15,120 演講嘉賓:一切 整個表,是的。 1163 01:05:15,120 --> 01:05:19,520 這是完全正確的因為 - 我 剛剛幫你出一點點 1164 01:05:19,520 --> 01:05:22,650 那裡 - 因為我們忽略 可選的WHERE子句。 1165 01:05:22,650 --> 01:05:27,260 如果你沒有在WHERE 條款,這是什麼命令會做 1166 01:05:27,260 --> 01:05:32,240 是它會與每 在表中的一行。 1167 01:05:32,240 --> 01:05:35,430 每個人的名字將 成為埃利奧特,基本上, 1168 01:05:35,430 --> 01:05:37,360 這艾略特是非常高興的事情。 1169 01:05:37,360 --> 01:05:40,070 或雅尼,兩個中的一個。 1170 01:05:40,070 --> 01:05:42,490 但是,每個人的名字會發生變化。 1171 01:05:42,490 --> 01:05:47,880 >> 所以這樣我們使用WHERE clause-- 這適用於所有何在的 1172 01:05:47,880 --> 01:05:51,410 這是在每個 這些不同的東西。 1173 01:05:51,410 --> 01:05:54,380 所以,你會發現,SET 有列同等價值。 1174 01:05:54,380 --> 01:05:55,190 所以呢在哪裡。 1175 01:05:55,190 --> 01:06:00,040 但這些不同的 類型的語句。 1176 01:06:00,040 --> 01:06:04,400 因此,列等於值 在SET中分配。 1177 01:06:04,400 --> 01:06:08,320 就像我們說我們要 設置名稱等於埃利奧特。 1178 01:06:08,320 --> 01:06:15,390 但在WHERE子句, 這些都是平等的陳述。 1179 01:06:15,390 --> 01:06:20,410 所以我們可以說,我們只是想 改變人的名字埃利奧特 1180 01:06:20,410 --> 01:06:23,940 如果他們的名字是瑞恩,讓我們說。 1181 01:06:23,940 --> 01:06:24,920 >> 所以,當我們說 1182 01:06:24,920 --> 01:06:32,700 >> 其中name等於瑞安,那 成功將唯一的變化 1183 01:06:32,700 --> 01:06:37,440 在name--那隻 改變行的名稱字段 1184 01:06:37,440 --> 01:06:40,770 其中名稱字段等於瑞安。 1185 01:06:40,770 --> 01:06:44,430 所以,如果我們有多人 名為瑞安,他們所有的名字 1186 01:06:44,430 --> 01:06:45,730 將改變埃利奧特。 1187 01:06:45,730 --> 01:06:48,169 >> 這是類似於實施例 如果斷層線分裂 1188 01:06:48,169 --> 01:06:50,960 紐約市和每個人都有 搬到紐黑文,一路上我們可以 1189 01:06:50,960 --> 01:06:56,570 這樣做,在一個語句是UPDATE 表1 SET家鄉=紐黑文 1190 01:06:56,570 --> 01:07:00,210 其中,故鄉相當於紐約市。 1191 01:07:00,210 --> 01:07:03,410 這是功率 UPDATE語句。 1192 01:07:03,410 --> 01:07:10,530 我們可以選擇任意數量的 通過真實的陳述行 1193 01:07:10,530 --> 01:07:12,860 關於在那些行中的字段。 1194 01:07:12,860 --> 01:07:19,510 我們不能說UPDATE表1集 名稱=埃利奧特其中row = 1, 1195 01:07:19,510 --> 01:07:24,820 不同之處在於,我們可以的,如果我們說的ID = 1。 1196 01:07:24,820 --> 01:07:27,350 1197 01:07:27,350 --> 01:07:29,830 >> 因此,我們將要 平等合作 1198 01:07:29,830 --> 01:07:32,830 字段,列平等。 1199 01:07:32,830 --> 01:07:38,030 但使用ID字段是一種能夠 選擇單個行具體而言, 1200 01:07:38,030 --> 01:07:43,210 因為ID字段是一個唯一的 標識符在SQL數據庫中。 1201 01:07:43,210 --> 01:07:45,860 因此,如更新一行,ID等於1。 1202 01:07:45,860 --> 01:07:49,560 更新兩排,只 改變該ID號。 1203 01:07:49,560 --> 01:07:51,610 但是的力量 WHERE語句是我們 1204 01:07:51,610 --> 01:07:57,480 可以基於什麼東西更新其 對某些事物的電流值。 1205 01:07:57,480 --> 01:07:58,155 是艾略特? 1206 01:07:58,155 --> 01:08:02,678 >> 聽眾:如果你想用於:什麼 再次,這是另外一個問題。 1207 01:08:02,678 --> 01:08:07,660 但我的第一個問題是, 其中,出現這樣的情況? 1208 01:08:07,660 --> 01:08:09,130 我在哪裡升級呢? 1209 01:08:09,130 --> 01:08:11,100 這是在一個PHP代碼? 1210 01:08:11,100 --> 01:08:13,379 >> 演講嘉賓:你在哪裡更新,是的。 1211 01:08:13,379 --> 01:08:15,170 我們要談 在哪裡這一切 1212 01:08:15,170 --> 01:08:18,729 發生那種一旦我們去 通過所有的命令。 1213 01:08:18,729 --> 01:08:21,130 但是,你需要什麼 知道現在基本上 1214 01:08:21,130 --> 01:08:26,279 您的SQL數據庫 存在的東西 1215 01:08:26,279 --> 01:08:30,090 到由查詢來訪問 功能,這CS50定義。 1216 01:08:30,090 --> 01:08:33,800 如果你使用的查詢功能,因此, 你可以訪問此表。 1217 01:08:33,800 --> 01:08:39,529 >> 所以,你會發送這些 命令你的表中的PHP文件 1218 01:08:39,529 --> 01:08:41,420 通過查詢功能。 1219 01:08:41,420 --> 01:08:45,410 您也可以玩 與你的表直接。 1220 01:08:45,410 --> 01:08:49,050 這就是以最好的方式 測試這類命令。 1221 01:08:49,050 --> 01:08:52,720 我們將經歷究竟如何 要做到這一點的只是一點點。 1222 01:08:52,720 --> 01:08:54,910 >> 所以這是UPDATE命令。 1223 01:08:54,910 --> 01:08:57,939 和命令的其餘 將要排序相似, 1224 01:08:57,939 --> 01:08:59,069 從事類似的事情。 1225 01:08:59,069 --> 01:09:02,740 在INSERT INTO可能 最不同的更新。 1226 01:09:02,740 --> 01:09:06,170 我要離開了那裡的 只是一點點和工作在這裡。 1227 01:09:06,170 --> 01:09:10,215 所以INSERT INTO,你會看到 該表仍然是相同的。 1228 01:09:10,215 --> 01:09:17,010 你想插入到。 1229 01:09:17,010 --> 01:09:20,286 資本化,SQL 不區分大小寫。 1230 01:09:20,286 --> 01:09:22,160 所以,你不必 利用這些東西。 1231 01:09:22,160 --> 01:09:27,960 按照慣例,詞語 白色予以資本化。 1232 01:09:27,960 --> 01:09:31,590 但我也顏色編碼他們。 1233 01:09:31,590 --> 01:09:34,390 你利用的唯一原因 這些,當你鍵入它們 1234 01:09:34,390 --> 01:09:36,609 只是強調 這些是常數。 1235 01:09:36,609 --> 01:09:39,189 所以你可以看一下 資本或事實 1236 01:09:39,189 --> 01:09:40,740 我已經不同顏色的他們。 1237 01:09:40,740 --> 01:09:44,910 >> 所以,我們已經有了INSERT INTO, 讓我們再來一次表1。 1238 01:09:44,910 --> 01:09:45,930 這是所有在一行上。 1239 01:09:45,930 --> 01:09:48,609 我只是通過分離其 不同的語句。 1240 01:09:48,609 --> 01:09:52,399 所以,不要擔心的是, 表1使它到第二行。 1241 01:09:52,399 --> 01:09:56,130 >> 因此,我們要插入 INTO表1中的值。 1242 01:09:56,130 --> 01:09:58,922 你會發現可選 位,我會在第二。 1243 01:09:58,922 --> 01:09:59,755 因此,我們已經得到了價值觀。 1244 01:09:59,755 --> 01:10:03,640 1245 01:10:03,640 --> 01:10:08,100 >> 所以我們可以說,我們要添加安迪 我們的表,因為我們錯過安迪。 1246 01:10:08,100 --> 01:10:09,390 安迪生病。 1247 01:10:09,390 --> 01:10:12,490 因此,讓我們加入安迪到我們的餐桌。 1248 01:10:12,490 --> 01:10:15,150 請記住,ID號 自動更新。 1249 01:10:15,150 --> 01:10:17,320 因此,唯一的領域,我們 需要擔心 1250 01:10:17,320 --> 01:10:20,230 包括名稱,超級大國,和家鄉。 1251 01:10:20,230 --> 01:10:23,660 >> 所以我們這樣做的方式, 看著我們的語法,是我們 1252 01:10:23,660 --> 01:10:28,780 只是得到了括號,用逗號 分隔值,其中每一個 1253 01:10:28,780 --> 01:10:29,890 是一個值。 1254 01:10:29,890 --> 01:10:35,530 因此,如果我們想安迪插入到我們的 表中,我們所要做的就是正確的安迪。 1255 01:10:35,530 --> 01:10:38,630 什麼是安迪的超級大國, 人們在安迪的部分? 1256 01:10:38,630 --> 01:10:45,406 1257 01:10:45,406 --> 01:10:47,545 她喜歡飛行,還是喜歡 速度,什麼的。 1258 01:10:47,545 --> 01:10:48,920 什麼是我們已經在那裡? 1259 01:10:48,920 --> 01:10:53,425 我們有CS50,飛行, 速度和力量。 1260 01:10:53,425 --> 01:10:54,850 >> 聽眾:時間旅行。 1261 01:10:54,850 --> 01:10:56,180 >> 演講嘉賓:時間旅行,令人嘆為觀止。 1262 01:10:56,180 --> 01:11:04,280 因此,我們已經得到了安迪,時間 旅遊,和她的家鄉。 1263 01:11:04,280 --> 01:11:05,530 這是一個非常好的問題。 1264 01:11:05,530 --> 01:11:09,210 紐約市,除非有人知道。 1265 01:11:09,210 --> 01:11:13,600 每個人都是從紐約的 教訓從今天帶走。 1266 01:11:13,600 --> 01:11:17,710 >> 所以,這種說法會 插入,作為第五行, 1267 01:11:17,710 --> 01:11:21,900 與超級大國時間旅行 和紐約市的故鄉。 1268 01:11:21,900 --> 01:11:25,660 但可選字段 基本上是一個方式 1269 01:11:25,660 --> 01:11:30,090 準確指定哪些列 要插入的東西研究。 1270 01:11:30,090 --> 01:11:33,710 >> 我們正在做它現在的樣子, 岸堤,時間旅行,紐約市, 1271 01:11:33,710 --> 01:11:38,150 打算在的確切順序我們 table--名稱,超級大國的家鄉。 1272 01:11:38,150 --> 01:11:42,290 如果你想做的事 東西以外, 1273 01:11:42,290 --> 01:11:44,970 好比說,你不知道 別人的超級大國, 1274 01:11:44,970 --> 01:11:47,660 像我怎麼不知道安迪的 超級大國開頭。 1275 01:11:47,660 --> 01:11:50,450 所以,我只知道她 的名字和她的故鄉。 1276 01:11:50,450 --> 01:11:54,550 我能做的就是我可以 do--我會刪除這個快速。 1277 01:11:54,550 --> 01:11:57,910 1278 01:11:57,910 --> 01:12:00,090 >> 我想只更新列。 1279 01:12:00,090 --> 01:12:04,100 而這正是可選 列清單的用武之地。 1280 01:12:04,100 --> 01:12:09,185 我只是想更新的名字和家鄉。 1281 01:12:09,185 --> 01:12:12,650 1282 01:12:12,650 --> 01:12:16,480 然後我會說價值觀。 1283 01:12:16,480 --> 01:12:24,430 我會做安迪和紐約市。 1284 01:12:24,430 --> 01:12:28,980 >> 如果我忽略列的列表 而剛剛做這兩件事, 1285 01:12:28,980 --> 01:12:32,450 其中,將紐約市都到哪裡去了? 1286 01:12:32,450 --> 01:12:35,900 這列將紐約 市被放置在? 1287 01:12:35,900 --> 01:12:38,950 人們有什麼想法? 1288 01:12:38,950 --> 01:12:40,160 超級大國,沒錯。 1289 01:12:40,160 --> 01:12:41,890 >> 因此,這將剛進去的順序。 1290 01:12:41,890 --> 01:12:45,530 而一旦它到達的結束 列表,它會只停留填充物研究。 1291 01:12:45,530 --> 01:12:49,080 而價值觀,它會堅持在 所有列也只是空。 1292 01:12:49,080 --> 01:12:51,840 所以,因為我們規定 名字和家鄉, 1293 01:12:51,840 --> 01:12:56,110 我們將有ID 5, 安迪的名字,超級大國空。 1294 01:12:56,110 --> 01:12:58,750 所以超級大國是未初始化值。 1295 01:12:58,750 --> 01:13:01,340 你不一定會得到 如果你嘗試相同的Valgrind的錯誤 1296 01:13:01,340 --> 01:13:01,970 並訪問它。 1297 01:13:01,970 --> 01:13:05,160 一切都將被很好地歸零 出來,因為NULL是SQL中的價值。 1298 01:13:05,160 --> 01:13:06,780 這是一個常數。 1299 01:13:06,780 --> 01:13:08,980 然後,家鄉將紐約市。 1300 01:13:08,980 --> 01:13:11,860 所以這是INSERT INTO命令。 1301 01:13:11,860 --> 01:13:13,610 在我們繼續之前,有 兩個命令。 1302 01:13:13,610 --> 01:13:19,060 人們是否有任何問題, UPDATE,關於INSERT INTO,有關SQL 1303 01:13:19,060 --> 01:13:21,556 一般在我們繼續之前 到我們最後的位? 1304 01:13:21,556 --> 01:13:25,500 1305 01:13:25,500 --> 01:13:26,910 人們感覺很好,很棒。 1306 01:13:26,910 --> 01:13:27,410 愛它。 1307 01:13:27,410 --> 01:13:29,480 因此,讓我們來談談選擇。 1308 01:13:29,480 --> 01:13:33,445 去溝更新在這裡。 1309 01:13:33,445 --> 01:13:35,720 >> 並選擇將是非常相似的。 1310 01:13:35,720 --> 01:13:38,790 選擇的目標, 在人生選擇的目的 1311 01:13:38,790 --> 01:13:45,910 就是給你一堆列 滿足一定的條件。 1312 01:13:45,910 --> 01:13:48,230 當我說滿意 某些條件下, 1313 01:13:48,230 --> 01:13:50,800 你的心可能會立即 回到那個WHERE子句 1314 01:13:50,800 --> 01:13:52,090 在UPDATE上來。 1315 01:13:52,090 --> 01:13:54,880 這子句 正是有在SELECT。 1316 01:13:54,880 --> 01:14:06,020 >> 如果我們不把WHERE 條款和我們說選擇名稱, 1317 01:14:06,020 --> 01:14:16,490 hometown--拼了一點點 wrong--名字,家鄉FROM表1。 1318 01:14:16,490 --> 01:14:19,690 如果我們只是說,有什麼選擇 是想給我們的是它的 1319 01:14:19,690 --> 01:14:23,730 要給我們 double--一個表,而。 1320 01:14:23,730 --> 01:14:27,450 雙數組,如果我們 想在PHP檢測。 1321 01:14:27,450 --> 01:14:33,239 但它只是要給我們 兩個columns--名雙陣列, 1322 01:14:33,239 --> 01:14:33,780 和家鄉。 1323 01:14:33,780 --> 01:14:36,400 1324 01:14:36,400 --> 01:14:38,130 它會忽略ID。 1325 01:14:38,130 --> 01:14:41,310 它會忽略超級大國。 1326 01:14:41,310 --> 01:14:44,696 而且它會只給我們每一個 該表中單列。 1327 01:14:44,696 --> 01:14:46,570 因此,如果我們只是插入 岸堤,我們將有安迪。 1328 01:14:46,570 --> 01:14:48,605 我們將有原四。 1329 01:14:48,605 --> 01:14:53,720 如果他們一直在更新,這將 被反射,等等,等等。 1330 01:14:53,720 --> 01:14:56,520 >> 因此,這是因為我們 沒有使用WHERE子句。 1331 01:14:56,520 --> 01:14:59,200 但是,我們可以在完全使用 同樣,我們用它在更新。 1332 01:14:59,200 --> 01:15:05,310 如果我們只希望名表 與人超能力的生活 1333 01:15:05,310 --> 01:15:13,430 在紐約,我們可以執行一個語句 像選擇名稱,superpower-- 1334 01:15:13,430 --> 01:15:27,190 我只是要離開that-- FROM 表1 WHERE家鄉=紐約市。 1335 01:15:27,190 --> 01:15:33,370 >> 因此,這正好說明,你可以 得到完全不同的列, 1336 01:15:33,370 --> 01:15:36,920 然後把列,你是不是 即使取回WHERE子句。 1337 01:15:36,920 --> 01:15:39,200 我們甚至不希望 故鄉大家。 1338 01:15:39,200 --> 01:15:41,920 但是,我們希望的名稱和 人們的超級大國 1339 01:15:41,920 --> 01:15:43,817 他的家鄉紐約市。 1340 01:15:43,817 --> 01:15:45,650 所以,這是我們 可以用在何處? 1341 01:15:45,650 --> 01:15:49,112 子句,我們可以列處理 我們不一定要回去。 1342 01:15:49,112 --> 01:15:52,320 在UPDATE同樣的方法,我們就可以處理 與列,我們不一定 1343 01:15:52,320 --> 01:15:53,270 要進行更新。 1344 01:15:53,270 --> 01:15:58,890 我們可以更新這個城市所有人的 誰的名字是山姆,例如。 1345 01:15:58,890 --> 01:16:02,080 我們可以更新的城市 每個人的ID號為2。 1346 01:16:02,080 --> 01:16:04,960 所以才更新 市第二排 1347 01:16:04,960 --> 01:16:08,220 在這裡,我們沒有處理 必要時常見的問題。 1348 01:16:08,220 --> 01:16:13,264 >> 和刪除的,因為你會 預計,DELETE FROM表1。 1349 01:16:13,264 --> 01:16:14,930 然後我們有另外一個WHERE子句。 1350 01:16:14,930 --> 01:16:17,940 所以我們可以說WHERE ID = 1。 1351 01:16:17,940 --> 01:16:18,950 刪除的第一行。 1352 01:16:18,950 --> 01:16:23,240 並刪除將始終刪除行, 或者,將刪除的行的一些數。 1353 01:16:23,240 --> 01:16:26,990 DELETE FROM表WHERE 家鄉=紐約市 1354 01:16:26,990 --> 01:16:28,740 將刪除每個人都在紐約市。 1355 01:16:28,740 --> 01:16:30,985 這就是,如果有一個 突如其來的悲劇瘟疫 1356 01:16:30,985 --> 01:16:33,360 而你只是想刪除 大家從表中誰 1357 01:16:33,360 --> 01:16:35,760 生活在某個城市 被擊中的瘟疫。 1358 01:16:35,760 --> 01:16:38,050 願他們安息。 1359 01:16:38,050 --> 01:16:43,849 >> 這些是四個SQL命令 你將需要使用。 1360 01:16:43,849 --> 01:16:45,390 你甚至不需要使用它們。 1361 01:16:45,390 --> 01:16:47,690 但這些都是四 這CS50希望你 1362 01:16:47,690 --> 01:16:53,630 是舒適與進入 這兩個測驗1,也pset7和pset8。 1363 01:16:53,630 --> 01:16:55,820 >> 這裡只是表了。 1364 01:16:55,820 --> 01:16:58,930 在這其中,羅伊的超級大國 被更新,以激光束,它 1365 01:16:58,930 --> 01:17:00,880 是一個例子,我沒有使用。 1366 01:17:00,880 --> 01:17:05,480 我不知道哪一個 羅伊喜歡,而是實力。 1367 01:17:05,480 --> 01:17:07,670 羅伊有實力的超級大國。 1368 01:17:07,670 --> 01:17:09,090 凱瑟琳沒能成功的今天。 1369 01:17:09,090 --> 01:17:10,260 那真不幸。 1370 01:17:10,260 --> 01:17:11,260 但她具有超強的速度。 1371 01:17:11,260 --> 01:17:13,780 1372 01:17:13,780 --> 01:17:14,670 >> 嗯,這是PHP。 1373 01:17:14,670 --> 01:17:19,410 在我們討論MVC,不 任何人有關於PHP的問題? 1374 01:17:19,410 --> 01:17:23,864 現在SQL或PHP,如果你突然有 拿出一個關於PHP的問題? 1375 01:17:23,864 --> 01:17:27,560 1376 01:17:27,560 --> 01:17:28,460 大。 1377 01:17:28,460 --> 01:17:29,920 好吧,我們都設置即可。 1378 01:17:29,920 --> 01:17:33,660 >> 所以說話有點 關於模型視圖控制器, 1379 01:17:33,660 --> 01:17:38,770 讓我們回到一些 在pset7的東西。 1380 01:17:38,770 --> 01:17:42,470 那麼,什麼模型視圖 控制器is--我不是 1381 01:17:42,470 --> 01:17:45,660 要救我的修改登錄 因為我完全屠殺了。 1382 01:17:45,660 --> 01:17:49,220 但基本上我們有兩個 獨立的東西怎麼回事。 1383 01:17:49,220 --> 01:17:52,390 我們有一個公開 目錄中包含 1384 01:17:52,390 --> 01:17:56,460 代碼,那將被執行 並且,將要訪問的網頁。 1385 01:17:56,460 --> 01:17:58,780 而且我們也有這個意見的目錄。 1386 01:17:58,780 --> 01:18:01,780 和視圖中包含的模板。 1387 01:18:01,780 --> 01:18:04,390 >> 這就是功能 render--我們看到了渲染 1388 01:18:04,390 --> 01:18:08,240 在一堆的PHP代碼的功能 這CS50已經為你寫的, 1389 01:18:08,240 --> 01:18:10,550 該取入某些參數。 1390 01:18:10,550 --> 01:18:14,510 什麼代碼正在做 在它進入的觀點, 1391 01:18:14,510 --> 01:18:18,000 這是一組像 預寫HTML代碼, 1392 01:18:18,000 --> 01:18:20,720 和它的插入值 到某些地方。 1393 01:18:20,720 --> 01:18:23,990 這就是當你 進入CS50金融, 1394 01:18:23,990 --> 01:18:25,760 相同的標題是每一個頁面上。 1395 01:18:25,760 --> 01:18:28,130 同樣的頁腳是在每一頁上。 1396 01:18:28,130 --> 01:18:31,880 這是因為這樣 這使得作品是它會 1397 01:18:31,880 --> 01:18:36,720 在頭自動修補和 瀏覽器,你可以在視圖中找到。 1398 01:18:36,720 --> 01:18:41,400 >> 事實上,我們可以進入標題, 看起來,這是一個頭的HTML文件。 1399 01:18:41,400 --> 01:18:43,280 它有一些樣式表。 1400 01:18:43,280 --> 01:18:48,450 你並不需要看的CSS 為pset7,如果你不想。 1401 01:18:48,450 --> 01:18:50,560 但是你可以修改 他們,如果你想,做 1402 01:18:50,560 --> 01:18:53,470 您的財務看起來有些不同。 1403 01:18:53,470 --> 01:18:57,560 >> 它有一些PHP的 頭有點看 1404 01:18:57,560 --> 01:19:01,240 如果有一個不同的標題 應該把這個頭。 1405 01:19:01,240 --> 01:19:04,300 但只是一些其他腳本, 和鏈接,和其他的東西。 1406 01:19:04,300 --> 01:19:08,700 頭端,身體開始​​,並哎呀, 我們有這個古靈精怪的小端位。 1407 01:19:08,700 --> 01:19:14,730 而且還有一個div,就像 一個無形的元素種類 1408 01:19:14,730 --> 01:19:17,120 這中間有一個想法。 1409 01:19:17,120 --> 01:19:22,450 >> 然後,當我們看到尾, 我們有一個div的末端。 1410 01:19:22,450 --> 01:19:25,000 我們有一個底部,這是 其中頁腳文本。 1411 01:19:25,000 --> 01:19:26,770 結束DIV,身體結束,HTML月底。 1412 01:19:26,770 --> 01:19:29,070 >> 那麼,什麼渲染是 做的是呈現幾分 1413 01:19:29,070 --> 01:19:33,150 修修補補的頭,一 不同的PHP文件 1414 01:19:33,150 --> 01:19:37,110 將包含實際的東西, 你會看到,像你的股票的表 1415 01:19:37,110 --> 01:19:39,690 如果你是購買或出售股票。 1416 01:19:39,690 --> 01:19:41,480 然後,它會添加在頁腳。 1417 01:19:41,480 --> 01:19:44,890 而模型視圖 控制器的想法是,我們 1418 01:19:44,890 --> 01:19:49,590 要分開怎麼樣 事情看起來從代碼。 1419 01:19:49,590 --> 01:19:53,420 這是我們要分開的前端 和後端,其中,前端為 1420 01:19:53,420 --> 01:20:00,440 用戶可以看到的東西,漂亮的 visuals-- HTML,CSS,這樣的事情, 1421 01:20:00,440 --> 01:20:02,320 圖像,等等。 1422 01:20:02,320 --> 01:20:05,780 而後端PHP。 1423 01:20:05,780 --> 01:20:07,710 這是你寫的代碼。 1424 01:20:07,710 --> 01:20:10,240 這是其中的代碼那 這樣做的實際行動。 1425 01:20:10,240 --> 01:20:12,400 這是當你添加 一隻股票你的表, 1426 01:20:12,400 --> 01:20:14,890 當你買進 銷售,這是後台。 1427 01:20:14,890 --> 01:20:20,210 >> 我們可以,就像你看到的, 直接包括PHP在HTML中。 1428 01:20:20,210 --> 01:20:23,210 因此,我們可能會對做 這種指派剛 1429 01:20:23,210 --> 01:20:26,200 對於每一頁的HTML文件,像登錄。 1430 01:20:26,200 --> 01:20:30,260 然後在該網頁上,只 有PHP代碼巨大的塊, 1431 01:20:30,260 --> 01:20:33,822 包括所有的代碼是 該網頁特別需要。 1432 01:20:33,822 --> 01:20:35,780 然後,我們可以有 做到這一點的投資組合。 1433 01:20:35,780 --> 01:20:40,250 我們可以做所有的買盤 和銷售的各個頁面中。 1434 01:20:40,250 --> 01:20:43,680 >> 但是,因為我們正在繪製 分別從哪兒 1435 01:20:43,680 --> 01:20:46,660 我們正在編寫後台 代碼中,我們可以很容易地 1436 01:20:46,660 --> 01:20:52,660 改變的事情怎麼看不 改變每一個文件。 1437 01:20:52,660 --> 01:20:55,460 我們做這樣的事情只是添加 一個新的div底部 1438 01:20:55,460 --> 01:21:00,720 of--你好,我修改了腳註。 1439 01:21:00,720 --> 01:21:03,710 你可以做類似的東西。 1440 01:21:03,710 --> 01:21:07,250 但同時,你可以改變 整個視覺佈局 1441 01:21:07,250 --> 01:21:09,290 在不影響什麼 要在後端。 1442 01:21:09,290 --> 01:21:12,000 你可以改變 整個後端,仍然 1443 01:21:12,000 --> 01:21:13,900 有它看起來就像以前那樣。 1444 01:21:13,900 --> 01:21:14,400 本 1445 01:21:14,400 --> 01:21:16,170 >> 是模型視圖控制器的想法。 1446 01:21:16,170 --> 01:21:19,992 它實際上是一種強加的範例 在一些編程語言 1447 01:21:19,992 --> 01:21:21,700 你可能想使用 最終項目。 1448 01:21:21,700 --> 01:21:25,100 如果你這樣做iOS開發, 他們有意見, 1449 01:21:25,100 --> 01:21:29,120 這是你在iPhone上看到的, 那麼後端的像一個獨立的東西。 1450 01:21:29,120 --> 01:21:31,260 >> 你可以想想一點點。 1451 01:21:31,260 --> 01:21:35,190 有很多的二進制文件的 計算機科學,這是有趣的, 1452 01:21:35,190 --> 01:21:37,270 因為一切都在二進制。 1453 01:21:37,270 --> 01:21:38,550 我不打算說。 1454 01:21:38,550 --> 01:21:41,590 這是一個雙關語意外。 1455 01:21:41,590 --> 01:21:43,860 是的,雙關語並非意。 1456 01:21:43,860 --> 01:21:49,070 >> 但是,像.h文件和.c文件,有 很多東西分離的,我們 1457 01:21:49,070 --> 01:21:49,900 可能不需要。 1458 01:21:49,900 --> 01:21:54,330 因此,我們可以只修改的H文件,或 有人可以只看到.h文件,知道 1459 01:21:54,330 --> 01:21:57,650 正是在該功能 而不一定知道.c文件 1460 01:21:57,650 --> 01:21:58,870 其執行情況。 1461 01:21:58,870 --> 01:22:02,800 分離成分的這種想法 依賴於彼此 1462 01:22:02,800 --> 01:22:06,990 但那種互相訪問 通過不同的渠道,傳遞 1463 01:22:06,990 --> 01:22:09,310 的變量,只 包括陳述,事情 1464 01:22:09,310 --> 01:22:14,440 這樣,這一原則 有助於創造應用 1465 01:22:14,440 --> 01:22:17,080 這可以更容易地 由多人編輯, 1466 01:22:17,080 --> 01:22:20,440 可更容易地改變 或修改的規模很大, 1467 01:22:20,440 --> 01:22:24,880 和更容易 調試在很多方面。 1468 01:22:24,880 --> 01:22:28,254 >> 真快,我有 對於pset7的一些技巧, 1469 01:22:28,254 --> 01:22:31,420 我將充分屏幕,所以你不 只看the--竅門TIPPEE。 1470 01:22:31,420 --> 01:22:33,964 1471 01:22:33,964 --> 01:22:35,130 有沒有那麼多的技巧。 1472 01:22:35,130 --> 01:22:38,060 >> 但我提到的PHP是難以調試。 1473 01:22:38,060 --> 01:22:39,290 雙重和三重檢查。 1474 01:22:39,290 --> 01:22:41,550 如果你的代碼是不 顯示在頁面上, 1475 01:22:41,550 --> 01:22:46,240 它可能是一個PHP的錯誤,對不起。 1476 01:22:46,240 --> 01:22:48,570 >> 你永遠需要看看 如果你不想CSS。 1477 01:22:48,570 --> 01:22:52,150 但是,一旦你完成,也可以是 一個可愛的小有趣的事情,只是去 1478 01:22:52,150 --> 01:22:54,770 和亂用CSS的參數。 1479 01:22:54,770 --> 01:22:58,700 CSS和HTML是一模型的一個例子 視圖控制器風格的事情太多了吧? 1480 01:22:58,700 --> 01:23:02,150 你可以有風格的標籤 在HTML元素。 1481 01:23:02,150 --> 01:23:04,800 但是,如果你的排序 它們外包給CSS, 1482 01:23:04,800 --> 01:23:08,180 它們更容易編輯和播放 周圍,並有樂趣。 1483 01:23:08,180 --> 01:23:10,816 >> 治療CS50幫手 作為黑盒子。 1484 01:23:10,816 --> 01:23:12,940 不需要知道 正是渲染在做什麼, 1485 01:23:12,940 --> 01:23:16,770 但相信它總是做正確的 這取決於你傳遞的東西, 1486 01:23:16,770 --> 01:23:17,690 這樣的事情。 1487 01:23:17,690 --> 01:23:21,040 我會推薦 看大衛的演練, 1488 01:23:21,040 --> 01:23:24,490 經歷所有的 的東西,而不僅僅是待辦事項, 1489 01:23:24,490 --> 01:23:26,960 但你真的能治療 這些黑盒子。 1490 01:23:26,960 --> 01:23:29,280 不要進入這些 功能尋找漏洞。 1491 01:23:29,280 --> 01:23:33,510 >> 並歡迎回報 我們的霸主Zamyla。 1492 01:23:33,510 --> 01:23:34,010 大。 1493 01:23:34,010 --> 01:23:40,430 >> 是否有之前的任何最終的問題 那種我們反彈的一天? 1494 01:23:40,430 --> 01:23:42,610 我仍然活著? 1495 01:23:42,610 --> 01:23:44,700 大。 1496 01:23:44,700 --> 01:23:47,120 嗨livestream人。 1497 01:23:47,120 --> 01:23:47,620 大。 1498 01:23:47,620 --> 01:23:50,260 是否存在了問題嗎? 1499 01:23:50,260 --> 01:23:50,760 沒有? 1500 01:23:50,760 --> 01:23:52,884 >> 然後,我想我們 好走的今天。 1501 01:23:52,884 --> 01:23:55,550 我會堅持圍繞一點點 之後,如果人們有問題 1502 01:23:55,550 --> 01:23:57,480 他們也不敢問在流。 1503 01:23:57,480 --> 01:23:59,790 但除此之外,有一個美好的一天。 1504 01:23:59,790 --> 01:24:01,933