>> [音樂播放]
>> 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財務。