1 00:00:00,000 --> 00:00:12,800 >> [音樂播放] 2 00:00:12,800 --> 00:00:13,410 >> ROB BOWDEN:你好。 3 00:00:13,410 --> 00:00:17,150 我搶了,我希望你準備好 把股票在這個解決方案。 4 00:00:17,150 --> 00:00:19,740 首先,讓我們來看看寄存器。 5 00:00:19,740 --> 00:00:24,400 所以請記住,我們在這裡檢查 看有沒有形式是 6 00:00:24,400 --> 00:00:26,200 發布到該頁面。 7 00:00:26,200 --> 00:00:29,170 >> 我們將這樣的第一件事 要做的就是去了別的。 8 00:00:29,170 --> 00:00:31,650 而我們將要呈現 報名表。 9 00:00:31,650 --> 00:00:37,320 因此,登記表是怎麼回事 發布到register.PHP。 10 00:00:37,320 --> 00:00:38,760 又是什麼打算送? 11 00:00:38,760 --> 00:00:44,510 它會發送一個用戶名的 用戶要填寫,密碼, 12 00:00:44,510 --> 00:00:46,050 並確認 - 13 00:00:46,050 --> 00:00:48,350 密碼再次鍵入。 14 00:00:48,350 --> 00:00:54,020 >> 所以,現在當該窗體發送到 register.PHP我們如果執行這個。 15 00:00:54,020 --> 00:00:57,260 看著這個,如果,我們先 要驗證輸入。 16 00:00:57,260 --> 00:01:00,650 我們希望確保用戶名 和密碼不是空的, 17 00:01:00,650 --> 00:01:03,860 確認實際 相匹配的密碼。 18 00:01:03,860 --> 00:01:07,820 一旦我們確認,我們可以 實際註冊用戶。 19 00:01:07,820 --> 00:01:08,750 >> 這是什麼意思? 20 00:01:08,750 --> 00:01:12,120 那麼,我們要插入的 用戶進入我們的數據庫。 21 00:01:12,120 --> 00:01:13,600 這就是我們將如何做到這一點。 22 00:01:13,600 --> 00:01:19,250 所以,我們要插入到用戶 表中的字段的用戶名, 23 00:01:19,250 --> 00:01:21,230 哈希,和現金。 24 00:01:21,230 --> 00:01:24,920 >> 現金的默認值 將是10,000。 25 00:01:24,920 --> 00:01:29,630 而我們將通過為用戶名, 用戶名,通過POST超 26 00:01:29,630 --> 00:01:32,070 全球那些是從形式提交。 27 00:01:32,070 --> 00:01:35,370 而我們將要進行加密 密碼。 28 00:01:35,370 --> 00:01:40,780 >> 所以,如果說成功了,那麼結果 將非假。 29 00:01:40,780 --> 00:01:42,990 如果它失敗了,那麼我們 要道歉。 30 00:01:42,990 --> 00:01:44,100 出事了。 31 00:01:44,100 --> 00:01:45,330 還有什麼在哪裡呢? 32 00:01:45,330 --> 00:01:48,610 >> 好了,需要有 唯一的用戶名。 33 00:01:48,610 --> 00:01:51,900 這樣一來,查詢可能失敗 如果用戶名已經 34 00:01:51,900 --> 00:01:53,700 存在於表中。 35 00:01:53,700 --> 00:01:58,210 因此,假設它是一個唯一的用戶名, 那麼我們要查詢搶 36 00:01:58,210 --> 00:01:59,640 該用戶的ID。 37 00:01:59,640 --> 00:02:02,300 記住,ID是 自動遞增。 38 00:02:02,300 --> 00:02:06,730 >> 所以如果出現這種情況失敗的一些 原因,那麼我們要道歉 39 00:02:06,730 --> 00:02:08,520 我們不能搶的ID。 40 00:02:08,520 --> 00:02:13,450 但假設它並沒有失敗,那麼 我們搶的ID從什麼查詢 41 00:02:13,450 --> 00:02:18,400 返回的,存儲在我們的會議 - 所以我們想通過登錄該用戶 42 00:02:18,400 --> 00:02:21,770 存儲的ID在會話 超級全局,最後 43 00:02:21,770 --> 00:02:23,820 重定向到我們的投資組合。 44 00:02:23,820 --> 00:02:26,040 這就是它的寄存器。 45 00:02:26,040 --> 00:02:28,680 >> 現在,我們要轉移到的報價。 46 00:02:28,680 --> 00:02:31,770 所以報價都將有 一個非常類似的設置。 47 00:02:31,770 --> 00:02:35,220 我們在這裡看到,這是代碼, 我們要執行時,形式是 48 00:02:35,220 --> 00:02:36,850 發布到該頁面。 49 00:02:36,850 --> 00:02:40,500 但首先,我們實際上有 來呈現形式。 50 00:02:40,500 --> 00:02:44,140 因此,採取一看報價表, 哪些領域有哪些? 51 00:02:44,140 --> 00:02:50,710 >> 我們看到,所有的報價已經是一個單一的 文本框的名稱符號。 52 00:02:50,710 --> 00:02:55,350 所以當報價表張貼 到quote.PHP我們現在要 53 00:02:55,350 --> 00:02:56,950 執行這段代碼。 54 00:02:56,950 --> 00:03:01,630 而在我們這個後超唯一的變量 全球將是象徵。 55 00:03:01,630 --> 00:03:05,910 >> 我們驗證,以確保 他們居然張貼的象徵。 56 00:03:05,910 --> 00:03:08,760 如果他們沒有,我們說你 必須提供一個象徵。 57 00:03:08,760 --> 00:03:12,670 假設他們確實提供了一個符號, 我們仰望的符號。 58 00:03:12,670 --> 00:03:16,750 >> 現在還記得那樣子了可能 因為失敗了,好吧,也許這不是一個 59 00:03:16,750 --> 00:03:18,460 有效符號開始。 60 00:03:18,460 --> 00:03:22,690 因此,如果這個查詢返回false, 我們要道歉的 61 00:03:22,690 --> 00:03:24,850 符號未找到。 62 00:03:24,850 --> 00:03:29,450 一旦我們找到符號,現在我們 可以使quote.PHP模板。 63 00:03:29,450 --> 00:03:31,220 >> 那是什麼樣子的? 64 00:03:31,220 --> 00:03:36,580 這只是要打印共享 無論股票名稱是 65 00:03:36,580 --> 00:03:41,540 值得一無論股票價格。 66 00:03:41,540 --> 00:03:45,490 現在,為什麼我們用這個用htmlspecialchars 功能? 67 00:03:45,490 --> 00:03:49,280 這是因為股票名稱和符號 實際上可能包含特殊 68 00:03:49,280 --> 00:03:54,410 字符不應該 被解釋為HTML。 69 00:03:54,410 --> 00:03:56,960 >> 好吧,所以這是它的報價。 70 00:03:56,960 --> 00:04:00,700 現在,我們要來看看的index.php 和投資組合。 71 00:04:00,700 --> 00:04:04,730 但首先,我們確實需要構建 投資組合表。 72 00:04:04,730 --> 00:04:07,310 以下是我們將如何做到這一點。 73 00:04:07,310 --> 00:04:09,390 >> 因此,讓我們來看看結構。 74 00:04:09,390 --> 00:04:13,530 而且我們看到,投資組合 表都將有一個ID。 75 00:04:13,530 --> 00:04:17,760 所以這將是用戶的 的ID是插入的股份。 76 00:04:17,760 --> 00:04:21,839 我們有一個符號,這將是 該公司是我們的象徵 77 00:04:21,839 --> 00:04:23,610 插入的股份。 78 00:04:23,610 --> 00:04:27,940 然後股價是多少 被插入的股。 79 00:04:27,940 --> 00:04:33,490 >> 所以請記住,每pset的規範, 我們指定的ID和符號 - 80 00:04:33,490 --> 00:04:37,140 我們檢查了索引,ID和 符號是主鍵。 81 00:04:37,140 --> 00:04:41,240 因此,一個用戶ID和符號配對 應該只出現一個 82 00:04:41,240 --> 00:04:44,010 時間在此表中。 83 00:04:44,010 --> 00:04:46,050 現在讓我們來看看代碼。 84 00:04:46,050 --> 00:04:50,950 >> 所以,現在的index.php是要抓住所有 我們的產品組合的信息和 85 00:04:50,950 --> 00:04:52,700 它顯示給用戶。 86 00:04:52,700 --> 00:04:56,230 因此,首先,我們要搶現金 該用戶目前已經從 87 00:04:56,230 --> 00:04:57,160 現金桌。 88 00:04:57,160 --> 00:05:02,070 記住,查詢總是會 返回一個數組的數組。 89 00:05:02,070 --> 00:05:06,070 因此,即使我們僅選擇現金 從單排,我們仍然需要 90 00:05:06,070 --> 00:05:10,850 搶了現金,通過提取 行的零指數和抓 91 00:05:10,850 --> 00:05:13,720 現金索引。 92 00:05:13,720 --> 00:05:17,810 >> 所以,現在我們要選擇所有的 從投資組合表信息 93 00:05:17,810 --> 00:05:21,640 這是相關於當前 登錄的用戶。 94 00:05:21,640 --> 00:05:25,070 我們當然需要驗證 實際上成功了,這是我們 95 00:05:25,070 --> 00:05:28,120 應該總是做當我們查詢。 96 00:05:28,120 --> 00:05:31,890 一旦我們有了所有這些信息, pset的規範告訴我們,我們 97 00:05:31,890 --> 00:05:36,298 應以很好地保存這樣做 所有在此的信息 98 00:05:36,298 --> 00:05:37,850 位置數組。 99 00:05:37,850 --> 00:05:42,250 >> 因此,我們遍歷所有的 投資組合信息,仰視 100 00:05:42,250 --> 00:05:47,030 與每行中的相關聯的庫存 投資組合信息,然後 101 00:05:47,030 --> 00:05:52,510 位置陣列中存儲的名稱, 價格,股票和所有的符號 102 00:05:52,510 --> 00:05:54,790 與該股票相關聯。 103 00:05:54,790 --> 00:05:59,040 最後,我們要呈現 portfolio.PHP,傳遞量 104 00:05:59,040 --> 00:06:02,290 現金,我們目前擁有的 數組中的位置,我們只是 105 00:06:02,290 --> 00:06:06,510 構成,在此標題 頁面這將是投資組合。 106 00:06:06,510 --> 00:06:09,166 >> 讓我們來看看portfolio.PHP。 107 00:06:09,166 --> 00:06:13,570 而且我們看到,各大有趣 部分是這個循環。 108 00:06:13,570 --> 00:06:17,410 因此,我們在循環的位置 陣,創造了 109 00:06:17,410 --> 00:06:19,420 表,其中該表 - 110 00:06:19,420 --> 00:06:23,220 我們在填充每一行與 我們把裡面的信息 111 00:06:23,220 --> 00:06:24,470 位置數組。 112 00:06:24,470 --> 00:06:28,250 >> 同樣,我們需要使用用htmlspecialchars 在這種情況下,符號或名稱 113 00:06:28,250 --> 00:06:31,020 包含HTML字符。 114 00:06:31,020 --> 00:06:36,690 在這裡,我們要乘以價格, 的股份,我們有量 115 00:06:36,690 --> 00:06:40,880 為了得到多少那 目前價值給用戶。 116 00:06:40,880 --> 00:06:42,880 就是這樣的組合。 117 00:06:42,880 --> 00:06:45,500 >> 現在,我們就來看看賣。 118 00:06:45,500 --> 00:06:50,190 所以賣是要回去的 格式,我們在register.PHP。 119 00:06:50,190 --> 00:06:53,200 我們看到,一個表格是怎麼回事 被發布到該頁面。 120 00:06:53,200 --> 00:06:57,270 但首先,當我們加載該頁面, 我們將做到這一點。 121 00:06:57,270 --> 00:06:58,880 >> 那麼,什麼是該做的? 122 00:06:58,880 --> 00:07:03,660 嗯,我們可能只是有銷售頁面 有一個文本框,用戶 123 00:07:03,660 --> 00:07:06,020 進入此符號的 我們想賣。 124 00:07:06,020 --> 00:07:08,890 但我們要更聰明一點 並且我們將有一個下降 125 00:07:08,890 --> 00:07:14,690 下,允許用戶選擇 實際的符號,他們已經有了。 126 00:07:14,690 --> 00:07:17,940 >> 所以,我們得到了用戶的投資組合。 127 00:07:17,940 --> 00:07:22,630 我們打算從投資組合選擇 所有的符號,用戶 128 00:07:22,630 --> 00:07:26,180 目前,目前 登錄的用戶。 129 00:07:26,180 --> 00:07:28,150 請確保成功。 130 00:07:28,150 --> 00:07:31,960 現在我們要遍歷所有的 返回的信息,只是霎那 131 00:07:31,960 --> 00:07:35,610 每一個符號,並將其存儲 在這個符號數組。 132 00:07:35,610 --> 00:07:37,570 >> 現在我們要 渲染賣出形式。 133 00:07:37,570 --> 00:07:43,380 所以賣的形式是要公正 是一個下拉菜單,一個選擇。 134 00:07:43,380 --> 00:07:49,140 而在賣出的形式每個選項是 將剛剛打印出來的符號 135 00:07:49,140 --> 00:07:52,380 我們從抓起 投資組合表。 136 00:07:52,380 --> 00:07:58,390 >> 這樣的銷售形式是要 提交返回sell.PHP。 137 00:07:58,390 --> 00:08:04,340 看著sell.PHP,這是代碼 那將執行,當我們提交 138 00:08:04,340 --> 00:08:05,555 此頁面。 139 00:08:05,555 --> 00:08:10,320 我們要驗證用戶 實際上進入了一個符號。 140 00:08:10,320 --> 00:08:12,730 >> 現在,假設他們沒有 - 141 00:08:12,730 --> 00:08:16,930 所以現在我們要確定有多少 共享用戶實際上賣 142 00:08:16,930 --> 00:08:20,830 以及有多少現金,用戶應該得到 售賣不少股份。 143 00:08:20,830 --> 00:08:25,210 因此,我們抓住的股份數目 用戶有這個標誌。 144 00:08:25,210 --> 00:08:30,690 我們正在尋找在投資組合的 給定用戶和給定的符號。 145 00:08:30,690 --> 00:08:34,289 >> 現在確保實際 返回的行。 146 00:08:34,289 --> 00:08:39,440 因為如果它沒有,用戶不 其實有一個符號來賣。 147 00:08:39,440 --> 00:08:42,890 假設他們確實有這個符號, 我們要搶的數量 148 00:08:42,890 --> 00:08:44,530 他們有股份。 149 00:08:44,530 --> 00:08:47,640 現在我們想看看怎麼了 多每股的價值。 150 00:08:47,640 --> 00:08:49,450 >> 所以我們用查找功能。 151 00:08:49,450 --> 00:08:52,910 我們正在尋找提升價值 的象徵。 152 00:08:52,910 --> 00:08:56,700 假設一下了成功,現在 我們要真正更新所有 153 00:08:56,700 --> 00:08:57,830 的信息。 154 00:08:57,830 --> 00:09:02,285 所以我們想從組合中刪除 我們正在出售股份。 155 00:09:02,285 --> 00:09:05,610 我們要更新的用戶 數額的現金。 156 00:09:05,610 --> 00:09:10,480 >> 我們正在通過股份更新它 倍的股票價格 - 157 00:09:10,480 --> 00:09:13,050 所以這是多少錢 用戶只需進行。 158 00:09:13,050 --> 00:09:15,150 現在,我們要更新我們的歷史。 159 00:09:15,150 --> 00:09:17,390 所以,我們沒有採取一看 在歷史記錄表呢。 160 00:09:17,390 --> 00:09:19,440 所以我們會回來的。 161 00:09:19,440 --> 00:09:23,690 >> 現在,終於,我們要重定向 回到投資組合。 162 00:09:23,690 --> 00:09:25,300 現在讓我們來看看買。 163 00:09:25,300 --> 00:09:28,910 所以,買應該是很 類似的賣。 164 00:09:28,910 --> 00:09:32,300 >> 我們看到,我們再次去 檢查,看看是否我們 165 00:09:32,300 --> 00:09:33,900 提交給本頁面。 166 00:09:33,900 --> 00:09:37,470 假設我們不是,我們是 要裝載的團購形式。 167 00:09:37,470 --> 00:09:40,210 那麼,團購的形式是什麼樣子? 168 00:09:40,210 --> 00:09:42,510 >> 我們在這裡看到它只是一個普通 形成的將 169 00:09:42,510 --> 00:09:44,450 提交返回buy.PHP。 170 00:09:44,450 --> 00:09:49,230 而這將有一個符號, 該用戶輸入,數 171 00:09:49,230 --> 00:09:53,330 用戶想要買股 該符號的,這就是它。 172 00:09:53,330 --> 00:09:59,890 因此,當我們提交返回buy.PHP,我們 現在要執行此代碼。 173 00:09:59,890 --> 00:10:04,250 >> 我們再次希望以驗證 用戶輸入有效的東西。 174 00:10:04,250 --> 00:10:06,730 所以在這裡我們要確保他們 實際上進入了一個符號。 175 00:10:06,730 --> 00:10:09,190 在這裡,我們正在確保他們 實際上進入股。 176 00:10:09,190 --> 00:10:12,840 在這裡,我們正在確保他們 進入股份整數,所以 177 00:10:12,840 --> 00:10:15,095 他們沒有試圖購買農行股份。 178 00:10:15,095 --> 00:10:17,630 179 00:10:17,630 --> 00:10:23,130 >> 現在,我們要查找的價格 符號,所以我們知道現金多少,我們 180 00:10:23,130 --> 00:10:26,590 應該減去的用戶。 181 00:10:26,590 --> 00:10:31,700 現在,我們將選擇多少現金的用戶 實際上有和確保 182 00:10:31,700 --> 00:10:33,960 那成功。 183 00:10:33,960 --> 00:10:35,600 在這裡,我們要抓住現金。 184 00:10:35,600 --> 00:10:39,660 而現在在這裡,我們要確保 用戶有足夠的現金。 185 00:10:39,660 --> 00:10:44,950 >> 所以,如果股數用戶 想買次,每次的價格 186 00:10:44,950 --> 00:10:49,100 該等股份大於 現金量,我們有,那麼 187 00:10:49,100 --> 00:10:50,950 用戶消費不起。 188 00:10:50,950 --> 00:10:54,500 假設用戶有足夠的現金, 現在我們要插入 189 00:10:54,500 --> 00:10:55,980 用戶的投資組合。 190 00:10:55,980 --> 00:10:59,900 好了,我們將插入到用戶的 如果這個組合正好是 191 00:10:59,900 --> 00:11:02,770 第一次用戶購買 上述特殊符號。 192 00:11:02,770 --> 00:11:06,630 >> 但是,如果他們已經發生 有一些蘋果公司的股票? 193 00:11:06,630 --> 00:11:10,930 好了,現在我們正在做的使用上 重複鍵更新語句。 194 00:11:10,930 --> 00:11:15,750 所以這就是為什麼我們前面指定的 標識和符號應該是一個聯合 195 00:11:15,750 --> 00:11:19,620 主鍵,因此,如果我們嘗試 插入一個ID和符號是 196 00:11:19,620 --> 00:11:24,670 已經存在,我們只是更新 股份包括新股的 197 00:11:24,670 --> 00:11:26,720 用戶購買。 198 00:11:26,720 --> 00:11:30,390 >> 現在,我們要更新量 現金該用戶具有的,因為它們 199 00:11:30,390 --> 00:11:33,390 只是花了點錢該等股份。 200 00:11:33,390 --> 00:11:36,060 最後,我們將更新 歷史表一次。 201 00:11:36,060 --> 00:11:38,590 其中,我們再次來看看 在第二個。 202 00:11:38,590 --> 00:11:43,230 最後,我們會重定向 回到portfolio.PHP。 203 00:11:43,230 --> 00:11:45,440 >> 因此,讓我們來看看 歷史表。 204 00:11:45,440 --> 00:11:48,770 205 00:11:48,770 --> 00:11:53,430 現在,請記住,歷史表是 應該讓所有的購買田徑 206 00:11:53,430 --> 00:11:57,580 銷售的所有用戶進行,而不僅僅是 股份目前有多少了 207 00:11:57,580 --> 00:12:00,500 用戶擁有,這是 投資組合的目的。 208 00:12:00,500 --> 00:12:06,350 因此,我們保持用戶的跟踪 是買還是賣,是否 209 00:12:06,350 --> 00:12:11,740 這種特殊的交易是買入 或賣出,這是作為符號 210 00:12:11,740 --> 00:12:17,540 買或賣,數量股份 我們正在購買或出售,該 211 00:12:17,540 --> 00:12:22,840 單一份額的是價格 買或賣,最後,在時間 212 00:12:22,840 --> 00:12:25,550 這買進或賣出 正在發生。 213 00:12:25,550 --> 00:12:27,650 >> 而這一切的歷史 我們需要的信息 214 00:12:27,650 --> 00:12:29,850 保持跟踪。 215 00:12:29,850 --> 00:12:37,340 所以,當我們看著賣,我們看到 我們被插入的歷史銷售, 216 00:12:37,340 --> 00:12:42,060 作為我們是否買入或賣出, 當前時間戳,以及 217 00:12:42,060 --> 00:12:46,070 當前用戶,這是作為符號 出售,那是股份數目 218 00:12:46,070 --> 00:12:50,010 被出售,並且價格 該股在這個時候。 219 00:12:50,010 --> 00:12:52,740 同樣,團購,它會 看起來幾乎是一樣的。 220 00:12:52,740 --> 00:12:56,820 唯一的區別是代替 的銷售,我們買。 221 00:12:56,820 --> 00:13:01,243 >> 因此,在銷售和購買,我們插入 在歷史表中所有的 222 00:13:01,243 --> 00:13:02,960 購買和銷售正在發生。 223 00:13:02,960 --> 00:13:08,680 因此,所有history.PHP需要做的是搶 從歷史記錄中的信息 224 00:13:08,680 --> 00:13:13,960 表,確保它成功了, 並呈現這些信息。 225 00:13:13,960 --> 00:13:18,770 所以在看history.PHP模板, 有趣的信息 226 00:13:18,770 --> 00:13:19,940 就在這裡。 227 00:13:19,940 --> 00:13:23,935 >> 我們遍歷所有的 交易,印刷,這是否 228 00:13:23,935 --> 00:13:29,580 是買或賣,格式化日期時間 我們做這個交易。 229 00:13:29,580 --> 00:13:31,520 請記住,我們需要使用用htmlspecialchars 在 230 00:13:31,520 --> 00:13:33,270 符號,以防萬一。 231 00:13:33,270 --> 00:13:37,150 最後,格式化數 被買了,價格是股 232 00:13:37,150 --> 00:13:39,310 當時一個單一的份額。 233 00:13:39,310 --> 00:13:42,570 >> 並顯示所有的歷史 我們需要的信息。 234 00:13:42,570 --> 00:13:44,220 這就是它的這個pset中。 235 00:13:44,220 --> 00:13:47,820 我的名字是羅布,這 為CS50財務。 236 00:13:47,820 --> 00:13:52,171