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