[音樂播放] ROB BOWDEN:你好。 我搶了,我希望你準備好 把股票在這個解決方案。 首先,讓我們來看看寄存器。 所以請記住,我們在這裡檢查 看有沒有形式是 發布到該頁面。 我們將這樣的第一件事 要做的就是去了別的。 而我們將要呈現 報名表。 因此,登記表是怎麼回事 發布到register.PHP。 又是什麼打算送? 它會發送一個用戶名的 用戶要填寫,密碼, 並確認 - 密碼再次鍵入。 所以,現在當該窗體發送到 register.PHP我們如果執行這個。 看著這個,如果,我們先 要驗證輸入。 我們希望確保用戶名 和密碼不是空的, 確認實際 相匹配的密碼。 一旦我們確認,我們可以 實際註冊用戶。 這是什麼意思? 那麼,我們要插入的 用戶進入我們的數據庫。 這就是我們將如何做到這一點。 所以,我們要插入到用戶 表中的字段的用戶名, 哈希,和現金。 現金的默認值 將是10,000。 而我們將通過為用戶名, 用戶名,通過POST超 全球那些是從形式提交。 而我們將要進行加密 密碼。 所以,如果說成功了,那麼結果 將非假。 如果它失敗了,那麼我們 要道歉。 出事了。 還有什麼在哪裡呢? 好了,需要有 唯一的用戶名。 這樣一來,查詢可能失敗 如果用戶名已經 存在於表中。 因此,假設它是一個唯一的用戶名, 那麼我們要查詢搶 該用戶的ID。 記住,ID是 自動遞增。 所以如果出現這種情況失敗的一些 原因,那麼我們要道歉 我們不能搶的ID。 但假設它並沒有失敗,那麼 我們搶的ID從什麼查詢 返回的,存儲在我們的會議 - 所以我們想通過登錄該用戶 存儲的ID在會話 超級全局,最後 重定向到我們的投資組合。 這就是它的寄存器。 現在,我們要轉移到的報價。 所以報價都將有 一個非常類似的設置。 我們在這裡看到,這是代碼, 我們要執行時,形式是 發布到該頁面。 但首先,我們實際上有 來呈現形式。 因此,採取一看報價表, 哪些領域有哪些? 我們看到,所有的報價已經是一個單一的 文本框的名稱符號。 所以當報價表張貼 到quote.PHP我們現在要 執行這段代碼。 而在我們這個後超唯一的變量 全球將是象徵。 我們驗證,以確保 他們居然張貼的象徵。 如果他們沒有,我們說你 必須提供一個象徵。 假設他們確實提供了一個符號, 我們仰望的符號。 現在還記得那樣子了可能 因為失敗了,好吧,也許這不是一個 有效符號開始。 因此,如果這個查詢返回false, 我們要道歉的 符號未找到。 一旦我們找到符號,現在我們 可以使quote.PHP模板。 那是什麼樣子的? 這只是要打印共享 無論股票名稱是 值得一無論股票價格。 現在,為什麼我們用這個用htmlspecialchars 功能? 這是因為股票名稱和符號 實際上可能包含特殊 字符不應該 被解釋為HTML。 好吧,所以這是它的報價。 現在,我們要來看看的index.php 和投資組合。 但首先,我們確實需要構建 投資組合表。 以下是我們將如何做到這一點。 因此,讓我們來看看結構。 而且我們看到,投資組合 表都將有一個ID。 所以這將是用戶的 的ID是插入的股份。 我們有一個符號,這將是 該公司是我們的象徵 插入的股份。 然後股價是多少 被插入的股。 所以請記住,每pset的規範, 我們指定的ID和符號 - 我們檢查了索引,ID和 符號是主鍵。 因此,一個用戶ID和符號配對 應該只出現一個 時間在此表中。 現在讓我們來看看代碼。 所以,現在的index.php是要抓住所有 我們的產品組合的信息和 它顯示給用戶。 因此,首先,我們要搶現金 該用戶目前已經從 現金桌。 記住,查詢總是會 返回一個數組的數組。 因此,即使我們僅選擇現金 從單排,我們仍然需要 搶了現金,通過提取 行的零指數和抓 現金索引。 所以,現在我們要選擇所有的 從投資組合表信息 這是相關於當前 登錄的用戶。 我們當然需要驗證 實際上成功了,這是我們 應該總是做當我們查詢。 一旦我們有了所有這些信息, pset的規範告訴我們,我們 應以很好地保存這樣做 所有在此的信息 位置數組。 因此,我們遍歷所有的 投資組合信息,仰視 與每行中的相關聯的庫存 投資組合信息,然後 位置陣列中存儲的名稱, 價格,股票和所有的符號 與該股票相關聯。 最後,我們要呈現 portfolio.PHP,傳遞量 現金,我們目前擁有的 數組中的位置,我們只是 構成,在此標題 頁面這將是投資組合。 讓我們來看看portfolio.PHP。 而且我們看到,各大有趣 部分是這個循環。 因此,我們在循環的位置 陣,創造了 表,其中該表 - 我們在填充每一行與 我們把裡面的信息 位置數組。 同樣,我們需要使用用htmlspecialchars 在這種情況下,符號或名稱 包含HTML字符。 在這裡,我們要乘以價格, 的股份,我們有量 為了得到多少那 目前價值給用戶。 就是這樣的組合。 現在,我們就來看看賣。 所以賣是要回去的 格式,我們在register.PHP。 我們看到,一個表格是怎麼回事 被發布到該頁面。 但首先,當我們加載該頁面, 我們將做到這一點。 那麼,什麼是該做的? 嗯,我們可能只是有銷售頁面 有一個文本框,用戶 進入此符號的 我們想賣。 但我們要更聰明一點 並且我們將有一個下降 下,允許用戶選擇 實際的符號,他們已經有了。 所以,我們得到了用戶的投資組合。 我們打算從投資組合選擇 所有的符號,用戶 目前,目前 登錄的用戶。 請確保成功。 現在我們要遍歷所有的 返回的信息,只是霎那 每一個符號,並將其存儲 在這個符號數組。 現在我們要 渲染賣出形式。 所以賣的形式是要公正 是一個下拉菜單,一個選擇。 而在賣出的形式每個選項是 將剛剛打印出來的符號 我們從抓起 投資組合表。 這樣的銷售形式是要 提交返回sell.PHP。 看著sell.PHP,這是代碼 那將執行,當我們提交 此頁面。 我們要驗證用戶 實際上進入了一個符號。 現在,假設他們沒有 - 所以現在我們要確定有多少 共享用戶實際上賣 以及有多少現金,用戶應該得到 售賣不少股份。 因此,我們抓住的股份數目 用戶有這個標誌。 我們正在尋找在投資組合的 給定用戶和給定的符號。 現在確保實際 返回的行。 因為如果它沒有,用戶不 其實有一個符號來賣。 假設他們確實有這個符號, 我們要搶的數量 他們有股份。 現在我們想看看怎麼了 多每股的價值。 所以我們用查找功能。 我們正在尋找提升價值 的象徵。 假設一下了成功,現在 我們要真正更新所有 的信息。 所以我們想從組合中刪除 我們正在出售股份。 我們要更新的用戶 數額的現金。 我們正在通過股份更新它 倍的股票價格 - 所以這是多少錢 用戶只需進行。 現在,我們要更新我們的歷史。 所以,我們沒有採取一看 在歷史記錄表呢。 所以我們會回來的。 現在,終於,我們要重定向 回到投資組合。 現在讓我們來看看買。 所以,買應該是很 類似的賣。 我們看到,我們再次去 檢查,看看是否我們 提交給本頁面。 假設我們不是,我們是 要裝載的團購形式。 那麼,團購的形式是什麼樣子? 我們在這裡看到它只是一個普通 形成的將 提交返回buy.PHP。 而這將有一個符號, 該用戶輸入,數 用戶想要買股 該符號的,這就是它。 因此,當我們提交返回buy.PHP,我們 現在要執行此代碼。 我們再次希望以驗證 用戶輸入有效的東西。 所以在這裡我們要確保他們 實際上進入了一個符號。 在這裡,我們正在確保他們 實際上進入股。 在這裡,我們正在確保他們 進入股份整數,所以 他們沒有試圖購買農行股份。 現在,我們要查找的價格 符號,所以我們知道現金多少,我們 應該減去的用戶。 現在,我們將選擇多少現金的用戶 實際上有和確保 那成功。 在這裡,我們要抓住現金。 而現在在這裡,我們要確保 用戶有足夠的現金。 所以,如果股數用戶 想買次,每次的價格 該等股份大於 現金量,我們有,那麼 用戶消費不起。 假設用戶有足夠的現金, 現在我們要插入 用戶的投資組合。 好了,我們將插入到用戶的 如果這個組合正好是 第一次用戶購買 上述特殊符號。 但是,如果他們已經發生 有一些蘋果公司的股票? 好了,現在我們正在做的使用上 重複鍵更新語句。 所以這就是為什麼我們前面指定的 標識和符號應該是一個聯合 主鍵,因此,如果我們嘗試 插入一個ID和符號是 已經存在,我們只是更新 股份包括新股的 用戶購買。 現在,我們要更新量 現金該用戶具有的,因為它們 只是花了點錢該等股份。 最後,我們將更新 歷史表一次。 其中,我們再次來看看 在第二個。 最後,我們會重定向 回到portfolio.PHP。 因此,讓我們來看看 歷史表。 現在,請記住,歷史表是 應該讓所有的購買田徑 銷售的所有用戶進行,而不僅僅是 股份目前有多少了 用戶擁有,這是 投資組合的目的。 因此,我們保持用戶的跟踪 是買還是賣,是否 這種特殊的交易是買入 或賣出,這是作為符號 買或賣,數量股份 我們正在購買或出售,該 單一份額的是價格 買或賣,最後,在時間 這買進或賣出 正在發生。 而這一切的歷史 我們需要的信息 保持跟踪。 所以,當我們看著賣,我們看到 我們被插入的歷史銷售, 作為我們是否買入或賣出, 當前時間戳,以及 當前用戶,這是作為符號 出售,那是股份數目 被出售,並且價格 該股在這個時候。 同樣,團購,它會 看起來幾乎是一樣的。 唯一的區別是代替 的銷售,我們買。 因此,在銷售和購買,我們插入 在歷史表中所有的 購買和銷售正在發生。 因此,所有history.PHP需要做的是搶 從歷史記錄中的信息 表,確保它成功了, 並呈現這些信息。 所以在看history.PHP模板, 有趣的信息 就在這裡。 我們遍歷所有的 交易,印刷,這是否 是買或賣,格式化日期時間 我們做這個交易。 請記住,我們需要使用用htmlspecialchars 在 符號,以防萬一。 最後,格式化數 被買了,價格是股 當時一個單一的份額。 並顯示所有的歷史 我們需要的信息。 這就是它的這個pset中。 我的名字是羅布,這 為CS50財務。