>> [音乐播放]
>> 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财务。