1 00:00:00,000 --> 00:00:03,000 [Powered by Google Translate] [的演練習題集7] 2 00:00:03,000 --> 00:00:04,400 [Zamyla陳] [哈佛大學] 3 00:00:04,400 --> 00:00:07,640 [這是CS50] [CS50.TV] 4 00:00:07,640 --> 00:00:12,090 >> 大家好,歡迎演練,CS50金融。 5 00:00:12,090 --> 00:00:15,090 現在,我們正式完成所有pset時,CS50 6 00:00:15,090 --> 00:00:19,380 我們剩下的就只有一個這將是一個有趣的實施 7 00:00:19,380 --> 00:00:23,770 一個網站,用戶可以登錄到CS50金融 8 00:00:23,770 --> 00:00:25,830 買入和賣出股票。 9 00:00:25,830 --> 00:00:32,280 >> 今天,我們將在我們的處置有幾個工具。 10 00:00:32,280 --> 00:00:34,320 我們要去談論的權限。 11 00:00:34,320 --> 00:00:36,380 只要你有一個Web文件夾, 12 00:00:36,380 --> 00:00:40,800 你會想允許用戶執行某些文件 13 00:00:40,800 --> 00:00:42,500 但也只是閱讀其他的, 14 00:00:42,500 --> 00:00:45,150 讓我們來看看權限和如何設置這些。 15 00:00:45,150 --> 00:00:49,630 然後我們要看看到PHP,HTML,SQL代碼。 16 00:00:49,630 --> 00:00:51,990 >> 首先,權限。 17 00:00:51,990 --> 00:00:56,060 當你在一個特定的目錄中的終端, 18 00:00:56,060 --> 00:01:00,430 然後你想要做的是你要運行的chmod命令。 19 00:01:00,430 --> 00:01:03,750 這是其次是字母或數字 20 00:01:03,750 --> 00:01:08,100 相應的,你基本上希望世界看到, 21 00:01:08,100 --> 00:01:09,830 你看,等等。 22 00:01:09,830 --> 00:01:13,350 例如,當你有一個文件夾, 23 00:01:13,350 --> 00:01:15,560 那麼,您希望該文件夾中的每個人都認為它是可執行的, 24 00:01:15,560 --> 00:01:19,500 所以你會做什麼,你可以運行命令chmod A + X 25 00:01:19,500 --> 00:01:21,050 然後你的文件夾的名稱。 26 00:01:21,050 --> 00:01:28,110 當你有一個文件,如CSS文件或圖像文件 - 27 00:01:28,110 --> 00:01:33,060 像JPEG和位圖之類的東西,或任何JavaScript代碼 - 28 00:01:33,060 --> 00:01:36,440 你想成為人人可讀的, 29 00:01:36,440 --> 00:01:39,880 這樣的話,你要做的就是,你可以使用通配符 - 30 00:01:39,880 --> 00:01:41,650 這是一個星號 - 31 00:01:41,650 --> 00:01:46,190 基本上表明在CSS文件夾 - 在該文件夾中的一切 - 32 00:01:46,190 --> 00:01:48,740  我會說,這將是人人可讀的。 33 00:01:48,740 --> 00:01:54,220 使用權限,當我們使用字母, 34 00:01:54,220 --> 00:01:57,610 我們也可以用數字來代替。 35 00:01:57,610 --> 00:02:00,900 所以,你看,最終當你想要的東西必須是可執行的 - 36 00:02:00,900 --> 00:02:02,810 所表示的數字1 - 37 00:02:02,810 --> 00:02:08,340 是可讀的東西是多少,然後 - 38 00:02:08,340 --> 00:02:10,590 寫的是2號 - 39 00:02:10,590 --> 00:02:13,670 ,所以基本上這些當你想要一個組合,那麼你將它們添加。 40 00:02:13,670 --> 00:02:15,860 如果你想要的東西可讀,可寫,可執行文件, 41 00:02:15,860 --> 00:02:21,970 那麼你會增加4,2,1,能夠讓你7, 42 00:02:21,970 --> 00:02:26,230 然後,只要你有一個文件夾,你想,每個人都必須是可執行的 - 43 00:02:26,230 --> 00:02:31,380 以及為可讀和可寫的 - 那麼你做,7,1,1。 44 00:02:31,380 --> 00:02:38,140 這將是7你,那麼其他人。 45 00:02:38,140 --> 00:02:42,870 當你有規範,實際上,它會指定哪些文件夾和文件 46 00:02:42,870 --> 00:02:45,040 需要搭配chmod - 特別。 47 00:02:45,040 --> 00:02:47,920 例如,當你有文件夾 - 這些是7-1-1 - 48 00:02:47,920 --> 00:02:52,690 當你有圖像,HTML,CSS,JavaScript的, 49 00:02:52,690 --> 00:02:55,870 那麼這些都將是6,0,4 - 或6個,4個,4 - 50 00:02:55,870 --> 00:03:00,030 PHP文件,然後將要6,0,0。 51 00:03:00,030 --> 00:03:04,940 背後的想法是,用戶不應該真正看到你的PHP代碼, 52 00:03:04,940 --> 00:03:08,370 但僅僅是能夠看到的輸出。 53 00:03:08,370 --> 00:03:11,030 >> 太好了!移動到PHP。 54 00:03:11,030 --> 00:03:18,850 簡單地說,只要你想有一個PHP文件時,文件的後綴是。PHP。 55 00:03:18,850 --> 00:03:22,000 您也可以混合使用HTML與PHP代碼。 56 00:03:22,000 --> 00:03:24,880 如果你有一個HTML文件,例如, 57 00:03:24,880 --> 00:03:32,520 那麼你就可以將其括在左邊的角,問號,PHP - 58 00:03:32,520 --> 00:03:39,320 把你的PHP代碼 - 然後關閉,另一個問號和一個直角。 59 00:03:39,320 --> 00:03:45,020 PHP中的變量是一個更容易比C中的​​變量處理 60 00:03:45,020 --> 00:03:50,310 任何變量都在它的前面有一個美元符號,剛開始他們是弱類型的。 61 00:03:50,310 --> 00:03:53,470 這意味著,你不必擔心設置的東西 62 00:03:53,470 --> 00:03:55,020 等於一個字符串或一個整數。 63 00:03:55,020 --> 00:03:57,710 您可以只是簡單的說,這是我的變量名 64 00:03:57,710 --> 00:04:00,390 然後,這是它的值, 65 00:04:00,390 --> 00:04:03,280 所以它會更容易處理有。 66 00:04:03,280 --> 00:04:08,220 >> 另一件事是,PHP也允許你使用關聯數組。 67 00:04:08,220 --> 00:04:11,330 您可以簡單地定義一個數組,就像你會在C 68 00:04:11,330 --> 00:04:14,900 說,美元符號的名稱,您的陣列等於, 69 00:04:14,900 --> 00:04:22,600 然後在方括號中基本上只是在數組中的所有元素的值列表。 70 00:04:22,600 --> 00:04:27,160 但是,在PHP中,你也可以做的是指定基本上是 - 71 00:04:27,160 --> 00:04:31,050 它有點像一個哈希函數。 72 00:04:31,050 --> 00:04:34,410 您可以指定索引 - 你打算把它稱為 - 73 00:04:34,410 --> 00:04:37,030 然後,對應於值。 74 00:04:37,030 --> 00:04:42,880 如果你確實通過在A = 1,B = 2,C = 3, 75 00:04:42,880 --> 00:04:50,820 那麼你的索引數組的一個給你。 76 00:04:50,820 --> 00:04:56,600 這pset的會讓你暖和了一些PHP中的部分問題, 77 00:04:56,600 --> 00:04:59,240 然後我們潛水到CS50融資。 78 00:04:59,240 --> 00:05:02,650 >> 我們有一對夫婦 - 我們有一些功能,基本上, 79 00:05:02,650 --> 00:05:05,130 在這個網站實現。 80 00:05:05,130 --> 00:05:10,440 我們希望允許用戶在我們的網站上註冊的用戶名和密碼。 81 00:05:10,440 --> 00:05:13,670 我們希望,讓他們看報價, 82 00:05:13,670 --> 00:05:19,330 ,那我們就打印出了名的,報價以及目前的價格,它是在。 83 00:05:19,330 --> 00:05:26,830 我們希望讓他們看到一個組合,他們已經買了迄今為止的所有股份。 84 00:05:26,830 --> 00:05:34,240 我們也希望讓他們買股票賣給他們。 85 00:05:34,240 --> 00:05:37,540 最後,我們想要讓他們看到了歷史 86 00:05:37,540 --> 00:05:39,490 所有的交易,他們已經取得了。 87 00:05:39,490 --> 00:05:41,540 然後,終於,你已經實現了這一切, 88 00:05:41,540 --> 00:05:45,110 那麼,你是自由的實現一個額外的功能。 89 00:05:45,110 --> 00:05:46,610 我們將進入這些。 90 00:05:46,610 --> 00:05:51,330 這些可以是讓用戶獲得額外的現金存入額外的現金, 91 00:05:51,330 --> 00:05:54,550 或者你可以讓他們改變自己的密碼,或類似的東西, 92 00:05:54,550 --> 00:06:00,590 給他們發郵件的收據時,他們買進或賣出股票。 93 00:06:00,590 --> 00:06:05,370 有一個有限的列表,你可以實現自己的功能, 94 00:06:05,370 --> 00:06:08,340 所以這是最後一個。 95 00:06:08,340 --> 00:06:13,430 >> 由於這是一個網站,你​​們也有很大的自由度來定制它。 96 00:06:13,430 --> 00:06:20,960 我們提供一些CSS代碼,但你絕對自由調整, 97 00:06:20,960 --> 00:06:26,680 使它看起來更好,但背後是一個基本的功能 98 00:06:26,680 --> 00:06:30,310 所以你的實際需要,包括有參考的規範。 99 00:06:30,310 --> 00:06:39,940 規範,我們將要使用的設備也是一個服務器。 100 00:06:39,940 --> 00:06:43,910 這將承載我們的網站對我們來說,它的本地服務器上。 101 00:06:43,910 --> 00:06:49,750 如果您按照這些說明並解壓縮在pset分配代碼 102 00:06:49,750 --> 00:06:53,500 到您的虛擬主機/本地主機文件夾, 103 00:06:53,500 --> 00:07:02,470  那麼你就可以訪問http://localhost/在谷歌瀏覽器在家電, 104 00:07:02,470 --> 00:07:09,120 然後你會達到你寫的代碼中,pset中7。 105 00:07:09,120 --> 00:07:14,490 >> PSET 7自帶的分佈一堆代碼, 106 00:07:14,490 --> 00:07:18,330 並希望我們已經 - 在此之前的所有pset時 - 107 00:07:18,330 --> 00:07:21,700 習慣我們讀通過分配代碼, 108 00:07:21,700 --> 00:07:25,650 了解已經提供了哪些功能,以及我們如何能夠使用 109 00:07:25,650 --> 00:07:29,470 那些和我們將要實施的其他功能。 110 00:07:29,470 --> 00:07:31,570 在這種情況下,我們有3個文件夾。 111 00:07:31,570 --> 00:07:36,350 我們有一個HTML的文件夾,包括文件夾,文件夾和模板“文件夾。 112 00:07:36,350 --> 00:07:40,630 我們將做這個pset的是一種分​​離的思想 - 113 00:07:40,630 --> 00:07:45,580 編程思想 - 與實際視覺方面的PHP代碼。 114 00:07:45,580 --> 00:07:52,690 我們將有一個PHP文件,它所有的思想,讀入數據庫, 115 00:07:52,690 --> 00:07:55,620 打印出來的東西,有,如果的報表 - 這樣的事情 - 116 00:07:55,620 --> 00:08:02,140 ,然後將數據傳遞到我們的模板文件 - 或template.php文件。 117 00:08:02,140 --> 00:08:05,710 什麼,會做的就是讀取數據,然後將其打印出來。 118 00:08:05,710 --> 00:08:09,550 >> 我們可以把為“啞”,因為我們真的不希望他們的模板 119 00:08:09,550 --> 00:08:12,370 被計算的東西,做了很多的工作。 120 00:08:12,370 --> 00:08:16,330 我們希望我們的控制器來做到這一點。 121 00:08:16,330 --> 00:08:21,610 - 一點點,讓我們來看看一些分配代碼。 122 00:08:21,610 --> 00:08:28,250 在這裡,我們有我們的index.html文件,這是很空的。 123 00:08:28,250 --> 00:08:34,429 從本質上講它做什麼 - 它說,好,我會要求configuration.php文件。 124 00:08:34,429 --> 00:08:40,120 我們沒有看到,就在那裡,但它基本上是調用configuration.php文件, 125 00:08:40,120 --> 00:08:42,240 和執行。 126 00:08:42,240 --> 00:08:45,130 後,這將導致投資組合。 127 00:08:45,130 --> 00:08:49,310 渲染是一個函數,所以每當我們在一個控制器, 128 00:08:49,310 --> 00:08:56,490 我們將調用render,我們會給它的文件,然後我們傳遞的數據中, 129 00:08:56,490 --> 00:09:04,570 因此,它會調用在portfolio.php種傳中的數據,這樣的組合可以處理這個問題。 130 00:09:04,570 --> 00:09:10,540 >> 而現在,在這裡,我們有我們的login.php形式。 131 00:09:10,540 --> 00:09:17,540  這是控制器,基本上需要照顧的日誌記錄中。 132 00:09:17,540 --> 00:09:29,090 在這裡,它會檢查是否提交表單這個文件,交易確認提交。 133 00:09:29,090 --> 00:09:31,990 我們來看看這表示歉意功能。 134 00:09:31,990 --> 00:09:35,100 當我們要打印出一條錯誤消息, 135 00:09:35,100 --> 00:09:39,550 我們使用的道歉,這將用戶重定向到一個特定的頁面 136 00:09:39,550 --> 00:09:42,530 ,將打印出具體的錯誤信息,我們表示。 137 00:09:42,530 --> 00:09:47,860 持續,它會查詢數據庫 - 我們就會得到更多的後來。 138 00:09:47,860 --> 00:09:54,180 然後你就看到,在這裡,如果一個表單沒有提交,那麼它呈現的一種形式。 139 00:09:54,180 --> 00:10:01,360 這意味著它去login_form.php的,所以讓我們來看看這個。 140 00:10:01,360 --> 00:10:09,400 >> login.php的是,其實我們看到的HTML交易的實際視覺方面。 141 00:10:09,400 --> 00:10:15,130 在這裡,我們有一個輸入標籤的用戶名,輸入的密碼, 142 00:10:15,130 --> 00:10:16,630 以及一個提交按鈕。 143 00:10:16,630 --> 00:10:22,660 這實際上是將要舉行的視覺效果和HTML形式。 144 00:10:22,660 --> 00:10:27,550 在這裡,它說,它要提交通過一定的方法,稱為後。 145 00:10:27,550 --> 00:10:30,190 我們將進入方法之間的差異 - 146 00:10:30,190 --> 00:10:33,240 發布與獲取,也稱為放的東西 - 147 00:10:33,240 --> 00:10:36,160 稍後我們將進入這些方法,但本的pset的利益, 148 00:10:36,160 --> 00:10:37,810 我會強烈建議您使用後。 149 00:10:37,810 --> 00:10:42,210 >> 我們知道,基本上,一旦該表單被提交 - 150 00:10:42,210 --> 00:10:44,650 從login_form.php - 151 00:10:44,650 --> 00:10:50,850 然後,它會去行動 - login.php的 - 152 00:10:50,850 --> 00:10:56,070 基本上通過這些形式在所有這些參數到login.php的。 153 00:10:56,070 --> 00:11:04,900 這種形式的結果都包含在這個職位的關聯數組。 154 00:11:04,900 --> 00:11:11,710 後數組中的不同元素的索引 155 00:11:11,710 --> 00:11:15,290 正是您在此處指定。 156 00:11:15,290 --> 00:11:19,240 你說,該輸入的是用戶名的名稱。這個名稱是密碼。 157 00:11:19,240 --> 00:11:26,840 同樣的,你的用戶名作為關聯數組的索引。 158 00:11:26,840 --> 00:11:35,110 如果我們去的包括文件夾,我們有這個功能的文件,該文件將是非常有用的。 159 00:11:35,110 --> 00:11:37,570 >> 所有這些功能都實現了你。 160 00:11:37,570 --> 00:11:41,870 你並不需要具體落實這些自己, 161 00:11:41,870 --> 00:11:43,140 但他們會非常有用。 162 00:11:43,140 --> 00:11:49,450 我們已經道歉,正如我之前說的,基本上會打印出一個錯誤信息 163 00:11:49,450 --> 00:11:52,920 你在一個特定的頁面 - apology.php。 164 00:11:52,920 --> 00:11:59,890 然後,我們有轉儲,因此,如果你只需要調用轉儲,然後通過在變量, 165 00:11:59,890 --> 00:12:04,930 然後,它會帶給你的頁面,將顯示該變量。 166 00:12:04,930 --> 00:12:09,950 然後,我們已經註銷,這將基本結束一個特定用戶的會話。 167 00:12:09,950 --> 00:12:12,240 查找將是有益的。 168 00:12:12,240 --> 00:12:15,870 由於我們的報價和股票,我們將能夠 - 169 00:12:15,870 --> 00:12:17,650 它本質上是實時的。 170 00:12:17,650 --> 00:12:21,380 我們需要知道這些股票價值是什麼, 171 00:12:21,380 --> 00:12:28,210 所以我們有查找功能,雅虎股票的文檔處理。 172 00:12:28,210 --> 00:12:37,700 一旦你看到了一定的符號的股票,它會返回到您的股票代碼 173 00:12:37,700 --> 00:12:41,480 以及該股票的名稱和目前的價格。 174 00:12:41,480 --> 00:12:44,330 這就是查找功能。 175 00:12:44,330 --> 00:12:48,350 >> 然後,我們使用MySQL, 176 00:12:48,350 --> 00:12:53,970 所以我們想在我們的SQL數據庫執行某些查詢。 177 00:12:53,970 --> 00:12:58,890 我們有查詢處理 - 一些抽象出來的一種。 178 00:12:58,890 --> 00:13:03,200 我們要通過我們的SQL查詢整個字符串 - 179 00:13:03,200 --> 00:13:05,360 和所有的變量去 - 180 00:13:05,360 --> 00:13:09,480 這是什麼做的是,我們實際執行。 181 00:13:09,480 --> 00:13:15,070 而不是寫每次要查詢出來的這一切 - 182 00:13:15,070 --> 00:13:21,740 從該查詢得到的結果 - 183 00:13:21,740 --> 00:13:24,740 那麼你可以致電查詢功能,它會返回給你 - 184 00:13:24,740 --> 00:13:28,750 這取決於你正在使用您的查詢 - 185 00:13:28,750 --> 00:13:33,000 可能是一個行與查詢匹配的或類似的所有的結果。 186 00:13:33,000 --> 00:13:34,690 更多關於了。 187 00:13:34,690 --> 00:13:41,200 >> 最後,我們有,重定向,正如其名稱所暗示的,將您重定向到一個不同的頁面。 188 00:13:41,200 --> 00:13:46,280 然後我們有渲染,我們將要調用幾次。 189 00:13:46,280 --> 00:13:51,010 當你在一個控制器,可以調用渲染到模板頁 190 00:13:51,010 --> 00:13:55,390 然後通過該模板將處理的值。 191 00:13:55,390 --> 00:13:59,540 這些價值可能是將要處理的輸出,你要的類型 192 00:13:59,540 --> 00:14:01,050 顯示在模板頁。 193 00:14:01,050 --> 00:14:09,370 好吧。這些是功能,並有很多此分發代碼。 194 00:14:09,370 --> 00:14:12,930 我鼓勵你去探索自己。 195 00:14:12,930 --> 00:14:17,050 此外,該規範可能會引導你通過一些其他元素的分佈代碼。 196 00:14:17,050 --> 00:14:27,360 下面是總結的functions.php中發現的功能。 197 00:14:27,360 --> 00:14:31,710 >> 好吧。第一項任務就是讓用戶在網站上註冊。 198 00:14:31,710 --> 00:14:34,860 現在,在網站上有一個登錄表單, 199 00:14:34,860 --> 00:14:40,080 為您提供了幾個用戶的密碼。 200 00:14:40,080 --> 00:14:42,130 您可以使用這些用戶名和登錄, 201 00:14:42,130 --> 00:14:45,140 但你想要讓人們作出自己的用戶名 202 00:14:45,140 --> 00:14:47,390 並添加自己的網站。 203 00:14:47,390 --> 00:14:53,070 登記的佈局是非常相似的登錄表單, 204 00:14:53,070 --> 00:14:56,340 除了用戶名是不存在的, 205 00:14:56,340 --> 00:14:59,430 用戶還需要提供一個新的密碼, 206 00:14:59,430 --> 00:15:02,440 然後通常我們有一個密碼確認。 207 00:15:02,440 --> 00:15:06,580 一旦用戶輸入的所有信息, 208 00:15:06,580 --> 00:15:10,620 我們想將它們添加到我們的數據庫中的用戶。 209 00:15:10,620 --> 00:15:12,970 我們將有一個數據庫 - SQL數據庫 - 210 00:15:12,970 --> 00:15:14,470 我們將引用。 211 00:15:14,470 --> 00:15:18,140 在該數據庫中,我們將有一個表的所有用戶 212 00:15:18,140 --> 00:15:23,850 包含自己的用戶名,密碼,也多少現金。 213 00:15:23,850 --> 00:15:28,480 >> 在寄存器中,我們要允許他們進入該信息。 214 00:15:28,480 --> 00:15:29,740 我們希望顯示形式。 215 00:15:29,740 --> 00:15:32,210 我們要確保他們的密碼 - 216 00:15:32,210 --> 00:15:37,490 ,他們進入了一個,然後也該密碼匹配時,輸入兩次。 217 00:15:37,490 --> 00:15:42,240 所有這一切都完成 - 假設這些錯誤檢查 - 218 00:15:42,240 --> 00:15:45,120 那麼,我們希望這些用戶添加到我們的數據庫。 219 00:15:45,120 --> 00:15:49,630 最後,一旦你已經註冊了,這是很方便的,如果你不需要重新登錄 220 00:15:49,630 --> 00:15:51,000 一旦你註冊, 221 00:15:51,000 --> 00:15:54,000 所以,我們要登錄他們的網站,如果他們已經註冊成功。 222 00:15:54,000 --> 00:16:00,360 >> 第一個任務是顯示的形式,這實際上是將是 - 223 00:16:00,360 --> 00:16:04,920 整個註冊過程進行建模非常密切登錄後 224 00:16:04,920 --> 00:16:10,510 除了沒有login.php的,你可能有註冊頁面register.php。 225 00:16:10,510 --> 00:16:14,300 而是login_form.php- - 這是模板 - 226 00:16:14,300 --> 00:16:16,030 你就已經登記表。 227 00:16:16,030 --> 00:16:19,680 您需要添加更多的領域 - 密碼確認字段 - 228 00:16:19,680 --> 00:16:23,450 而不是只是一個用戶名和一個密碼。 229 00:16:23,450 --> 00:16:28,120 接下來,我們要檢查的密碼是否匹配,或者是空白的。 230 00:16:28,120 --> 00:16:38,560 我們的控制器 - 註冊頁面register.php - 這是要照顧做這些檢查。 231 00:16:38,560 --> 00:16:41,690 通過POST方法提交表單時, 232 00:16:41,690 --> 00:16:47,050 那麼所有這些變量都包含在後陣列。 233 00:16:47,050 --> 00:16:52,280 你想,以確保指數的密碼後數組的值 234 00:16:52,280 --> 00:16:58,080 確認元素相匹配。 235 00:16:58,080 --> 00:16:59,410 你想,以確保他們不為空, 236 00:16:59,410 --> 00:17:01,650 你想,以確保它們是相同的。 237 00:17:01,650 --> 00:17:05,960 >> 關於PHP的一個方便的事情是,我們並不需要使用字符串比較了。 238 00:17:05,960 --> 00:17:08,410 我們可以使用等於等於運算符 239 00:17:08,410 --> 00:17:11,470  檢查字符串是否是彼此相等的。 240 00:17:11,470 --> 00:17:14,960 對於錯誤處理,你要道歉。 241 00:17:14,960 --> 00:17:17,150 要道歉,你只需調用該函數 242 00:17:17,150 --> 00:17:21,910  然後指定一個要輸出的消息類型。 243 00:17:21,910 --> 00:17:24,630 然後,您要添加到數據庫中的用戶。 244 00:17:24,630 --> 00:17:30,880 到現在為止,我們一直在做的只是當地交易形式的結果。 245 00:17:30,880 --> 00:17:33,940 現在,我們確實希望將它們添加到我們的數據庫。 246 00:17:33,940 --> 00:17:38,890 對於這一點,我們首先要確保不為空的用戶名。 247 00:17:38,890 --> 00:17:44,550 了解,在網站上,你可以有多個用戶相同的用戶名, 248 00:17:44,550 --> 00:17:50,010 所以你要確保當你插入到你的數據庫中的東西 - 249 00:17:50,010 --> 00:17:56,650 添加一個新用戶 - 然後你沒有得到一個預先存在的用戶名之間的衝突 250 00:17:56,650 --> 00:17:59,150 和用戶名,用戶試圖提交。 251 00:17:59,150 --> 00:18:02,250 對於這一點,一旦你執行一個查詢 - 252 00:18:02,250 --> 00:18:08,760 插入一個特定的用戶與他們的密碼和一個初始量的現金 - 253 00:18:08,760 --> 00:18:15,140 一旦你調用查詢,那麼MySQL將實際返回false,如果它失敗。 254 00:18:15,140 --> 00:18:21,050 >> 結構的用戶的用戶名是一個獨特的價值, 255 00:18:21,050 --> 00:18:22,540 所以你不能有一個以上的。 256 00:18:22,540 --> 00:18:30,080 當您嘗試插入新行的用戶名已經存在, 257 00:18:30,080 --> 00:18:34,470 將返回錯誤的 - 就像一個布爾值false。 258 00:18:34,470 --> 00:18:45,320 這裡是一個棘手的事情,你要檢查的結果是,如果您的查詢結果。 259 00:18:45,320 --> 00:18:52,320 如果失敗的話,那麼你將要檢查的三等於運算符。 260 00:18:52,320 --> 00:18:55,420 這實際上是要檢查是否有故障或不, 261 00:18:55,420 --> 00:19:02,760 而在只是一個簡單的等於,等於,這將是真實的,如果該行是空的。 262 00:19:02,760 --> 00:19:06,000 失敗的結果,如果有一個用戶名之間的碰撞 263 00:19:06,000 --> 00:19:10,350 是實際的錯誤值。 264 00:19:10,350 --> 00:19:15,230 >> 這裡是你如何將插入到數據庫中。 265 00:19:15,230 --> 00:19:19,220 這裡是,你會嚴格執行SQL查詢。 266 00:19:19,220 --> 00:19:25,750 有一件事是,你可以真正去管理您的SQL數據庫的網站, 267 00:19:25,750 --> 00:19:31,070 和玩耍通過手動或者輸入值或行。 268 00:19:31,070 --> 00:19:34,540 它將輸出的SQL輸出是什麼。 269 00:19:34,540 --> 00:19:38,870 您也可以在數據庫中執行SQL命令 270 00:19:38,870 --> 00:19:42,200  然後看語法可能是什麼, 271 00:19:42,200 --> 00:19:46,790 然後轉換到查詢功能,我們在pset中7, 272 00:19:46,790 --> 00:19:51,120 這將是非常相似的查詢,在實際運行。 273 00:19:51,120 --> 00:19:54,570 >> 如果我希望我的用戶表中插入新行, 274 00:19:54,570 --> 00:20:01,240 然後,我會指定插入到用戶,這是我的表的名稱。 275 00:20:01,240 --> 00:20:06,870 然後,我將指定列名。 276 00:20:06,870 --> 00:20:13,230 然後,我會隨著我的密碼提供的值。 277 00:20:13,230 --> 00:20:17,080 在我們的用戶表中的密碼不只是存儲為字符串。 278 00:20:17,080 --> 00:20:19,440 它們被存儲為加密的版本, 279 00:20:19,440 --> 00:20:24,560 所以你要運行的函數crypt實際的密碼, 280 00:20:24,560 --> 00:20:29,680 ,而且會給你正確的用戶數組的存儲類型。 281 00:20:29,680 --> 00:20:34,960 運行此將插入一個新行插入到用戶表。 282 00:20:34,960 --> 00:20:39,020 >> 要處理的查詢功能, 283 00:20:39,020 --> 00:20:43,100 我們以前在C百分號作為佔位符。 284 00:20:43,100 --> 00:20:47,670 同樣的一個佔位符,同樣的概念適用於這裡。 285 00:20:47,670 --> 00:20:50,720 通過查詢,您可以指定整個查詢, 286 00:20:50,720 --> 00:20:55,510 但只要你正在處理的變量作為輸入到查詢, 287 00:20:55,510 --> 00:21:00,490 然後,而不是把他們裡面 - 就像在C中的printf語句,當我們有 288 00:21:00,490 --> 00:21:03,740 我們將字符串,然後在那裡有一個佔位符,然後在每個 289 00:21:03,740 --> 00:21:06,990 逗號,指定的變量,我們有。 290 00:21:06,990 --> 00:21:14,480 在這裡,我們要使用我們的佔位符問號標誌 291 00:21:14,480 --> 00:21:21,670 ,然後通過每個變量中,分別按順序的佔位符 - 292 00:21:21,670 --> 00:21:24,420 這些變量應該去的地方。 293 00:21:24,420 --> 00:21:29,470 所以在這裡,第一個問號將被替換為實際的用戶名 294 00:21:29,470 --> 00:21:33,610 然後第二個問號的賬號和密碼。 295 00:21:33,610 --> 00:21:37,000 >> 最後,一旦你註冊了它們,並將它們添加到數據庫中, 296 00:21:37,000 --> 00:21:40,510 然後,你要登錄到網站。 297 00:21:40,510 --> 00:21:45,320 我們有一個超全局變量稱為會話種。 298 00:21:45,320 --> 00:21:48,160 會話需要一定的id, 299 00:21:48,160 --> 00:21:51,750 該標識對應於當前登錄的用戶 300 00:21:51,750 --> 00:21:56,380 你會想要做的就是找​​到自己的用戶名是什麼 301 00:21:56,380 --> 00:22:03,710 然後設置特定的用戶ID,會話ID。 302 00:22:03,710 --> 00:22:07,560 你要在這裡使用的函數是一個SQL命令 303 00:22:07,560 --> 00:22:15,150 從表中,將檢索最後插入的ID號。 304 00:22:15,150 --> 00:22:24,560 行會調用 - ​​ it'll調用的ID - it'll指定一個名稱,它返回的數量。 305 00:22:24,560 --> 00:22:27,900 它會調用該ID。 306 00:22:27,900 --> 00:22:33,370 現在,我們已經完成了註冊,我們可以將引用。 307 00:22:33,370 --> 00:22:36,610 >> 報價允許用戶輸入的名稱,一定的庫存, 308 00:22:36,610 --> 00:22:41,940 然後它會返回該股票的素質。 309 00:22:41,940 --> 00:22:48,410 你會想在這裡做的是有一個控制器和一些模板。 310 00:22:48,410 --> 00:22:53,380 在這種情況下,我們將有一個控制器,這是要為我們做所有的思想。 311 00:22:53,380 --> 00:23:01,210 要查找符號,然後傳遞值,將打印出的模板。 312 00:23:01,210 --> 00:23:03,060 我們要在這裡有2個模板。 313 00:23:03,060 --> 00:23:07,260 我們將有1個模板,提供的表格中,用戶要 314 00:23:07,260 --> 00:23:09,920 輸入股票名稱 - 這個名字的份額。 315 00:23:09,920 --> 00:23:16,030 然後我們也將要顯示這些值的另一個模板。 316 00:23:16,030 --> 00:23:27,450 你可以看的一個例子,如何你想有一個接受輸入的形式,登錄, 317 00:23:27,450 --> 00:23:30,060 除了在這裡,我們只需要1場。 318 00:23:30,060 --> 00:23:31,630 我們不希望一個用戶名和密碼字段。 319 00:23:31,630 --> 00:23:37,110 我們只是想讓文本字段,允許用戶輸入某只股票的名稱。 320 00:23:37,110 --> 00:23:40,110 然後,你要發送的數據 - 一旦你抬起頭來,股票 - 321 00:23:40,110 --> 00:23:45,550 到quote_form.php。 322 00:23:45,550 --> 00:23:50,780 查詢將返回符號A股股票的名稱,以及價格。 323 00:23:50,780 --> 00:23:53,910 這些都包含在一個關聯數組。 324 00:23:53,910 --> 00:24:01,390 查一查的functions.php內查找功能的更多信息 325 00:24:01,390 --> 00:24:04,010 者的返回類型。 326 00:24:04,010 --> 00:24:08,520 >> 太好了!那麼最後,你將要顯示的股票信息。 327 00:24:08,520 --> 00:24:14,110 您可能會想顯示 - 你要訪問這些變量。 328 00:24:14,110 --> 00:24:17,610 一旦你的價格在一個變量 - 329 00:24:17,610 --> 00:24:20,860 的名稱和符號,以及 - 330 00:24:20,860 --> 00:24:25,550 然後,你將要顯示在模板頁。 331 00:24:25,550 --> 00:24:31,540 該模板的頁面可以被稱為,show_quote.php或東西。 332 00:24:31,540 --> 00:24:39,660 你的quote.php頁會導致顯示的報價,然後通過在所有這些值。 333 00:24:39,660 --> 00:24:47,170 然後,在你的PHP頁面,你居然打印出這些值在頁面的HTML方面。 334 00:24:47,170 --> 00:24:53,800 你只需要使用打印功能和價格傳遞。 335 00:24:53,800 --> 00:24:57,990 有2種方式 - 你可以將它連接點操作符, 336 00:24:57,990 --> 00:25:02,230 或者使用一個佔位符。 337 00:25:07,580 --> 00:25:12,750 >> 最終用戶將要購買和出售股票。 338 00:25:12,750 --> 00:25:18,450 我們希望,讓他們看到所有的股票,他們目前有一些方式。 339 00:25:18,450 --> 00:25:21,350 我們會打電話給他們的投資組合。 340 00:25:21,350 --> 00:25:26,180 組合,大概為每一位用戶,包含了一堆行 341 00:25:26,180 --> 00:25:31,760 列出了他們,然後他們有多少份額的類型。 342 00:25:31,760 --> 00:25:36,500 我們現有的表 - 現在我們有一個在我們的數據庫中的用戶表。 343 00:25:36,500 --> 00:25:41,780 它包含一個用戶的用戶名以及密碼多少現金。 344 00:25:41,780 --> 00:25:50,390 有沒有真正的方式存儲所有的內,他們的股票。 345 00:25:50,390 --> 00:25:58,010 它不象所有的股票,我們可以插入新列。 346 00:25:58,010 --> 00:26:03,650 因為我們有一個無限的數量,這將是一個很長很長的行 347 00:26:03,650 --> 00:26:06,200 類型的股票,他們可以有。 348 00:26:06,200 --> 00:26:09,150 所以,我們要做的是在同一個數據庫, 349 00:26:09,150 --> 00:26:15,000 我們將有一個用戶表,但我們也將有一個投資組合表。 350 00:26:15,000 --> 00:26:18,430 肯定會有聯繫的投資組合表的用戶表, 351 00:26:18,430 --> 00:26:24,600 而是投資組合表結構將有股票信息, 352 00:26:24,600 --> 00:26:27,780 有多少用戶擁有該股票的股份, 353 00:26:27,780 --> 00:26:31,620 以及用戶的特定的ID號。 354 00:26:31,620 --> 00:26:34,620 您的用戶表,其中有一個ID和用戶名,哈希 - 355 00:26:34,620 --> 00:26:40,130 這是密碼,加密後的密碼 - 356 00:26:40,130 --> 00:26:42,130 然後的現金數額。 357 00:26:42,130 --> 00:26:47,900 的ID號,將投資組合的ID號。 358 00:26:47,900 --> 00:26:52,490 投資組合將有符號的股票,以及股份 - 359 00:26:52,490 --> 00:26:55,410 的用戶擁有該股票的股份數。 360 00:26:55,410 --> 00:26:58,520 在這個組合表,基本上你將有 361 00:26:58,520 --> 00:27:03,760 所有股份所擁有的所有的用戶在您的網站上。 362 00:27:03,760 --> 00:27:10,550 後來,只指定一個特定的用戶股份 - 只有他們的投資組合 - 363 00:27:10,550 --> 00:27:15,360 你會從投資組合的表檢索值 364 00:27:15,360 --> 00:27:19,930 是特定於該用戶的ID號。 365 00:27:26,520 --> 00:27:34,890 >> 當顯示的組合,你要報告每個用戶的投資組合中的股票。 366 00:27:34,890 --> 00:27:41,670 你會想報告的股份,這些股份的價值。 367 00:27:41,670 --> 00:27:45,950 ,目前這些股份的價值不存儲在投資組合表 368 00:27:45,950 --> 00:27:51,640 因為那是要更新 - 最低 - 每一天的雅虎。 369 00:27:51,640 --> 00:27:58,550 要獲得這些信息,你可以不引用,從您的SQL查詢。 370 00:27:58,550 --> 00:28:02,400 什麼樣的功能,提供給我們嗎?什麼樣的功能將得到價格是多少? 371 00:28:02,400 --> 00:28:09,110 這是查找,因此使用查找一個特定的符號會給你很多信息。 372 00:28:09,110 --> 00:28:13,710 它會給你3個信息 - 名稱,符號,以及價格。 373 00:28:13,710 --> 00:28:17,490 一旦你查找一個特定的符號,那麼你可以得到的價格, 374 00:28:17,490 --> 00:28:20,460 然後你就可以使用的價格,將顯示在你的投資組合。 375 00:28:20,460 --> 00:28:26,190 >> 投資組合也應該顯示用戶的當前現金餘額。 376 00:28:26,190 --> 00:28:30,310 那場被存儲在用戶表。 377 00:28:30,310 --> 00:28:33,400 那麼記住我們基本上有 - 378 00:28:33,400 --> 00:28:36,850 我們有不同類型的PHP文件。 379 00:28:36,850 --> 00:28:40,160 我們將有一個控制器,它基本上是你所有的思想。 380 00:28:40,160 --> 00:28:45,940 然後我們有一個模板,該模板輸出數據的處理。 381 00:28:45,940 --> 00:28:50,790 你必須考慮哪些變量控制器將需要採取英寸 382 00:28:50,790 --> 00:29:01,630 如果我們正在處理的組合輸出的每一個名字,符號和股數, 383 00:29:01,630 --> 00:29:03,730 以及當前的股票價格, 384 00:29:03,730 --> 00:29:06,950 然後,你要找到某種方式,基本上通過 - 385 00:29:06,950 --> 00:29:12,070 你可以通過在一個數組中的值匹配。 386 00:29:15,250 --> 00:29:24,360 >> 讓我們進入一個例子,你可以檢索所有的股票 387 00:29:24,360 --> 00:29:26,210 所擁有的一個特定的用戶。 388 00:29:26,210 --> 00:29:31,400 這不是買賣 - 還 - 股票的價格。 389 00:29:31,400 --> 00:29:33,520 這將是運行一個查詢。 390 00:29:33,520 --> 00:29:37,070 將獲得的符號,以及股份 - 391 00:29:37,070 --> 00:29:42,770 我打電話來,此表,但在這種情況下,你會做什麼? 392 00:29:42,770 --> 00:29:49,400 叫什麼名字的表,我們正在處理的有符號和股份 393 00:29:49,400 --> 00:29:52,280 對於一個特定的用戶? 394 00:29:52,280 --> 00:29:56,410 這是用戶或組合。 395 00:29:56,410 --> 00:29:57,820 投資組合。 396 00:29:57,820 --> 00:30:03,220 這將是查詢的符號和股份的組合 397 00:30:03,220 --> 00:30:04,920 對於一個特定的用戶。 398 00:30:04,920 --> 00:30:09,260 在這裡,我要說,“(SELECT符號,股份TBL - 399 00:30:09,260 --> 00:30:12,280 但表,而不是要取代與組合。 400 00:30:12,280 --> 00:30:15,220 “去哪兒”基本上是我的條件。 401 00:30:15,220 --> 00:30:21,050 我說我只想要得到的關聯數組對應 402 00:30:21,050 --> 00:30:23,850  這以下條件 - id等於。 403 00:30:23,850 --> 00:30:27,600  然後,我把一個佔位符,然後會話ID。 404 00:30:27,600 --> 00:30:36,720 這是說行中的每一行。 405 00:30:36,720 --> 00:30:40,940 這是一個不錯的方式,而不是設置一個for循環, 406 00:30:40,940 --> 00:30:47,450 遍歷所有索引,然後在PHP中,你可以有一個for-each循環。 407 00:30:47,450 --> 00:30:53,520 >> 如果你有一個給定的數組,那麼你可以說,我現在就打電話給每一個連續的元素 - 408 00:30:53,520 --> 00:30:57,930 我現在就打電話給每一個元素這個名字。 409 00:30:57,930 --> 00:31:02,780 因此,對於每一個這些元素,我會打電話給他們這個, 410 00:31:02,780 --> 00:31:04,500 然後我就可以做到這一點。 411 00:31:04,500 --> 00:31:10,370 在對每個有實際的數組,你要叫行,每一行的行。 412 00:31:10,370 --> 00:31:12,420 每次執行主體, 413 00:31:12,420 --> 00:31:16,960 它會,它會更新一行行的下一個元素。 414 00:31:18,900 --> 00:31:25,260 >> 現在,在買股票, 415 00:31:25,260 --> 00:31:29,500 我們想要做的就是讓用戶希望購買的股票 416 00:31:29,500 --> 00:31:35,300 和股份數額的,用戶想購買,然後 - 如果他們想 - 417 00:31:35,300 --> 00:31:38,120 補充說,股票的投資組合。 418 00:31:38,120 --> 00:31:40,310 很顯然,如果他們買了一些東西,那是怎麼回事減少 419 00:31:40,310 --> 00:31:43,520 他們的錢的數量,所以這會減少他們的現金。 420 00:31:43,520 --> 00:31:48,380 我們將要處理,更新的產品組合以及用戶表, 421 00:31:48,380 --> 00:31:50,300 其中包含了現金。 422 00:31:50,300 --> 00:31:54,920 但首先,你需要獲得股份的實際庫存量,用戶希望。 423 00:31:54,920 --> 00:32:00,010 對於這一點,你需要一個HTML的形式,將要求符號的股票 424 00:32:00,010 --> 00:32:03,360 您要購買的股份數目。 425 00:32:03,360 --> 00:32:08,300 然後你需要添加。 426 00:32:08,300 --> 00:32:13,750 您需要選擇特定的值。 427 00:32:13,750 --> 00:32:19,670 我們已經經歷這有點了,但是當你試圖獲取某些行 - 428 00:32:19,670 --> 00:32:22,020 從SQL表中檢索某些行, 429 00:32:22,020 --> 00:32:24,290 這是下面的語法。 430 00:32:24,290 --> 00:32:28,400 您已經選擇,然後如果你指定一個明星, 431 00:32:28,400 --> 00:32:31,830 ,整體而言,整個行會基本上恢復。 432 00:32:31,830 --> 00:32:36,890 再說,你具備條件的地方,然後指定 - 433 00:32:36,890 --> 00:32:39,990 我只想要的用戶名是平等的郵件, 434 00:32:39,990 --> 00:32:46,660 因此它只會在用戶中檢索該行相對應的郵件。 435 00:32:46,660 --> 00:32:52,860 >> 當一個用戶要添加共享一個投資組合, 436 00:32:52,860 --> 00:32:54,400 你需要檢查的幾個錯誤。 437 00:32:54,400 --> 00:32:57,680 你想,以確保用戶實際上可以負擔得起的股票, 438 00:32:57,680 --> 00:33:00,810 所以你要檢查他們的現金。 439 00:33:00,810 --> 00:33:05,810 在此之前,我們用星從一個SQL表中檢索一整行。 440 00:33:05,810 --> 00:33:08,930 但在這裡,我們可以只指定,我只想要一值 - 441 00:33:08,930 --> 00:33:10,080 我只想要現金。 442 00:33:10,080 --> 00:33:17,970 所以在這裡,它會返回現金的用戶ID號為1。 443 00:33:17,970 --> 00:33:25,940 如果用戶已經買了某只股票,然後購買更多的該股票, 444 00:33:25,940 --> 00:33:30,440 然後在你的投資組合 - 你不想要一個單獨的行, 445 00:33:30,440 --> 00:33:34,770 另一行包含新的交易。 446 00:33:34,770 --> 00:33:37,950 您要更新量。 447 00:33:37,950 --> 00:33:42,530 所有這一切的改變確實是該用戶所擁有的股份數額。 448 00:33:42,530 --> 00:33:47,730 如果您使用插入查詢 - 只需要插入到你的投資組合中,所有的這些值 - 449 00:33:47,730 --> 00:33:51,710 用戶的ID號以及他們所購買的股票的象徵 450 00:33:51,710 --> 00:33:57,750 的股份,那麼你也將要指定,好了,如果我遇到重複的鍵 - 451 00:33:57,750 --> 00:34:00,750 在這種情況下,重複的鍵不僅是用戶的ID,但也股票符號 - 452 00:34:00,750 --> 00:34:08,340 因為你只能有 - 我們的前提是,你只能有1個行 453 00:34:08,340 --> 00:34:10,699  對應到1特定符號。 454 00:34:10,699 --> 00:34:13,659 因此,在重複鍵 - 如果你遇到了一個碰撞 - 455 00:34:13,659 --> 00:34:18,520 你只是要更新其新的價值的股份。 456 00:34:18,520 --> 00:34:23,290 股份相等於我們以前加,用戶購買的股份數。 457 00:34:27,790 --> 00:34:31,090 >> 現在,我們已經更新了投資組合表, 458 00:34:31,090 --> 00:34:34,730 我們將要更新用戶的現金。 459 00:34:34,730 --> 00:34:40,300 這是在用戶表,所以我們將要減去一定數額的現金。 460 00:34:40,300 --> 00:34:46,270 據推測,這將是現金等於減去現金 - 然後一定量。 461 00:34:46,270 --> 00:34:50,560 要更新的現金,你會 - 462 00:34:50,560 --> 00:34:55,699 如果我想從郵件中拿走錢,然後我將運行此查詢 - 463 00:34:55,699 --> 00:35:00,220 “更新用戶”,然後設置列的現金的現金 - 464 00:35:00,220 --> 00:35:07,300 >> 如果用戶名是平等的郵件,我會刪除9,999美元。 465 00:35:07,300 --> 00:35:12,020 但是,在這種情況下,我們不希望具體減去9999。 466 00:35:12,020 --> 00:35:17,610 我們要指定,那麼,我們要減去當前的股票價格 467 00:35:17,610 --> 00:35:22,400 ,他們所購買的股份數乘以。 468 00:35:25,260 --> 00:35:29,910 >> 現在,我們已經讓他們看到所有的股票,他們有, 469 00:35:29,910 --> 00:35:33,080 以及買入更多的股票。 470 00:35:33,080 --> 00:35:37,430 我們以前也使他們能夠查看當前的股票價格。 471 00:35:37,430 --> 00:35:40,030 在這裡,我們要允許他們賣給他們。 472 00:35:40,030 --> 00:35:42,160 首先,我們要基本顯示 - 473 00:35:42,160 --> 00:35:45,270 我們希望讓他們看到他們有所有的股票, 474 00:35:45,270 --> 00:35:53,170 所以在這裡我們要顯示的所有行的投資組合。 475 00:35:53,170 --> 00:35:56,650 如果他們選擇賣出某只股票, 476 00:35:56,650 --> 00:35:59,140 然後,我們要假設他們想出售它的所有。 477 00:35:59,140 --> 00:36:04,350 他們不只是要出售50%的股份,他們將出售100%。 478 00:36:04,350 --> 00:36:08,630 我們可以從投資組合中刪除整行。 479 00:36:08,630 --> 00:36:17,520 我們可以刪除給定用戶的某個符號的股份。 480 00:36:17,520 --> 00:36:21,410 是的語法。 481 00:36:21,410 --> 00:36:22,710 >> 然後,我們要更新的現金。 482 00:36:22,710 --> 00:36:30,930 我們要在他們所銷售的股份數額的現金增加 483 00:36:30,930 --> 00:36:34,640 乘以當前的股票價格 - 484 00:36:34,640 --> 00:36:38,610 不是這個價了,他們買了它,而是他們的價格 - 485 00:36:38,610 --> 00:36:40,500 目前的價格時,他們所銷售的時候。 486 00:36:40,500 --> 00:36:43,660 來引用當前的股票價格, 487 00:36:43,660 --> 00:36:49,120 你將要使用的查詢,這會給你一個股票的價格 488 00:36:50,030 --> 00:36:52,650 在當前時間。 489 00:36:52,650 --> 00:36:55,930 >> 現在留給我們的歷史, 490 00:36:55,930 --> 00:37:00,170 你想允許用戶跟踪他們的交易 - 491 00:37:00,170 --> 00:37:03,040 要看到,每當他們賣的東西,只要他們買了股票。 492 00:37:03,040 --> 00:37:08,870 我們要指定的時間,他們在這樣做,以及他們買了多少 493 00:37:08,870 --> 00:37:11,650 什麼股票了。 494 00:37:11,650 --> 00:37:17,800 我們是否有任何指定的電流,現有的結構? 495 00:37:17,800 --> 00:37:25,230 好了,我們的組合,其中顯示用戶的數量的股票, 496 00:37:25,230 --> 00:37:26,470 為一個給定的共享。 497 00:37:26,470 --> 00:37:34,060 但是,我們構建投資組合的方式,它更新時,我們買多, 498 00:37:34,060 --> 00:37:40,190 而歷史應該 - 如果你買了蘋果,股吧,然後後來就賣出5, 499 00:37:40,190 --> 00:37:44,040 那麼你想看到那些分別作為單獨的行動,單獨的行。 500 00:37:44,040 --> 00:37:48,520 鑑於該操作可視化,在我們的投資組合表 501 00:37:48,520 --> 00:37:52,540 也只是特定行的更新, 502 00:37:52,540 --> 00:37:55,740  所以我們可能會想另一個表。 503 00:37:55,740 --> 00:38:00,460 在我們的數據庫中,我們有我們的用戶表,我們有我們的投資組合表, 504 00:38:00,460 --> 00:38:04,090 現在我們可能要一個歷史表中。 505 00:38:04,090 --> 00:38:08,070 這歷史表可以跟踪當前的日期, 506 00:38:08,070 --> 00:38:12,800 以及特定股票的符號,以及多少股份, 507 00:38:12,800 --> 00:38:15,410 然後它是什麼樣的行動 - 508 00:38:15,410 --> 00:38:18,800 你是否在購買這些股票,或者是否進行銷售。 509 00:38:20,660 --> 00:38:25,720 >> 要處理的日期,有一對夫婦的方式,你可以做到這一點。 510 00:38:25,720 --> 00:38:28,820 PHP有辦法跟踪的日期,你可以看一下你自己。 511 00:38:28,820 --> 00:38:33,990 在SQL中,你也可以使用,不論是現在或當前時間戳。這是給你的。 512 00:38:33,990 --> 00:38:40,720 只要確保在用戶每次購買或出售,你會被更新他們的現金 513 00:38:40,720 --> 00:38:46,750 在用戶表,你就可以更新的投資組合表中的行, 514 00:38:46,750 --> 00:38:50,900 然後你也可更新的歷史, 515 00:38:50,900 --> 00:38:56,260 所以有打算是,你將調用有3個獨立的SQL查詢。 516 00:38:58,640 --> 00:39:01,530 我們現在有一堆的功能。 517 00:39:01,530 --> 00:39:10,600 >> 只是一對夫婦的提醒,在您的索引文件,你要鏈接到至少你的 - 518 00:39:10,600 --> 00:39:15,550 但你會希望允許用戶連接的buy.php頁面。 519 00:39:15,550 --> 00:39:23,560 這會允許一個用戶 - buy.php的控制器,所以,要既 520 00:39:23,560 --> 00:39:29,170 送你去 - 這就是要送你去的形式,讓你看的東西。 521 00:39:29,170 --> 00:39:34,420 我們有歷史。我們已經記錄,得到一個報價,然後銷售。 522 00:39:34,420 --> 00:39:37,350 這些都是你想要在最低。 523 00:39:37,350 --> 00:39:43,640 在投資組合方面,投資組合的實際顯示在索引頁。 524 00:39:43,640 --> 00:39:52,050 如果我們去索引,在這裡我們看到它呈現portfolio.php的 525 00:39:52,050 --> 00:40:00,050 並通過關聯數組中的標題 - 基本上等於投資組合。 526 00:40:00,050 --> 00:40:02,610 所以,這是控制器。 527 00:40:02,610 --> 00:40:08,000 如果我們去模板portfolio.php, 528 00:40:08,000 --> 00:40:18,060 那麼它是 - 基本上是一個顯示的畫面,說,哦,這個網站正在建設中。 529 00:40:18,060 --> 00:40:23,810 後來,當你傳遞 - 你基本上更具體的信息傳遞。 530 00:40:23,810 --> 00:40:27,400 ,而不僅僅是標題,你可能會被傳遞更多的東西。 531 00:40:27,400 --> 00:40:32,010 一旦你有了這些值,,然後portfolio.php可以處理這些值 532 00:40:32,010 --> 00:40:34,490 打印出來任何形式的秩序。 533 00:40:34,490 --> 00:40:41,660 >> 一旦你實現了所有這些,你還需要實現更多的功能。 534 00:40:41,660 --> 00:40:44,890 這可以允許用戶更改其密碼, 535 00:40:44,890 --> 00:40:50,110 重設密碼,如果他們已經忘記了 - 這樣的密碼重置,然後 536 00:40:50,110 --> 00:40:54,560 ,你可能還需要編輯註冊,以便讓他們到指定的電子郵件, 537 00:40:54,560 --> 00:40:57,910 所以,如果他們忘記了自己的密碼,然後他們可以得到的。 538 00:40:57,910 --> 00:41:02,870 他們或許可以輸入他們的用戶名,然後一封電子郵件將被發送到他們的 539 00:41:02,870 --> 00:41:06,180 可以重設密碼的鏈接。 540 00:41:06,180 --> 00:41:10,980 你可以擁有的東西,可以讓用戶獲得收入 541 00:41:10,980 --> 00:41:12,380 每次他們買或賣的東西, 542 00:41:12,380 --> 00:41:19,910 然後終於,讓他們增加現金到他們的網站。 543 00:41:19,910 --> 00:41:24,970 只是為了重新回到控制器和模板的概念一點點。 544 00:41:24,970 --> 00:41:31,170 你必須像一個 - 所以您在這裡有一個控制器。 545 00:41:31,170 --> 00:41:35,080 現在,我們正在尋找在login.php的例子。 546 00:41:35,080 --> 00:41:38,220 當我們有一個控制器,基本上這將需要2例。 547 00:41:38,220 --> 00:41:42,090 當我們有控制器,我們在這一塊,我們也種處理 548 00:41:42,090 --> 00:41:43,880 當我們有形式為好。 549 00:41:43,880 --> 00:41:47,500 控制器將基本上都有獨立的行動 - 550 00:41:47,500 --> 00:41:53,880 如果一個表單已經提交,然後兩個,如果用戶到該頁面 551 00:41:53,880 --> 00:41:56,870 在第一次和仍需要輸入該表單。 552 00:41:56,870 --> 00:42:02,820 >> 我要跳這種情況下,前第一案的形式中。 553 00:42:02,820 --> 00:42:12,640 在這裡,我們說的方法後,如果表單已提交 - 554 00:42:12,640 --> 00:42:13,580 不用擔心,有點。 555 00:42:13,580 --> 00:42:19,780 不要擔心太多,但明白,基本上是這樣的函數處理 556 00:42:19,780 --> 00:42:22,430 表單是否已被提交或沒有。 557 00:42:22,430 --> 00:42:25,640 這種情況是真實的,如果用戶提交了表單。 558 00:42:25,640 --> 00:42:45,940 如果沒有的話,我們會到要調用render login_form.php,然後通過在標題中。 559 00:42:45,940 --> 00:42:48,010 這個稱號是基本上要出現在標題中。 560 00:42:48,010 --> 00:42:54,990 這基本上是說,好了 - 好了,如果用戶進入的login.php 561 00:42:54,990 --> 00:43:00,310 並沒有實際登錄的話,我想送他們到該表單的頁面,有 562 00:43:00,310 --> 00:43:03,160 這使得他們能夠輸入用戶名和密碼。 563 00:43:03,160 --> 00:43:07,590 然後我去login_form,然後有實際的形式。 564 00:43:07,590 --> 00:43:13,750 然後,一旦用戶提交該表單時,他們將提交到login.php的 565 00:43:13,750 --> 00:43:15,840 與POST方法。 566 00:43:15,840 --> 00:43:21,560 實際上,我進入這個部分,我的if-else循環。 567 00:43:21,560 --> 00:43:29,560 然後,它在這裡,我們處理輸入到表單中的值。 568 00:43:29,560 --> 00:43:32,800 在這裡,我們處理這些。 569 00:43:32,800 --> 00:43:40,860 >> 然後,一旦你處理這些值 - 如果你正在處理的 - 570 00:43:40,860 --> 00:43:46,640 說我們正在處理的quote.php頁面,可以輸入一個股票 571 00:43:46,640 --> 00:43:49,950 他們想看看,然後看到顯示 - 572 00:43:49,950 --> 00:43:52,850 這是一種類似在這裡。 573 00:43:52,850 --> 00:43:56,070 在這裡,我們有一個登錄表單 - ,you'd可能有一個報價表 - 574 00:43:56,070 --> 00:44:00,290 但然後一旦用戶已實際提交該信息, 575 00:44:00,290 --> 00:44:04,810 那麼你會希望控制傳遞到另一個模板 576 00:44:04,810 --> 00:44:07,430 ,將顯示他們的實際信息。 577 00:44:07,430 --> 00:44:11,250 在這裡,那麼正確,那麼你就可能 - 578 00:44:11,250 --> 00:44:18,830 您的病情年底左右 - 如果該方法等於後 - 579 00:44:18,830 --> 00:44:22,520 然後你可能會想要呈現的另一頁 - 展會報價 - 580 00:44:22,520 --> 00:44:28,040 發送到該頁面 - show_quote.php - 581 00:44:28,040 --> 00:44:34,120 然後在該文件中引用這些值。 582 00:44:34,120 --> 00:44:36,480 這是否有意義嗎? 583 00:44:36,480 --> 00:44:40,390 >> 我們有一個控制器,基本上與2例 - 584 00:44:40,390 --> 00:44:42,710 您是否已經進入或沒有的一種形式。 585 00:44:42,710 --> 00:44:43,950 如果你還沒有進入的一種形式, 586 00:44:43,950 --> 00:44:47,300 然後將您重定向到該窗體,然後把你返回到該頁面。 587 00:44:47,300 --> 00:44:54,020 然後,一旦你有在控制器的信息,該機構將處理 588 00:44:54,020 --> 00:44:59,750 必要的信息 - 無論是值的股票, 589 00:44:59,750 --> 00:45:04,150 ,那麼,當它抬頭一看這些價值觀,並有一個很好的格式化陣列, 590 00:45:04,150 --> 00:45:08,180 然後可以通過該數組的模板頁 591 00:45:08,180 --> 00:45:10,330  該輸出該信息。 592 00:45:10,330 --> 00:45:14,680 >> 同樣,因為它的網絡,它將會很有趣。 593 00:45:14,680 --> 00:45:20,310 我們的C之外,所以我們不僅限於ASCII字符,而終端輸出, 594 00:45:20,310 --> 00:45:21,800 因此,有樂趣與此有關。 595 00:45:21,800 --> 00:45:24,920 你可以把它作為視覺的,只要你想。 596 00:45:24,920 --> 00:45:31,860 您可以允許用戶輸入數百萬美元的時間, 597 00:45:31,860 --> 00:45:34,730 或限制他們真正的意思,並讓他們只一次進入1分錢 598 00:45:34,730 --> 00:45:36,330 或類似的東西。 599 00:45:36,330 --> 00:45:38,550 一定會確保有樂趣。 600 00:45:38,550 --> 00:45:47,030 >> PHP代碼是簡單一點的,因為它更容易一些偽代碼 601 00:45:47,030 --> 00:45:50,070 到實際的實現。 602 00:45:50,070 --> 00:45:56,320 因此,絕對有樂趣,因為它實際上是我們的最後一塊CS50。 603 00:45:56,320 --> 00:46:01,150 考慮到這,這是演練7。 604 00:46:01,150 --> 00:46:04,640 一旦你看完演練,完成你的pset中, 605 00:46:04,640 --> 00:46:09,590 那麼這些也pset的,和我們現在是在最終產品 - 606 00:46:09,590 --> 00:46:12,330 後我們通過測驗1。 607 00:46:12,330 --> 00:46:16,200 希望你能使用的工具,你所學到的pset時 - 608 00:46:16,200 --> 00:46:21,980 不僅是語法,但更多的是抽象的概念,如何採取一定的 - 609 00:46:21,980 --> 00:46:24,950 喜歡,我要做到這一點,那麼實際執行。 610 00:46:24,950 --> 00:46:28,740 學習如何奮鬥通過語法和分佈代碼。 611 00:46:28,740 --> 00:46:33,020 閱讀其他人的代碼,然後解釋,使用預先存在的功能。 612 00:46:33,020 --> 00:46:37,360 >> 所以,運氣好的話,最後的pset。 613 00:46:37,360 --> 00:46:39,930 這是一個很高興導致的演練。 614 00:46:39,930 --> 00:46:40,940 我希望他們已經對你有所幫助。 615 00:46:40,940 --> 00:46:46,560 這些演練,非常感謝。 616 00:46:52,580 --> 00:46:56,200 [CS50.TV]