>> JASON HIRSCHHORN：欢迎 大家到八周。
我们有一个令人兴奋的一周摆在我们面前。
你们有鸽子在过去的几 讲座到PHP，SQL，HTML，CSS，所以
四大品牌新语言的打算 拿起剩下的这门课程。
我们还将学习一些其他的 课程结束前的语言。
但无论如何，不​​用说，这是一个 非常激动人心的时刻在CS50，现在你
已经掌握了C，表面上，并 移动到编程的网站。
>> 所以本周，我们将继续 通过四个旋风之旅
我刚才提到的语言， HTML，CSS，PHP和SQL。
并希望，我们会留下大量的 时间段的结束谈话
关于本周的P设置和答案 大家有任何问题。
>> 每个星期，同样的资源列表 为你，帮助你用一周的
问题设置和准备 在材料 -
但此周尤其，对于这些 基于web的问题集，有一个
主机的其他资源列 那里，你将有可能
找到难以置信的帮助。
我有他们在这里。
我会向您发送电子邮件本节之后， 而这也上线了。
>> 但在特定的，有很多 伟大的资源在那里。
也有一些不是那么大 的，所以要警惕那些。
但是在这张幻灯片上，我有四个好 资源，每一个的
你会工作语言 这个星期 -
一个参考手册的HT​​ML， 参考表CSS。
这里这个权利是PHP手册。
>> 因此，而不是打字的人，然后一个PHP 命令，这就是你会
去查查函数原型 和例子，也有一些技巧和
技巧使用PHP函数。
你会经常使用这个网站， 所以我鼓励你成为
熟悉它。
它可以是一个有点技术，但它 还提供一吨的资源和
示例所有的功能和 甚至其他，想怎么用数组或
不同类型的变量。
这个网站是PHP非常有帮助。
>> 然后，为SQL，如果你一头扎进这 本周的问题集，你就会知道
我们正在使用的数据库。
我们通过访问数据库 一个比较漂亮的用户界面。
或者说，有一种方法来访问 该数据库。
用户界面是 所谓的phpMyAdmin。
有一个SQL选项卡，我们将 看看今天以后。
>> 而且你可以输入到他们的示例SQL 查询，做事情在你的数据库
然后运行这些查询。
如果他们是正确的，它会 说，这其中的正确。
如果他们不正确，它会 说，这是不正确。
这是一个伟大的地方来练习你 写他们到之前的SQL查询
你的代码，以确保您 有格式正确无误。
>> 最后，在这里另外一个网站。
这是一个网站，你可以 去检查，以确保您的
HTML代码是有效的。
所以，把你的问题之前设置 这一周，确保所有的
你的HTML是有效的。
>> 上周，你曾经的valgrind跑， 请确保你有没有内存泄漏。
这一周，你需要确保所有的 你的代码是有效的HTML5。
如果它不是有效的HTML5，你 要得到分折。
>> 所以一定要确保 -
只是因为它的工作原理不 意味着它是完全有效的。
通过本网站运行代码 将其入伙前
同样，这里的网站。
>> 如果您有任何意见对我来说，我们有 一对夫妇更多的部分留下，
我总是想要做什么，我可以给 为您提供所有的最好的部分
体验成为可能。
因此，让我知道，如果有什么事，我 怎样才能提高或者有
你看，我可以做的更好的事情。
谢谢，AVI。
把它放在网站上。
>> 这是自行车我有我的时候 是，让我们说，四家。
这是一个忍者神龟龟 骑自行车，如果你看不出来，
因为它是一个有点模糊。
您可以独家发售现在得到它 对，我认为，100​​美元左右。
>> 但这个自行车是我想要的功能 你要注意这些
就在这里。
这些都是辅助轮。
到现在为止，你一直手持 通过C.我们已经采取了很长
时间两个月加， 要经过C。
>> 对于这些未来一，语言， 我们不会以
花那么多的时间。
训练车轮脱落。
而且我们要潜入这些 语言快速移动
他们迅速，这是不是说， 我们只是要离开你游泳
在那里，没有办法支持 自己或弄清楚如何将这些
工作语言。
我刚才给你看的列表 的资源来帮助你。
>> 但请记住，PHP是令人难以置信 类似于C。我们就去了
今天和一些不同之处吧。
但在大多数情况下， 有for循环。
还有，如果条件。
>> 当你想解决一个问题， 你要使用
结合这些的。
这是非常相似的。
逻辑应该是非常相似的 你在过去所做的一切。
什么是真正的新本周是 语法以及如何表达自己。
而你想要写一个for循环，但它 可能看起来有点不同。
或者你想创建一个数组，但它 可能看起来有点不同。
>> 所以请记住，前进， 的逻辑是非常相似的什么
你在过去所做的那样。
但你现在将要遇到 很多新的语法。
我们不打算步行通过 语法中的所有元素。
所以，这真的取决于你要弄清楚， 在网上或通过伸出的
讨论或发送电子邮件至我或交谈 彼此，如何在写东西
PHP和如何编写SQL查询 以及如何使用HTML和CSS。
>> 但只要你知道，这并不是说 我们试图扔掉你在那里
再次游泳的鲨鱼。
这就是你将有可能与做 您的最终项目，如果你选择一个
不同的语言，像IOS和 目标C，或者如果你决定开始
规划中的未来 潜入其他语言，
像Python或Ruby。
>> 通常情况下，该逻辑是非常相似的 在所有这些语言，而
语法是有什么不同。
这将是你的，因为 程序员去使用网络
提供给您和数字资源 如何表达你知道如何
发表在C中，在 不同的语言。
所以这是很好的做法，既为您的 最后的项目，并再次，对于
你可能会做 你离开后，CS50。
>> 在我们继续之前，是否有人 有任何疑问什么
我已经做了这么远吗？
大。
让我们继续前进。
>> 首先，我们要简单谈谈 关于chmod命令。
这一点，我们会做的开始 你的问题设置。
一个的第一个指令 对你来说，你下载后，
分配的代码，是改变 档案和权限
您收到的目录。
>> 任何人都可以大胆的猜测或知道 为什么要改变它是非常重要的
某些文件和权限 您的计算机上的目录？
阿维 -
>> 观众：那么没有人，除了 你可以看到你在做什么？
>> JASON HIRSCHHORN：确定。
因此，如果我们想要把东西就 网络，并设置权限
只有你能看到的东西， 再没有其他人可以
看到自己创建的东西。
还有什么？
是啊。
>> 观众：防止别人说你 不想看到的东西，从
看到的东西。
>> JASON HIRSCHHORN：这是真的也。
有可能是一些代码， 你写的，你不
希望人们能看到。
你可能用的人看到的确定 您的HTML和你的JavaScript。
但你的PHP，后端代码，很多的 逻辑到你的代码，也许
存储你的一些密码的东西 为你的数据库，你不
希望人们看到， 类型的信息。
>> 因此，重要的是，每个文件和 我们创建的目录有权限
适用于我们是否要 人们看到这些类型的文件和
目录，并能够访问它们 甚至还有可能改变他们。
>> 因此，有三种类型的 权限。
有一个读权限，这意味着 你可以读一个文件或目录的
该目录的内容。
还有的写权限，这 意味着你可以改变文件或更改
一个目录，然后执行 权限，这意味着你可以
执行一个文件或者说，你 可以移动到一个目录中。
所以，光盘什么的，如果你有 执行它的权限，你可以移动
进入该目录。
>> 这是一个简单的例子。
同样，你已经了解了这 在问题设置。
但是，我创建一个目录 用mkdir命令。
我更改权限。
这两行实际上做 完全相同的事情。
这说明了语法 更改权限，无论你做
在一个+ X或711，这些都是相同的。
>> 我们低头看着这个漂亮的桌子。
我们看到，有用户 第权限。
这就是你的个性， 你的服务器，有可能。
然后有组和其他用户。
那些之间的差异 2顷比较琐碎。
所以一般我们会结块 那些在一起。
>> 但本质上，如果我们有一个文件 所谓包括我们要
能够编辑自己，我们要 他人能够执行，
它的许可711。
而且我们看到，下来 此处在此表中。
我们有读，写和执行。
对于我们每个人，我们要 能够做到这些。
集团和其他人，我们只希望 它们能够执行。
>> 我们翻译的方式 成若干
权限是通过二进制。
所以，如果我们有三个的，这是一个1 在那些列，1的二进制补码
柱，1四肢列。
这是7在那里。
而这个权限是1。
此权限是1。
因此，当711是一样的给 自己读，写和执行，
和其他人的执行权限。
>> 这条线就在这里，我们一般 将具有读取和写入时，我们
创建目录。
所以，这条线在这里只是增加了执行 特权给大家。
所以这将是类似于在 除了我们所拥有的，
加1，1，1到大家。
>> 而这一点，这是不必要的 添加读取和写入。
但是，如果你要使用的号码， 你不能只是补充一下。
您覆盖任何人的许可 那里与新实施这些
数你给。
这是相当快的。
没有任何人有任何疑问， 有关更改权限？
>> 确定。
如果我有一个PHP文件，有什么权限 我希望它有哪些？
这是问题的集中规范。
所以，你可以看看规格和 然后读了我答案。
>> 观众：你希望用户 有读写权限。
和你想每个人都 别的什么都没有。
>> JASON HIRSCHHORN：什么 号码是什么？
>> 观众：600。
>> JASON HIRSCHHORN：600。
所以，CHMOD 600 - 每当你打印 一个PHP文件，chmod将其转换600。
确定。
我有一个目录。
有人除了杰夫， 我有一个文件夹。
我想将什么权限 给该文件夹 -
也是在问题设置规范， 右下方这个答案或
以前的答案？
也有可能在幻灯片上 -
马库斯。
>> 观众：对于
文件夹，它是711。
JASON HIRSCHHORN：711 -
这样一个文件夹，你想给711。
你想成为能够读取该文件夹， 更改目录，进入
该文件夹。
和你想别人都可以 到该文件夹​​中导航，但
不一定会改变其内容。
怎么样一个非PHP文件， 说，一个JavaScript文件？
我们想要怎样的权限 给该类型的文件？
>> 观众：644。
>> JASON HIRSCHHORN：644 -
我们为什么想给它644？
>> 观众：为了让其他人阅读。
和你读或写。
>> JASON HIRSCHHORN：那么好吧，大家 其他人可以阅读该JavaScript文件。
你可以改变，除了 要能够读取它。
所以最常见的错误的人之一 有这个问题的设置及其
最后的项目，如果它是一个基于Web的最终 项目，他们将不会设置
正确的权限。
并且他们将无法 看到他们的网站。
或者他们的网站的特定部分。
>> 因此，请确保您的设置 权限正确。
不要只是假设，它会 会自动为你做它。
>> 确定。
这是一个很小的事情，我们花了 时间上量好，所以
我们可以钉它。
让我们继续为HTML。
>> 再次，对于这些未来四个主题， 我们要通过他们去
比较快。
所以，请随时阻止我在任何 时间，如果您有任何疑问，
无论他们是关系到我的支付 或从东西或讲座
即使从问题设置。
阻止我只要你需要。
当我们到了年底，我们就 开始准备过的问题集。
>> 这样的HTML代表超文本 标记语言。
这是不是一种编程语言。
它所做的就是结构内容 并且还提供了一些元数据。
因此，例如，据推测，许多 您以前使用过Facebook的。
并且可以包括链接，或者你 可以把一个链接作为您的状态。
>> 然后，你会发现链接 总是有一个漂亮的图片
它和一些文字。
通常，这是一些元数据 对于一个网页。
而且它是Facebook的特定的元数据。
然后，当Facebook被阅读了 页面并插入该链接，它
看起来对于特定的元数据，因此它 知道要显示什么画面，什么
标题来显示，并且什么 抽象的文字来显示。
>> 因此，我们可以包括元数据 我们的网页使用HTML。
它也可以帮助我们结构 的含量，通常，什么
我们想要去的地方。
>> 在HTML中一切都是​​一个元素。
和元素在这里 -
这CS50，文字的元素。
而且它有一些标签。
这个它有一个标签。
我们注意到有一个一个的 开始，然后斜线的，所以
关闭一个标签底。
有时候，有没有一个开放的 标记和结束标记。
这里还有一件事。
>> 我们会看到这样一个例子 对下一张幻灯片。
所以，你不需要一个开放 和结束标记。
但对于这一点，我们住这个 在一个锚标记CS50元素。
而且基本上，这些标记告诉 浏览器如何处理
的特定元素。
>> 如此反复，CS50是文本 我们将要看到的。
它将会是 一种锚。
锚本质上是用来 对于链接的东西。
特别是，你可以 已经知道，这是一个
链接到CS50主页。
>> 标签的下一部分 - 或一般， 标签的一部分是
属性。
我们看到这里，那 该标签有一个
属性，这个href属性。
他们修改特定的标签。
事实上，如果你去的一 网站或我给你的参考
之前或查找标签在线， 你会发现有一吨的
潜在的属性。
>> 这大概是1 最常见的。
这是告诉我创建一个 链接到该特定网站。
和一般属性给出， 如果不是全部发出，
在键 - 值对。
>> 因此，这里的关键，HREF。
和值是在这里正确的。
而这会派上用场，后来， 当我们开始使用一些库
帮助我们的代码中的JavaScript 或写HTML内容。
我们经常将是 - 就像我们 会做阵列支架0和
会给我们一些价值。
>> 在未来，我们会做很多的 东西喜欢的事支架的href。
而这会给我们的价值 HREF，或者如果我们要更新的href
键，然后给它 一个特定的值。
所以就像使用数组，我们不得不 键0或1键或2键，或即使有
哈希表，好了，你的哈希表 还有，你可能有 - 它
是一个数组，所以0键，键1，键2。
>> 该指数在那里，我们可以 认为那是一个关键。
和值是什么 被存储在那里。
所有这些属性 是键 - 值对。
而这将是重要的改变 他们或更新它们或
后来将它们插入。
>> 最后，你已经看到了这个结构 之前，但是这是最基本的
HTML页面的结构。
在顶部，我们告诉你， 这其实就是HTML。
然后我们有一个开放的HTML 标记和结束HTML标记。
所以一切的内 这是HTML。
>> 我们看到的头部和主体。
您的文档的头部 一般包括什么？
任何猜测为你 放在头上？
>> 观众：你把标题和风格。
>> JASON HIRSCHHORN：标题。
这是一个伟大的猜测。
我可能已经放倒你去的。
什么是一些其他的东西？
我们提到的其中之一， 可能去的头部。
>> 观众：他说，款式。
>> JASON HIRSCHHORN：样式 -
所以如果你想在一个JavaScript链接 或什至一个CSS，而你说
约当你在谈论 有关样式。
另一个文件，你想在一个链接 文件外，也可能会
在头部。
>> 还有什么？
我们提到了几个幻灯片 的事情前一个
HTML可以为你做什么。
它可以提供 -
开始于一个的M -
>> 观众：元数据。
>> JASON HIRSCHHORN：元数据 - 因此很多 元数据将在头去，
因为这将不一定需要 是你的代码的身体的一部分。
这是一般 - 身体是 内容，有人看到的。
因此我只是给了答案 我的下一个问题。
但在体内通常的含量 那将被显示
上的网页。
>> 正如我们将看到的，复杂的网站 往往混为一谈，或改变了什么
它们放置在头部和主体。
但是总体来说，头部包含的东西 用户是不会
在屏幕上看到。
它连接在其他文件 并提供元数据。
然而，体内含有的一切 用户将要看到的。
任何知道这个p标签意味着什么？
>> 观众：段落？
>> 观众：打印。
>> 观众：这并不意味着打印。
>> 观众：这是否意味着段落？
>> JASON HIRSCHHORN：段落 - 所以这是一个段落。
而这个p标签，我可能刚输入 这在屏幕上，然后
包括换行符 在它的结束。
任何人都知道如何将 换行符？
>> 观众：公关 -
>> JASON HIRSCHHORN：公关 -
>> 观众：斜线公关？
>> JASON HIRSCHHORN：公关斜线 代表换行符。
但段有具体的 格式。
我们会得到一个格式化 第二，当我们谈论的CSS。
但一切这些p标签内 也会有一些默认的格式
与它相关的，可能是一些 之间不同间距的
段落。
而这将是区分单程 代码块。
>> 任何其他标​​记 -
什么是你见过的其他标签？
>> JASON HIRSCHHORN：通过H6 H1。
通过H6 H1，和那是什么？
>> 观众：这将意味着有多大 和大胆的字母。
>> JASON HIRSCHHORN：对， 它代表了头。
所以header1的是一个很大的标题。
它可能会在默认情况下，要大胆，一 大字体的大小，大概集中在
在屏幕上，一路下跌到H6， 它是一个较小的字体大小，减
强调。
当然，你可以在你的CSS文件 或者在某个地方你的代码 - 这，
再次，我们会得到，在第二 - 改一下默认行为
的一个h1标签。
>> 但请记住，铬，野生动物园， 火狐，IE浏览器都有
默认查找了很多 这些标准标签。
您可以再次，永远改变 他们的样子。
任何其他标​​记，每个人都 已经见过？
是啊 -
>> 观众：一个DIV的网站。
>> JASON HIRSCHHORN：一个div标签 - div标签 没有任何内建的格式，每
本身，用于阻挡 不同类型的代码。
任何其他标​​记？
是。
>> 观众：李 -
>> JASON HIRSCHHORN：李 -
什么是礼呢？
>> 观众：列表。
>> 观众：列表
>> JASON HIRSCHHORN：li为 对于列表中的元素。
有两种类型的列表。
哪两种类型？
>> 观众：有序和无序。
>> JASON HIRSCHHORN：有序和 无序的 - 所以UL看台
对于无序列表。
这就是，如果你想有一个子弹 点，子弹的列表。
有序列表是一个编号的列表。
所以你会做一个开放的UL标签，然后 列表中的元素吨，然后
关闭UL标记。以及将 创建一个无序列表。
>> 我们将看到一些例子 的HTML在一个位。
但在此之前，我想要得到的CSS。
和CSS代表层叠 样式表。
这是非常密切相关 以HTML，但略有不同。
这可以帮助您格式化所有的内容 该HTML结构。
>> 所以在CSS中，我们一般不希望 每一个样式单头或每
单一的形象或每 单款。
我们希望一些风格元素 或者一个特定的元素。
和我们一路样式的特定 元素是给它一个ID。
>> 所以这是一个属性。
它有一个键和一个值。
ID是关键。
标志是价值。
我随机挑取的标志。
如果你给的东西一个ID， 通常，只应给予
给一个元素。
>> 然后，在你的样式表，你可以 风格，特定的元素，然而
你希望它看起来。
如果你想要的款式了一些 元素，也许这是一个特定的类
头的，只有你的头的部分。
也许这是一个头和一个图像和 段你都希望为中心。
然后，你可以给这些组 元素的所有类。
而且你可以给这个类 特定的样式。
因此，一个ID和一个类两种方法 打破你的代码，这样你就可以成为帮助
更具体的在你的风格。
>> 有三种方法来样式。
第一个是，用 这个样式属性。
所以你看，风格关键是风格。
样式值实际上是 另一个关键值列表。
>> 在这种情况下，我选择了 一键，文本对齐。
我说，中心。
你可能会问自己在这个 一点，我怎么会知道
文本对齐。
这是什么，即使做？
这是一个很大的问题要问，以及 我们去到那里在第二。
所以这就是样式的东西的一种方式， 只要给它的样式属性。
>> 另一种样式的东西是 - 这是AKSHAR前面提到的。
您可以使用样式标记，并将该 在你的HTML文档的头部。
所以你基本上是说， 这里里面的内容
是一些样式的内容。
而对于该格式是你的事 想要的款式，然后里面
大括号，键值对的 属性，你想给
该特定类型的元素。
>> 最后，这是 最常用的方法。
这是我们的方式 做到这一点P中集7。
这是一个外部的样式表。
所以，你有一个。css文件。
和它里面，你会看到很多的 事情是这样的，这个名字
某些类型的元素或一个ID或 一个类，然后，卷曲的内
大括号，键值对的列表。
>> 当然，如果你创建一个外部 文件，你要
需要包括它 -
犀利包括，那会 成为了C比喻 -
在你的HTML文件。
所以，你必须包含这个 在你的HTML文件中的代码。
这是该文件的名称和 假设它是在同一个目录下。
>> 确定。
这是一个很多。
而我们现在要呼吸，并期待 在一些真正的，活的网站，
探索这更多。
但在此之前，我们这样做，是否有人 有什么问题吗？
>> 所以，如果你想这样做，随着 我，我们可以去家电。
而我选择了CS50主页。
你可以与任何网站做到这一点。
但我们为什么不开始 在CS50的主页？
>> 让我们来刷新。
其实我强烈建议你在干什么 这个跟我一起，因为我们
打算现在要做的将是 令人难以置信的方便的你，不仅在
P-7集，但在P-8设置为好。
是啊。
>> 观众：有没有办法做评论 在HTML中，不使用PHP？
>> JASON HIRSCHHORN：是的，可以 在HTML中提出意见。
>> 观众：什么是语法？
>> 观众：感叹号短跑冲刺。
>> 观众：确定。
>> JASON HIRSCHHORN：是的。
即语法。
您可以在HTML中提出意见。
你可以在PHP中提出意见。
>> 正如你所看到的，在HTML注释会 仍然显示，当我们看
某网站的HTML源代码。
因此，这cs50.net。
如果你右击在最现代的 在几乎所有的网页浏览器，可以查看
该页面的源代码。
因此，让我们做到这一点的CS50。
>> 和你瞧，我们 看到一个巨大的东西。
CS50实际上看起来相当不错。
很多网站会不会 看看这个漂亮的。
如果你去谷歌的主页 并打开它。
它不会看这个不错的。
>> 但你注意到，在顶部 -
这是有点小。
让我们把这个更大的。
确定。
在顶部，DOCTYPE HTML， 这是熟悉的。
然后，我们看到了开放的HTML标签和 头，就在这里，所有的
这些meta标签。
你可以看到这个OG，不 要进入这件事情。
但我几乎可以肯定在那 这些将是Facebook的。
>> 这实际上是Facebook的。
我认为，代表开放的图形。
所以请记住，我提的有 功能NEW特定的元数据就可以
给到一个页面。
那什么是正确的位置。
>> 所以，当你在Facebook上链接此页面， 图像它会显示
这是图像就在这里。
而你实际看到它的 Facebook的，因为它是
Facebook的形象。
>> 但无论如何，我们正在一边。
因此，我们有一些元数据标签在这里。
我们看到CS50称号。
再次，标题是善有善报 在这里在浏览器选项卡。
我们看到这个链接是在，就在这里， 外部JavaScript文件。
>> 我们还没有谈到JavaScript的多， 但下周 - 当然，如果
你在做一个基于Web的问题集， 您将使用JavaScript。
这是您在外部链接如何 JavaScript文件。
我们看到这里，终于，在CSS 样式表，即这些文档
风格的这份代码。
>> 让我们真正打开和 看看真的很快。
这看起来疯狂。
有没有办法，我会 能通读。
所以，你实际上可以不过，如果你拿 一起来看看，你可以排序的看到，
有 -
我们走吧。
>> 这看上去就像我们所看到的 之前，背景颜色，将其设置
等于一些红绿蓝值。
排序这东西不应该似乎 国外，即使当介绍
这样，它可以是 有点势不可挡。
我们不是要看看这个CSS文件 或花很多时间在上面，因为
它是，再次，非常难以阅读。
>> 让我们回到这 HTML页面为CS50。
并让我们向下滚动到身体。
而且里面我们看到这个div标签。
我们看到了一个头就在这里。
我们看到的锚标记。
>> 而这个列表元素是 给定一个特定的类。
而且我们看到，重复类 一遍又一遍。
有你柯蒂斯。
有HTML5中的注释。
>> 正如你看到的，我们仍然可以看到 它，但它没有显示出来。
它实际上是非常有趣的。
这看起来是这样的成绩列表 元素被注释掉。
如果我们去到这个页面，再次，它仍然 在那里出现，那么有趣。
>> 哦，那是为什么呢，因为 这下一行。
还有什么，我们看到的兴趣呢？
这样做的其余部分较为混乱，在 处理这种权利的一半
网站，这是一个小 更复杂一点。
>> 因此，这是一些HTML 是要看起来像。
对于我来说，虽然，这是一个小 压倒性的，这不
帮我那么多。
然而，有一些 确实，其实帮了我很多。
>> 这就是我用什么，每当我 试图找出某物
看起来它的方式，或如何能 我改动了我的网站。
那是一个开发工具 内置于Chrome浏览器。
所以，如果你去这三条杠权利 这里再往工具点击
开发工具，一个小窗口会 弹出在页面的底部。
尤其，铬，因为它是 精彩，将格式化这个窗口，
采取的HTML，使它看起来 很多关于你更好。
所以，现在它实际上是一些可折叠 的HTML，你可以探索检查
页面的元素。
>> 如果我们想看看身体， 它实际上凸显。
当你翻阅过的HTML的一部分， 倒在这个窗口中，它会
突出的部分它在说话 关于在大窗口。
因此，让我再试一次，并 吹这一点。
确定。
>> 因此，让我们打开身体。
而且我在滚动这个左格。
而且你注意到它的突出 这左半个屏幕。
因此，让我们点击该 并展开。
>> 里面的它，它看起来像 有两个div。
还有这个第一个div。
我没有看到高亮显示。
我不知道，但它看起来像这样 第二个，左内，是内容
在屏幕的左侧。
>> 再有就是这个东西叫做头。
它看起来像是一个突出 在CS50的一部分。
如果我们打开了，我们看到它的 无非就是头1。
它给了一个ID，它的 给定的文本CS50。
>> 所以，再一次，看着它通过这个 控制台或者使用开发者工具
窗格的屏幕使得底部 探索这个网站，希望一
少了很多恐吓和 很多更方便。
这也让我们认识到， 本网站，虽然它看起来很
漂亮，漂亮，是不是所有的东西 超过你将成为怎样的
这样做的习题集7。
而这完全是内 你的能力去创造。
>> 如果我们要 -
有关使用这些其他很酷的事情 工具，如果你右键点击
标题，您可以编辑HTML。
所以，让我们把它叫做杰森。
现在你会发现我已经改变 此页面上的HTML。
>> 当然，我并没有改变 它永久。
如果我刷新我的浏览器，那么它会 回到原始的HTML。
但有时我想调试我的代码， 我不想看只是有我
gedit的窗口，并尝试理解 这是怎么回事。
>> 我想看看会现场发生什么。
所以，我将修改这样的代码，并得到 但我想要的方式来看待。
然后我会做 变化在我的代码。
>> 而且我发现它是一个更容易 当你可以做的事情
瞬间，像这样。
比方说，再次，我们要再拍 偶然的机会，因为我们正在探索与
HTML和CSS现在。
我可以编辑HTML现在。
我要去包含一个链接。
>> 所以我要改变CS50的家 页，所以它会链接到 -
让我们说 - 我的主页。
叫什么名字，如果有人回忆说，或 什么是我想给属性
当我想要一个锚标签 它链接到别的地方？
>> 观众：HREF？
>> JASON HIRSCHHORN：HREF -
所以，现在，你会看到有 贾森是根据下划线。
这是因为Chrome浏览器，默认情况下， 给出了锚下划线。
你可能已经看到过 当你去一个网页。
东西都是链接 下划线和蓝色。
对于一个链接的默认样式 是一般强调
并把它放在蓝色。
>> 如果我不喜欢这样， 我可以改变这一点。
我们将在第二个改变它。
但现在，还注意到，如果我徘徊 在此，在左下方的
屏幕正上方的字元素 是，我给它的链接。
>> 所以，如果我没有点击这个 - 我们可以 右键点击这个，打开一个新标签。
这其实不是我的主页。
这只是我的名字。
你去那里。
现在，我们已经把它变成一个链接。
>> 让我们来探讨一些CSS以及。
美丽的事物 - 而且我要去 使这个稍微小了一点 - 约
这个控制台是，那个疯狂的CSS表 我们看到之前，这是真的
很难解析，现在是美丽的 奠定了我们在左手边
此窗格。
所以我们可以看一下。
如果我们扩展这个风格标签，我们 可以看到所有的不同风格
一种是与相关联的，在这种情况下， 这个特殊的元素，这
链接元素。
>> 如果我们这样做的复合样式选项卡，即 只是告诉我们，不是这里的一切
从何而来，但基本上所有的这些 这是经营上的风格
这个特殊的元素现在。
让我们说，我们要 改变它一下。
因此，这是所有的样式 操作这个特殊的元素。
说，我们要改变它，因为我们 想怎么看东西的样子。
而我们只是在玩 各地现在。
或者我们要测试的东西出来，才 写它的代码和推
它并使其生活。
>> 我们可以去的风格标签。
并在第一个框中它 说，element.style。
而在这里，你可以插入， 你可以添加一些东西。
>> 所以我想 -
让我们去我的链接和 设置背景色。
它实际上自动填充它适合你， 所有可能的属性。
背景颜色，我想 作出这样的蓝色。
BLUS是不是一个词。
蓝色是一个字。
>> 难道我看它上来？
哦，原来是因为它是在href？
确定。
因此，我看不出这里有什么变化。
那是因为，如果我们突出 链接时，你会发现链接
实际上并没有控制所述 这个特定元素的属性。
它实际上，如果我们打开链接， 这个头就在这里这就是
控制是什么样子。
>> 所以，如果我想使背景 蓝色的，我其实有改变
的背景颜色 头元素。
现在我们看到， 背景是蓝色的。
>> 如此反复，这很快可能会去 通过这种材料很快。
但是，这基本上是什么 你会做的事情。
这不是在习题集7， 但是当你肯定
编码在网络上。
>> 确定。
我想使背景的蓝色。
即使在这种情况下， 蓝色看起来很丑陋。
我可以去这里玩。
我看到它变为蓝色 不会在一个工作。
我必须真正改变标题 元件包括蓝色
背景。
>> 然后，如果当时我回到我的CSS 文件，实际上，我怎么设定这个
背景是蓝色和 进行此更改棒？
因为如果我们注意到，如果我刷新 页面，所有我所做的更改都不见了。
于是我意识到，好吧，我 背景是蓝色的。
>> 我需要进入那个header1的元素 并改变背景颜色为蓝色。
我怎么居然作出这样的改变？
嗯，记得，如果我们进去吧 在这里，这个头球攻门，
标题都有一个ID。
这就是冠军。
>> 所以在我们的CSS文件，我们可以说，OK， 采取任何带有标题的ID和
给它这个额外的属性。
我们该如​​何引用一些与 标题，任何想法，或任何人的ID
知道我们如何引用 在我们的CSS文件的ID？
>> 哈希，这是完全正确的。
而你得到了一个暗示就在这里。
所以，在某个地方这个CSS文件， 还有下面这行代码 -
＃＃左左内侧＃＃标题标题。
和它给它缘底部， 定义这个边缘底部
特定元素。
>> 好吧，如果我想改变这种状况， 我会去到这个CSS文件。
我既可以找到这个 CSS文件的一部分。
或者，我可以写我自己。
>> 我可以做散列标题大括号和 然后背景颜色蓝色结肠癌
分号和关闭的大括号。
而这将改变背景 色彩这个元素，以蓝色的。
他们给你这么多在这里的原因是 即，有必要在这种情况下，
因为标题是一个唯一的ID。
>> 但你可以做的是鸟巢的东西。
因此，这是说，好了，去左边。
这是非常小的。
我对此表示道歉。
>> 但去的东西ID为左。
里面的那个，寻找 ID为遗忘物内。
里面的那个样子，找 东西用ID头。
里面的那个，认准的事情 编号标题和更改ID称号。
所以这只是一种方式 嵌套的东西。
有些人喜欢窝，因为 这使得它更清楚一点。
>> 你会看到这儿还，右 在这里，没有散。
这只是H1。
这是因为，H1中给出的 一个通用的标记名称。
并有一些CSS属性 与每一个H1相关。
所以，如果我发现了另一个H1此页面上， 我也看到，这种风格是
适用于它。
>> 如果我想要一个样式应用到一个类， 我怎么引用类或
谈一类在一个CSS文件？
>> 观众：点。
>> JASON HIRSCHHORN：这是一个点。
因此，让我们回到这个页面之前。
如果我做杂凑的ID。
这是改变风格 与ID的东西。
或者，对不起，如果我做散列的标志，这是 寻找的东西与标识的ID
并给它一个特定的CSS样式。
>> 如果我做一些事情。顶部，这是发现 一切都与类顶部和
改变它的样式。
如果我只是H1，即认为每个 单h1和给它的任何
风格我想给它。
如果我做H1空间，然后。顶部。
这会发现所有的H1S，然后 所有与类顶级的那些和
那么只有改变这些样式 无论我想给它。
>> 再次，我们可以写 一些这方面我们自己。
但是，我们也不会得到那么远。
好多了，看来真正去 上一个活生生的网站，看看如何
他们这样做，并期待在所有的 你做奇妙的事情。
>> 让我们再看一个网站 在我们继续之前。
这是一个你可能会 熟悉。
这是CS50融资。
所以，再一次，你其实可以进去 观察这个CSS文件的
电脑，因为你已经下载了这个 CSS文件，如果你下载了
问题集。
>> 我们可以去工具和 开发者工具。
我们看到一个更简单的HTML布局。
我们有顶部，中间和底部。
再次，你应该是 熟悉了，因为你已经了解了
通过分配代码 本周的问题集。
>> 在顶部是，每个代码， 单个图像调用。
那就是在图像的源。
说我已经完成了所有的东西 我想对于习题集7。
和它的正常工作，但 我想改变它的外观。
我想改变背景 该页面的顶部，
例如，蓝色。
如果是我，我会来的 这里弄清楚，确定什么
我想改变。
>> 让我们来看看，DIV ID之上，那长相 像的页面的顶部。
因此，让我们去那里。
让我们尝试改变 背景颜色。
让我们做的爱丽丝蓝色，因为 这是一个更好的。
>> 而且你会发现 -
你可能无法看到。
但是有一个淡蓝色的， 旁边的CS50的标志。
让我们，而不是将其更改为红色。
，你会发现现在我只是改变了 背景颜色为红色。
>> 所以，现在我将进入我的CSS文件， 键入＃顶花括号就在这里。
你可以看到代码的权利 在这里，大括号。
然后，我想补充的背景 色，红色。
然后，就 是一个大括号。
所以这是我会怎样探索和 试验在CS50格式化
财经网站。
>> 我可以在这儿试做 它在我的浏览器。
然后，我可以进入我的实际代码 并进行了变化，将
实际去住的，人们 实际看到的，如果他们要来
我的具体部位。
>> 确定。
这是一个很多。
我的经历道歉 它如此之快。
没有任何人有任何疑问， 在所有的HTML或CSS？
>> 观众：你可以去超过你如何 挂了后来杰森，再次？
>> JASON HIRSCHHORN：什么 你的意思是联系在一起？
>> 观众：你提供一个链接到另一个 网站，使用锚。
>> JASON HIRSCHHORN：所以你问， 只是笼统，你如何做一个链接？
>> 观众：是啊。
>> JASON HIRSCHHORN：确定。
该代码制作一个链接 -
>> 观众：没有，像在HTML中。
>> JASON HIRSCHHORN：羽绒服在这里，你的意思是？
所以，如果我想包括一个链接 某处，说，这是对我的HTML
页面在这里。
这是HTML。
也许这是在打开一个文件，index.html的。
我进去了。
>> 让我们有这个版权约翰 哈佛链接到一些东西。
因此，我们将编辑这一切都为HTML。
你要做的就是包括一个，所以 支架上的接近支架在
开始，然后支架斜线 在最后一个右括号。
>> 所以，现在我已经包括了一个锚标记。
而实际上，如果你点击 出这一点，现在将
格式化编辑为HTML。
并说，我们要联系起来。
我们倒是你href属性。
和我们说 -
>> 现在，当你注意到，版权 约翰·哈佛是蓝色的。
当我翻阅过 它，它现在是一个链接。
所以，你可以编写代码。
你可以环绕几乎任何东西 你想在一个锚标记，并把它
成一个链接。
>> 观众：确定。
得到了它。
>> JASON HIRSCHHORN：如果我不想 它 - 当然，有时人们往往
想到这些事情，只是看 蓝色笼统，并强调是
不要做一个链接最漂亮的方式。
所以，如果我来这里，您可以看到， 某处在CSS文件中，有
写了这一个，然后 两个花括号。
所以我们可以说，对于链接，我不 希望他们变成蓝色，而我
要链接到的颜色 是这个漂亮的紫红色。
>> 让我们给它的颜色。
让我们挑洋红色。
现在，在我的页面上的所有链接有 成为品红这个漂亮的颜色。
有些人不喜欢的颜色的。
有些人不喜欢下划线。
你来挑。
>> 的链接，您可以风格如何 看一次您访问过他们。
正如你会发现在很多的网页， 链接变成紫色在您访问它们。
您可以更改颜色为好。
是啊。
>> 观众：所以你改变它 对于每一个环节。
但如果你只是想这样做链接 本身，你只是做在ID
底部或东西吗？
>> JASON HIRSCHHORN：那么大的问题。
正如你看到这里，我改变了一些 适用于该CSS的一部分
一切是一个A.如果我想 只是做了链接在底部，我
会去我的CSS文件，并可能 做，就像你说的，散列
底部空间。
而这会给我 一切正如在底部。
>> 或者我可以，或者，给它一个 唯一的ID，然后就做哈希连接。
并且，让我 改变了这一点。
然而，仅仅少量发放的ID不管三七二十一 通常是一个坏
实践中，由于这些 应该是唯一的。
而你越有那些，它 可以得到一个有点混乱。
是啊。
>> 观众：你能不能给同 ID为多个业主？
>> JASON HIRSCHHORN：从技术上讲，是的。
什么也没有去阻止你，但你 不要你应该给它一个类。
好了，其他问题 关于HTML或CSS？
>> 确定。
让我们继续前进到PHP。
哦，是的。
>> 观众：这是什么关于这些 网站，这意味着我们可以编辑
他们才刷新。
但是，一旦我们刷新它恢复 回到初始的HTML？
>> JASON HIRSCHHORN：大问题 -
所以当我们加载了这个 网页，它是HTML。
和它的的JavaScript。
它的PHP执行给我们什么 类型的网站，我们看到的。
和它的创建一些HTML，一些 JavaScript和一些CSS。
那就是现在访问 通过我们的计算机。
>> 而这些文件的副本被保存 当地对我们的电脑，
暂时。
因此，我们可以编辑本地副本。
但当然，我们不是在编辑 服务器副本。
>> 而当我们刷新页面， 我们得到另一台服务器副本。
因此，我们看到的东西 回到原来的。
如果我们能够从这里，编辑 官方网站上，我们就会有很多
的问题。
>> 观众：是的，所以我们可以看 写该副本。
>> JASON HIRSCHHORN：对。
我们只是做局部的变化在这里， 但同样，探索非常有帮助，
通常情况下。
当我在写我的最后的项目，为 例如，我想看看一些
网站上的东西看看 途中他们做到了。
我会去，并使用此窗格下来 在这里，看看他们给了什么是CSS
它或它们挑什么颜色或如何 得到它，这样，当你徘徊
过东西，名单下来 在一个不错的级联方式。
这是一个伟大的方式来检查什么其他 网站做的，从他们借钱。
>> 让我们进入到PHP。
PHP代表，在递归感， PHP超文本处理器。
和PHP，它会做 是执行代码的服务器端。
因此，我们永远不会看到PHP代码。
>> 然而，它确实很好玩呢 HTML和往往会产生
大量的HTML代码。
但是当你将熟悉的问题 设置7，你的PHP代码将执行，
生成一些HTML，而这正是 用户将最终看到。
>> PHP是令人难以置信的类似C。 不过，也有一对夫妇的
差异，这些差异 重要的是要注意的。
一个区别是变量 在PHP中是松散类型。
没有任何人有一种感觉， 是什么意思？
>> 观众：没必要给自己投了。
像没有必要在文字写的。
>> JASON HIRSCHHORN：我不会用 铸字，但肯定的，无需声明
一个类型为特定的变量中。
而不是怎么做，我们声明一个变量？
>> 观众：用一个美元符号。
>> JASON HIRSCHHORN：使用一个美元符号。
因此$ x是可变的。
1美元是一个变量。
$字符串是一个变量。
>> 这些变量，X元可以 是一个整数。
然后，它可以是一个字符串。
然后，它可能是一个字符。
这其实并不重要。
>> 另外，关于PHP的很酷的事情是， 比方说，$ x是字符串之一。
和$ y是字符之一。
您可以添加$ x和$ y和它会 给你2，你所期望的东西。
因此，有在PHP中操作。
因为它是松散类型的变量， 一些隐式转换为你做
以及一些操作。
>> 你可以在做的事情操作 的不同类型。
而在此之前，你经常会得到一个错误 C语言的说法，这不是类型
这应该去这里。
这种类型的唯一的东西可以去这里。
你不会得到那个类型 错误的，一般来说，在PHP。
所以这是一个很大的不同 - 我们如何处理变数。
>> 第二个大的区别是， PHP代码解释。
WHERES，C代码编译。
那是什么意思？
>> 那么，对于C代码，你就跑 它通过一个编译器。
你生成的二进制文件。
而且你跑了二进制文件。
你之前把所有的错误护理 您生成的二进制文件。
>> 当然，也有可能是 分割故障，当你跑了
二进制文件。
但它不喜欢你忘了，包括 printf的定义，或
你没有使用一个变量，只是 创建一个浪费的变量。
或者你没有定义 函数原型。
>> 所有你编译之前发生。
它给了你所有的错误或坏的 的东西，它认为可能会发生。
然后，你有你的0和 你跑了1个文件。
PHP代码并不喜欢的工作。
>> 你会写你的PHP代码。
然后，你要 保存它，大概。
并至少在P-7集，你会 刷新您的网页浏览器，
你会看到发生了什么。
你会看到输出 那PHP代码。
>> 您还可能看到，在顶部 您的页面，一个错误。
因为你有一些 在你的PHP错误。
您可能仍然会看到其余 网页正在寻找的罚款。
但有一部分是错误的，并有 在那个地方出错。
那是因为那部分 你的PHP代码不起作用。
>> 事实上，当你执行，当你 去像by.php。
它会通过你的PHP 一行行的文件并执行它
然后才是。
它不会编译它提前 时间或编译一个副本，然后给
该编译副本给大家。
每一次，它要经过 一行行并执行它。
>> 因此，一些线路可能工作和 输出正确的东西。
与其他线路可能被打破 并输出一个错误信息。
综上所述，使用PHP调试时，我们已经给 你们几个有用的东西
帮你调试，比如 转储功能。
>> 但通常，你会 看到这些错误。
这就是你如何去 知道你做错了什么。
但你只会看到错误 一旦你真正运行的代码。
>> PHP的另一个重要方面和 Web开发是GET的想法
与岗位。
谁能解释一下什么区别 之间的GET和POST？
没有人 -
是。
>> 观众：他们难道没有一 让用户看到的数据，
其中一人不？
>> JASON HIRSCHHORN：太好了。
是啊，你有什么要补充的吗？
>> 观众：我瘦职位是 超全局变量。
>> JASON HIRSCHHORN：中那么这两个 变量是给你的。
这些仅仅是变量。
你知道他们是变量， 因为在这里我
使用美元符号。
>> 这些都是给定的变量 给你的PHP。
而当你的网页之间移动， 要保存一些信息。
你可能想保存，如果 该用户已登录。
这不是保存在GET和POST。
这是保存在别的东西， 一个不同的变量。
>> 任何人都知道这是什么的保存变量 中，或者你用什么变量
P-设为7，以确保 用户登录？
$ _SESSION，这是完全正确的， 也许重要的是熟悉
这些东西的名字 你经常使用。
>> 所以你使用会话变量来保存 从页面信息页面。
这是一个超级变数。
它的存在在每一页上，也许像 全局变量，如果你要考虑
它这样。
>> 有一对夫妇的其他变量 允许您传输的信息
从页面到页面。
尤其是，那些我们将重点放在 是GET和POST变量。
在PHP中，它们看起来像 $ _GET和$ _POST。
和区别，因为马库斯指出 出来，他们两个之间是，
在$ _GET信息 显示的URL。
>> 因此，如果我们往下看这里， 我们看到了一个YouTube链接。
我们看到这个问号。
我们看到ν=，然后一些价值。
回到这一想法的关键值 对，v是关键。
而在这里就是价值。
>> 所以，如果我们要到这个页面或者 编码此页面上，我们将有一个
变量$ _GET。
如果我们去了$ _GET开括号“V” 接近支架，非常类似于数组
符号，这是一个关联数组 因为我们没有使用索引。
被使用字符串作为键。
但非常类似的想法。
如果我们去了我们，将得到这个值。
>> 在这个页面，我们就能够 使用此值。
如果我们实际上看，让我们 去YouTube的页面。
我们应该看什么影片？
这其中，被人哈比人球迷？
>> 观众：是的。
>> JASON HIRSCHHORN：所以我复制 他们分享网址和
将其粘贴在一个新窗口。
而现在，如果你在这里，你会 请注意，再次 -
我要复制并粘贴到 gedit的，所以我们可以看到它做大。
你会发现，它有 这个问号。
问号将指定 在这之后一切都将是
保存在获取变量。
>> 然后，它具有V，这是第一 键，这第一个值。
符号是特殊的。
符号是在说，好吧，我们 完成了第一个值。
我们现在移动到另一个 键值对。
在这里，关键是所谓的功能， 并且该值是youtu.be。
>> 所以，如果我是一个编码这个页面， 有人去这个URL，我有
也许watch.php。
和我在编写这个。
我可以使用$ _GET变量。
我将有一个v和 我想有一个功能。
>> 如果我使用v键，我 会得到这个值。
如果我做了$ _GET支架“功能” 接近支架，我会得到这个值。
再次，它不一定 适用于 -
显然，YouTube的键和值 并获得信息并不适用于
本习题集7。
但有一些事情是我们 通过GET传递我们的习题集7。
当然，当你去一个网页 或编写自己的页面上，
$ _GET会派上用场 当你的编码。
>> 什么是一个原因使用$ _GET然后， 如果它可以提供没有隐私？
你看到所有这些信息 这是正在转移。
这一切都显示给用户。
但是，什么是一个原因，你可能 要保存的东西在$ _GET，如
反对的$ _POST？
为什么你可能想要做的是什么？
>> 好的。
我在测验1问你。
什么是$ _GET亲？
什么是1亲？
是啊 -
>> 观众：它更容易 共享信息。
>> JASON HIRSCHHORN：我觉得 这是伟大的。
它更容易分享信息。
它更容易书签。
>> 现在，您可以收藏， YouTube.com /手表？ν=的东西，去
该特定视频。
如果YouTube的总是做POST请求 不同的页面，每一个YouTube网址
将YouTube.com。
你可以不书签单一的视频。
因为如果你说的共享该链接 与别人，他们不
自动获取您的帖子变量。
他们只是得到这个链接，并在 链接是对谁都一样。
>> 所以这是亲。
它可以让你这个书签 信息或分享这些信息
或让它一点点 更加人性化。
当然，没有隐私， 所以我们这篇文章的变量。
和后信息不 显示的URL。
>> 这不是一个完全私有的。
但它是稍微更私人。
所以你会看到这个网址 到这里，cs50.net。
不论你登录到 网站，这将具有相同的
网址，cs50.net。
>> 很显然，事情是不同的，如果 你登录到该网站。
你有，一，可能是 输入您的PIN。
并且已确认 用服务器。
而且它可能保存 一些其他信息。
但是URL不会改变的。
>> 所以是这样的话，当 事情是由POST发送。
URL不会改变。
这个POST信息不 显示的URL。
但是，一些国家已经变了，也许 有保存在一些信息
POST变量。
>> 抱歉。在我走之前到SQL，任何 关于PHP，特别是问题
对事物的问题，我们没有去 你已经找到或任何语法或
关于PHP的逻辑问题？
确定。
>> 最终的语言，你会 在这个星期的互动是
结构化查询语言SQL， 常常发音续集。
这允许您与互动 数据库中的形式化方法。
它扮演了非常漂亮的PHP。
>> 正如您将在习题集7所见，我们 给你一个叫做查询功能。
它需要一个SQL字符串，并执行 对数据库的查询。
在过去的几年中，你是不是 鉴于此功能。
您必须使用PHP函数来使 数据库和支票，请在查询
的错误，然后得到结果。
>> 而实际上，这并不难， 因为再次，它起着
非常漂亮的PHP。
和PHP提供了大量的功能 与SQL数据库进行交互。
所以很多时候，两者的 这些一起去。
当然，你可以用互动 与任何SQL数据库
其它语言的数目。
但PHP是一个伟大的选择。
>> 数据库 -
我们就去了这个很快，因为 这是我们要去一个时髦词语
开始使用常 -
是表的集合。
因此，我们可以认为它 为Excel文件。
一个Excel文件中有多个选项卡 在屏幕的底部。
每个选项卡，我们现在会打电话给一个表，其中 一个表是行的集合。
>> 什么是行？
嗯，一排是一样的东西 在Excel文件中。
这只是对每个特定的值 特定领域或每个给定列。
这就像在一个表项。
这是一个学生，谁拥有一个ID，一个 特定的ID，和一个特定的名称和
具体的房子。
>> 因此，一个数据库是一个集合 表。
而表本身是一个 行或记录的数目。
还有，在各 表的某些字段。
并指定每个记录是什么 将有，字段有时也被称为
列，但通常称为字段。
>> 在这个非常简单的表，我有三个 域，一个ID字段，用户名
字段，和一个散列字段。
我有三行。
眼下，它们是空的。
他们可能不会是空的 如果这是我的真正的数据库。
>> 所以，如果你已经使用Excel中，类似的想法 什么你在Excel中做，虽然，
很明显，现在我们将能够 做强大得多的事情上
所存储的信息 在我们的数据库。
你将要创建自己一个 数据库习题集7。
但你会创建多个 在数据库中的表。
>> 您将创建一个数据库 或为用户的表。
你也可以创建一个表 大概股票交易，以保持
跟踪它们，因为你需要 实现历史记录功能。
这两个表将有 不同的领域。
例如，在用户现场，你 可能希望自己的用户名和
ID和他们的密码的哈希值。
>> 在库存表跟踪 历史或历史表中，您
可能不需要用户名 和散列和ID。
你可能只需要其中的一个 值是唯一的，联想到
它与给定的用户。
>> 但是，你要存储其他 之类的东西，什么时候
在事务中进行的。
在买入或卖出什么股票？
股票多少股 是买还是卖？
什么是价格在哪个 股票是买还是卖？
>> 所以，再一次，你要进行交互 一个数据库，这是
将有多个表。
每个表都将有 它自己的一套字段。
然而，有可能会出现类似的 字段中的每个表中，该
它们涉及到彼此。
通常，这是一个ID字段。
>> 因为如果每个用户都有一个唯一的ID 和你的ID与每一个相关联
交易用户发出或 所有用户的历史。
和你有用户的ID。
您可以获取信息 从任一台。
你可以得到他们的用户名，你 可以得到所有他们的交易。
>> 关于数据库的任何问题， 或具体问题？
其实，让我们认为。
我们会在那里的两个方面。
>> 因此，有四个操作 您将使用的数据库
习题集7和可能 永远不会使用。
你想要做的第一件事是插入 一个新的记录到一个表或一个
新行插入表中。
这是通用的功能， 通用的形式，SQL查询。
>> INSERT INTO表，不管列 要插入，然后
那你会想要的值 投入这些列或字段。
如果你有在多表 数据库或多个数据库，您
可能还需要指定数据库 和您想要的表
把事情落实。
但很简单，如果你要插入 到的东西，你说，这里有
我要插入到字段。
和这里的值。
>> 在一些表，也和这个用户的 表是一个很好的例子。
大概在这个用户的表和 大概在P-设置你的用户的表
7，不只是一个用户名的值。
这里不只是一个现金价值， 或现场，而。
此外，还有一个ID字段。
>> 我不打算插入ID字段。
那将给予 我自动，当一个
新记录插入。
因此，有一些领域，你 可以设置为自动的。
>> 也许你想给每个用户 10,000元现金蝙蝠。
所以我不需要插入 多种现金此处。
我只需要插入的用户名。
然后，现金字段将 预填充的，而ID字段将
预先填入。
>> 所以通常情况下，我们不会插入 事到每一个领域，因为
与其他字段中会预先填入。
因为这是我们如何 建立该表。
>> 你要去的第二件事 想要做的是删除一条记录。
删除的东西是很简单的。
你给你想要的表 要删除的东西。
和你说好，我想删除 记录有米洛的用户名。
或者我要删除所有记录的 有米洛的用户名，或者是一个
交易从用户ID号2。
对这些问题的任何 两种类型的查询？
>> 观众：[听不清]。
>> JASON HIRSCHHORN：是的。
所以我打算使用行和记录 互换和一些
与列和字段。
但有一排是一个记录。
一列是一个字段，将 回到这个表。
>> 确定。
接下来的事情，你很可能 要做的是得到一些
从表中的信息。
这是一个选择查询。
再次，什么表 我会从选择？
而我要选择什么样的列，或 我要选择什么样的价值和
从哪一行？
>> 因此，选择一个特定的一点。
我说好，我想这个表。
然后我希望列名，并 我希望它从ID为2行。
这是做一个选择的一种方式。
>> 或者，我可以说，给我的每一个 单一的用户名。
或者，我可以说，给我一个完整的 从这个表行，其中
用户名是1。
因此，有几种不同的方法来 做选择查询，这取决于如何
你要多的信息，
>> 你永远可以选择一切 从具体的表，然后循环
通过它，挑选出 你想要的东西。
但是要记住，如果你选择 很多事情从一个表和你
有一个非常大的表中，将采取 有一段时间，所以最好只选择
东西，你要去 使用结束了。
>> 此外，随着选择，并与所有这些 其他的SQL命令，以及，我
给你最基本的版本。
但是说，我选择的用户，我想 打印出来的字母顺序，
我可以选择所有用户，然后排序 按字母顺序在我的代码。
>> 或者是有办法写选择 查询时，选择的东西在
按字母顺序排列的方式，根据关闭的 特定的列，以升序或
降。
所以请记住，有很多你 想要做也许可以在做
通过一个附加的查询 属性。
所以，不要仰视这些查询或在线 其他的事情你可以用这些做
查询将其展开。
>> 最后，过去的事情你想做的事 没有东西插入或删除
东西，而是 更新的东西。
以及与该更新完成 查询，并再次，是什么表。
和我想要什么样的变化使？
以及哪一行或记录做 我要做出的改变？
对SQL有问题吗？
>> 确定。
因此，我们有大约15分钟。
这是最后一张幻灯片我有。
并希望，这最后一张幻灯片是一个 良好的塞盖成问题集，
因为理解，我们要 插入记录，删除，选择
他们，并更新他们会帮助我们 明白了较大的逻辑和流程
的习题集7。
>> 所以我知道所有的答案 对这些问题的。
我不会告诉你 所有的答案。
但是，如果别人想 提出了一个问题，到组或
回答这些问题之一，我们可以 使用它作为一个跳点
说说问题集。
或者，如果某人有一个更通用的 关问题的问题集，感觉
免费问那。
我们可以从这里开始。
请记住，你是沉默 是伤害大家。
是啊。
>> 观众：所以是传递的唯一途径 变量，并从不同的网页
页，或最方便的 方式，使用POST或GET？
>> JASON HIRSCHHORN：所以，是的，那就是 最便捷的方式说 - 当
有人填表 -
得到另一个网络信息 页面，使用GET或POST。
因为框架我们使用 在这个问题集，你会发现
是，很多时候，我们 渲染另一个页面。
我们或者我们渲染另一个文件，不 一定另一页。
>> 所以我们在传递一个变量。
然后，它呈现一个 HTML页面时，使用
从该变量的信息。
这在技术上并不传递 之间的信息
不同的网页。
这是传递信息 不同的文件之间。
>> 因此，我们可以使用任何 变量来做到这一点。
但是，是的，如果我们想通过 从一个特定的页面信息
另一页，GET和POST会 要做到这一点的方法。
任何其他问题 问题设置？
>> 确定。
让我们通过，那么，具体的 问题的一部分设置。
你将需要在一个点上， 显示某人的组合上
在屏幕上。
这是什么意思，当我说组合， 在这个问题的上下文中设置？
>> 观众：这就像股票，他们 有他们自己怎么样，多少股，
价格，多少 钱，他们已经离开。
>> JASON HIRSCHHORN：听起来不错。
所以，我想显示所有的股票 他们拥有每只股票公司
股，大概是多少那 价值，然后一个单独的变量，
多少钱他们自己。
所以说，我想描述。
让我们开始谈论我怎么能 去这样做，我有什么表
将需要有 能够做到这一点。
是啊 -
>> 观众：好用户，然后，我猜 你可以做一个所谓的表
股份或类似的东西，这 会是如何，他们已经买了很多。
>> JASON HIRSCHHORN：确定。
所以我会需要一个称为表 用户，它记录的
用户名，据推测，可能是一些标识， 可能是一个单独的密码。
什么是别的东西，你 刚才说的关联？
除了迈克尔，什么是人 这与相关的其他东西
每一个用户，他们独有的？
>> 观众：ID。
>> JASON HIRSCHHORN：ID -
什么是一件事，我们是 可能会想
此页面上显示？
>> 观众：他们的名字。
>> JASON HIRSCHHORN：他们的名字 - 有什么 另一件事与此相关的
特别是设置的问题？
>> 观众：什么他们拥有的股票 -
>> JASON HIRSCHHORN：有将 有很多他们自己的什么股票。
什么是一个特定的值，虽然， 他们将不得不
与他们有联系？
他们怎样买 并出售他们的股票？
>> 观众：现金。
>> JASON HIRSCHHORN：他们是 将有现金。
因此，每个用户将不得不 一个值，以换取现金。
而这将是 对于每个用户唯一。
因此在用户的表，它使 感投入现金。
>> 你可以，当然，创建另一个 表具有用户ID和其
的现金价值。
但它没有任何意义。
这是有道理的只是把 所有这一切在一个表中。
>> 所以，我们将有一个表 与该信息。
然后，有什么其他的表 我们会得到什么？
你说，一个种群的表。
什么是我们投入 该股票的表？
任何人，想法 -
>> 观众：该公司。
>> JASON HIRSCHHORN：我们要去 投入的名字
公司，所以AAPL苹果。
是啊。
>> 观众：有多少股， 他们有多少的价值。
>> JASON HIRSCHHORN：有多少股， 他们有多少是值得 -
有什么别的东西，我们 需要在该表？
>> 观众：一个用户ID来索引它。
>> JASON HIRSCHHORN：一个用户名。
因此，在该表中，我们将 可能有 -
比方说，如果是有人谁拥有 三只股票，三排，每
该用户ID或个人用户 ID，但不同的公司名称，一个
不同数量的股份大概， 并为每个不同的价格值
这些股票的。
再次，什么我现在说的是不是 一定的执行情况，
因为你知道有一些 有效的方法来实现它。
但是，这是一个良好的开端。
>> 确定。
因此，这些都是这两个表我们。
现在，我们要显示此页面。
什么是查询中的第一种类型 我们需要做。
在每个页面上，假定是一个用户是 登录后，我们有自己的用户ID。
那么，什么是第一类 查询我们需要做什么呢？
是啊。
>> 观众：他们的用户ID。
>> JASON HIRSCHHORN：我们有自己的用户ID， 当我们开始代码的
一开始我们的页面。
那么什么是查询我们的第一种类型 需要使给定一个用户的ID？
我们过了四种类型。
这里只有四个可能的答案。
>> 观众：是选择一个记录。
>> JASON HIRSCHHORN：A选择 -
我们希望从用户的选择 表就搞定了，让我们说，
其数额的现金。
我们可以打印的现金金额 在屏幕的顶部。
确定。
什么是下一个类 查询我们想干什么？
>> 我们有一些其他的东西 我们需要显示。
那些被保存在另一个表中。
那么我们如何得到呢？
>> 观众：你选择它们。
>> JASON HIRSCHHORN：A选择 - 再次， 只有四个选项。
选择可能的声音 像那个合适的人。
因此，我们需要做的另一个选择查询， 再次使用该用户ID。
而现在，我们要返回的不只是一个 行，BU符合我们的所有行
标准，其中用户ID等于1。
>> 然后我们可以去让一个循环只 打印所有那些在屏幕上，
也许打印出该公司从 每个那些在屏幕上。
太好了，这听起来像这 显示组合，多不了多少
较复杂。
>> OK，然后用户决定他们 有足够的钱留下来。
他们想买一些 一只股票的股票。
比方说，他们已经拥有 这家公司的股票了。
>> 于是他们去你的购买页面。
他们输入公司的名称。
这是该查询，在输入后的 公司的名字，你需要
执行下一个？
是啊。
>> 观众：更新。
>> JASON HIRSCHHORN：更新 - 什么 表你要更新？
>> 观众：他们的表，根据 在他们的身份证号码？
>> JASON HIRSCHHORN：所以更新 没有用户的表 -
所以更新库存表，其中 用户ID不能只匹配，但
股票名称也匹配。
你会得到一定的价值。
然后，你要取该值 并添加然而许多股票，他们
想买它。
>> 所以，你不希望盲目 覆盖该值。
但是你可以，​​事实上，采取这种初始 重视和刚刚更新。
你可以做一个加等于， 而不仅仅是一个等号。
>> 是什么东西，但 - 如果我们 想到这一点，我们要
尽可能强大 - 我们应该做的 我们运行之前更新查询？
他们想要买五十年后，​​苹果的。
苹果的每份额为200元。
>> 观众：我们首先应该检查的钱。
>> JASON HIRSCHHORN：我们应该 首先检查的钱。
我们应该确保他们 有足够的钱。
我们可以执行什么样的查询 确保他们有足够的钱？
>> 观众：另一种选择。
>> JASON HIRSCHHORN：A选择 -
我们根据他们的用户ID进行选择， 拿到现金的价值。
做一些快速的数学运算。
如果传递鼓起， 他们有足够的现金。
然后我们可以运行我们的更新。
或者，也许，如果不是，我们通过即可。
我们给他们一个警告。
>> 确定。
说他们没有一家公司。
他们买一个新的公司。
他们购买微软。
我们想要什么样的查询做， 如果他们想购买微软？
他们不拥有任何微软。
没有马努，任何人，任何人 除了马库斯？
卡洛斯 -
>> 观众：A选择，以确保 他们有足够的钱。
>> JASON HIRSCHHORN：听起来不错。
>> 观众：然后你插入 在[听不清]。
>> JASON HIRSCHHORN：没错，我们是 将要插入
进入股市的表。
我们要去想插入。
我们可以将其用户ID，名字 的公司，以及有多少股
他们想买。
>> 什么是一些其他操作的 为你的网页或功能
将不得不在P-设置来实现 7，我们应该走了过来？
>> 观众：其实，我种得 关于这一个问题。
之前您显示组合，应 您检查雅虎的网站上
确定股票的价格 有没有改变？
>> JASON HIRSCHHORN：这是声音 是个好主意。
那么，什么马库斯说的是，OK，股票 价格是不断变化的。
在自己拥有的表中的股票，我们的 表称为股票，我们可以拯救
股票的价格，他们买了它在。
>> 但这似乎不是那么强劲， 因为股票的价格
不断改变的。
所以，事实上，你可能不需要 保存股票的价格。
但每次你施展 投资组合，你刷新或更新
价的股票。
>> 如果你有 - 你已经。
我知道你一直都在看的 习题回来了。
你已经意识到，我们已经写了 一些代码给你，让你
获得股票的价格， 给定一个公司的名字。
>> 所以，是的，这听起来可能 更强大一点。
但该表并不一定需要 保存股票的价格。
确定。
什么是一些其他的功能你 需要实现这个星期，
我们可以谈？
我想谈谈他们。
>> 你想谈什么？
这也可能是在这个规范。
我只是向下滚动至底部 规范和问我的第一个字
你看，没有任何意义。
另外一个功能 -
让我们来谈谈之一。
我们会从那里开始。
>> 观众：记录的历史。
>> JASON HIRSCHHORN：录音 历史上，伟大的。
所以你将不得不跟踪 交易的历史。
所以，你要跟踪每一个的 一次，他们买进或卖出股票。
>> 我买我的股票。
我们刚才说了，它很可能是有道理的 包括一个选择，让他们
金额现金回来看看。
它可能是聪明的，然后到包括 插入或更新，这取决于
不管他们是否拥有该股票。
如果我们也想跟踪 一个历史，我们该怎么办呢？
这是否在股票表走？
>> 观众：号
>> JASON HIRSCHHORN：不，它可能 不用在不同的表。
因为说你买10 苹果公司的股票。
然后你再买10股。
你想拖独立的记录。
这是两个独立的交易。
>> 因此，我们有另一个表中， 一个历史表。
所以，再一次，我们买的。
我们执行一个选择，然后 插入或更新。
我们接下来做什么？
什么是我们执行下一个查询 当我们买东西？
我们想跟踪的历史。
是啊。
>> 观众：你想跟踪 失败的交易了。
>> JASON HIRSCHHORN：嗯，以前我们 说什么类型的事务，
什么我们要 -
什么类型的查询，卡洛斯，会 让我们来跟踪
事情有什么看法？
你有四个猜测。
哪一个你觉得呢？
>> 观众：更新。
>> JASON HIRSCHHORN：不更新。
什么是你的第二个猜测？
>> 对象：选择。
>> JASON HIRSCHHORN：如果你想保持 轨道的东西，你可能想
到它的地方写下来 或将其保存供以后使用。
所以，如果不更新，那么 -
>> 观众：插入它。
>> JASON HIRSCHHORN：插入，我们走吧。
是的，所以您选择的金额 现金他们，声音很大。
他们没有足够的现金。
该交易是行不通的。
不，你不需要保持跟踪 如果它不工作的事务。
或者你可以，如果你想 给他们一个困难时期。
但你不必。
>> 然后，您插入或更新 在他们的库存表。
而现在，你有你的其他表。
你有你的历史表或 无论你怎么称呼它。
并在该表中，你会 插入一个新行。
>> 这可能将 有用户的ID。
它可能将不得不 股票的名称。
它可能将不得不 一时间，他们做到了。
在这种情况下，你就可能 要插入的价格。
因为对于一个历史，你不 关心目前的价格是什么。
你关心的价格是什么时候 他们买或卖的东西。
>> 所以它听起来像，落实购买 充分涉及多个不同
SQL查询，但说实话，不 这么多代码的整体。
确定。
而这需要历史的照顾。
>> 比方说，我们要 显示我们的历史。
我们谈到展示 我们的产品组合。
我们将如何展示我们的历史？
>> 观众：大概时间顺序。
>> JASON HIRSCHHORN：据推测 按时间顺序 -
你觉得什么疑问我们会使用？
>> 听众：一个选择。
>> JASON HIRSCHHORN：一个选择 -
选择也许所有从该表中的行 相匹配的用户ID，然后
显示它们按时间顺序， 听起来不错。
我们需要编写代码来 通过列表进行排序？
>> 观众：没有，因为你告诉 我们有一个上升
和降序的事情。
>> JASON HIRSCHHORN：事？
>> 观众：是啊。
>> JASON HIRSCHHORN：是啊。
好了，不要在代码中转向我， 手动排序，通过你的查询，
对它们进行排序。
已经给该代码。
你可以写一个Select查询 进行排序的东西。
他们事先进行排序和 然后打印出来。
它使这么多情理之中的事 这种方式，比其他方式。
是。
>> 观众：我们是否需要 事先对它们进行排序？
这是否意味着你排序 他们在数据库中？
>> JASON HIRSCHHORN：SELECT查询 他们返回到您排序。
这样做，而不是仅仅让他们 返回到您在随机顺序
然后自己对它们进行排序。
是啊。
>> 观众：有没有一种方法来保持它 分类在数据库本身，使
不必进行排序 它的每一次你 -
>> 观众：你能否将它插入排序的？
>> JASON HIRSCHHORN：问题 -
这很重要的事情 分类在数据库中？
>> 观众：号
>> JASON HIRSCHHORN：嗯， 它们进行排序。
他们是按时间顺序排序。
但是，让我们假定事物进行排序
按时间顺序，从上到下。
我们有一个谷歌的形式。
每当有人回应我们的谷歌 形成的，它只是被放在
该表的底部。
这有什么关系，事情 排序不按时间顺序？
>> 观众：如果不是按时间顺序， 不要你有充分的时间来排序呢
你把信息了。
但是，如果它已经排序，可以吗 不必做额外的
函数调用？
>> JASON HIRSCHHORN：所以这是 实际上是一个很好的点。
我们作为程序员， 它可能无关紧要。
而我们可能希望找到一个数据库 不理清头绪
按时间顺序。
或者设置我们的数据库，所以它保持 东西整理按用户ID。
>> 所以这种方式，比方说，我们有 1,000用户ID。
或Facebook，我们拥有数百万 的用户ID。
我们不希望我们的表只是 随机或我们的数据库是随机的。
这将是很好，如果所有的 用户ID进行排序。
这样的话，我们可以运行的二进制搜索 在我们的表，然后只要找到
具体块。
>> 所以，是的，这取决于 - 如果我们扩大规模， 我们可能希望找到一个数据库
即把每一件事情整理在不同的 方式，使这些查询
将需要更少的时间。
而我们没有经过我们 在每一个单列整个数据库
给定表。
但水平在我们正在努力，我们 不必担心保持
东西整理。
我们可以假设，所花费的时间 该查询运行将是
可以忽略不计，因为什么 我们正在处理。
但是，是的，伟大的想法 - 因为我们扩大规模， 它可能是有意义的设计我们
数据库在一个有点不同的方式。
>> 最后一个数据库设计的东西我想 提为好，因为你会
进行分级，或得分相当，上 数据库的设计。
我们谈到了这一点。
现金是唯一的每个用户。
所以，你有一个表叫了现金 有他们的用户ID和金额
现金，然后一个名为表 用户有自己的用户
ID和他们的用户名。
>> 这些表映射到每个 其它1至1。
它很可能是有道理的， 他们是一个表。
因此，让我们假设你有一个用户 表跟踪
用户名和现金。
您现在有，有一个表 股票的个人拥有。
>> 和一个人可能拥有 以上的股票了。
所以，这些不映射到 相互一至1。
这是没有意义的有一个巨大的 表中有30个的记录
所有重复的用户名，即所有 重复输入密码，所有的
重复了一些现金。
但每个人都有可能是不同的股票 名称或不同的股票价格。
>> 这是没有意义的有 许多大型记录。
是聪明的，当你创建这些有关 数据库，所以，你是不是在做
一些愚蠢的那样，重复 很多不必要的信息。
>> 确定。
我们有两分钟时间。
外面的人很高兴能够加入 我们甚至可能，大概，
开始他们自己的类。
没有任何人有任何疑问， 之前，我们完成了？
>> OK，这的确是一个旋风 通过一切。
我很抱歉，这不得不如此快 而且，我们不能因为动手
这个星期我会一直 喜欢过。
但如果你有任何问题， 我们走过去任何事或任何东西
这个问题的设置 -
假设你已经读过它，并把 在一个善意的努力 -
请随时给我发电子邮件或与我联系。
我很乐意工作，通过 与您或回答您的任何代码
问题，你有。
>> 请记住，本周，很多 你的时间会花在学习
新的语法，并试图了解 如何编写SQL查询或PHP
功能或处理 一个MVC框架。
很多这一周可能是你的时间 不会试图找出该
疯狂的逻辑，我们是 要求你这样做。
很多它我们刚刚走过去的是 相对简单。
>> 因此，这并不意味着等待 直到最后一分钟。
但它确实意味着调整你如何做你的 相应的工作，以确保
你的理解和 学习的语法。
所以，你没有，突然，不知 你想到底该怎么做，
但不知道如何 正是写。
好吧，我会看到你下周。