Джейсон Хиршхорн: Добро пожаловать все к неделе восемь. У нас есть захватывающие неделю перед нами. Вы, ребята, нырнул в этом последние пару лекций в PHP, SQL, HTML, CSS, так четыре совершенно новые языки, которые собираются взять на остальной этот курс. Мы также узнаете пару с другом языки до конца курса. Но в любом случае, само собой разумеется, это очень интересное время в CS50, теперь вы освоили C, якобы, и перейти к программированию для веб-сайтов. Так на этой неделе, мы собираемся пойти на беглый тур через четыре языки я только что упомянул, HTML, CSS, PHP, и SQL. И, надеюсь, мы будем оставить достаточно Время в конце раздела говорить о этой недели P набора и ответа какие-либо вопросы, вы все имеют. Каждую неделю, и тот же список ресурсов для вас, чтобы помочь вам с этой недели Проблема установить и собирается над материалом - но на этой неделе, в частности, для них веб-основе домашних заданий, есть множество других ресурсов из там, что вы, скорее всего, найти невероятно полезно. У меня есть их здесь. Я вам по электронной почте это после раздела, и это также может быть онлайн. Но в частности, есть много из большие ресурсы там. Есть также некоторые не столь велика те, так что будьте осторожны из них. Но на этом слайде, у меня есть четыре хороших ресурсов, по одному для каждой из языки, что вы будете работать с этой недели - одна ссылка лист для HTML, ссылка лист для CSS. Это право здесь руководство PHP. Таким образом, вместо того, чтобы печатать человека, а затем в PHP Команда, это, где вы бы пойти посмотреть на прототип функции и примеры, а также некоторые советы и рекомендации по работе с PHP функции. Вы будете использовать этот сайт часто, поэтому я призываю вас, чтобы стать знакомы с ней. Это может быть немного технических, но это также обеспечивает тонну ресурсов и примеры для всех функций и даже другие, например, как использовать массивы или различные типы переменных. Этот сайт может быть очень полезным для PHP. И потом, для SQL, если вы нырнули в этот неделе проблема набор, вы будете знать, что мы используем базу данных. И мы получаем доступ к этой базе данных через относительно приятный пользовательский интерфейс. Или то, что один из способов доступа что базы данных. Пользовательский интерфейс называется PHPMyAdmin. Там в закладке SQL, которые мы будем смотреть на позже сегодня. И вы можете ввести в их образца SQL запросы, делать вещи в вашей базе данных а затем запустить эти запросы. И если они правы, оно будет говорят, на этот раз правильно. Если они неправильно, оно будет скажем, это неверно. Это отличное место, чтобы практиковать ваш SQL запросов: прежде чем писать их в ваш код, чтобы убедиться, что вы имеют формат, правильно. Наконец, еще один сайт на здесь. Это сайт, где вы можете пойти и проверить, чтобы убедиться, ваш HTML код действителен. Так, прежде чем включать ваши проблемы установите на этой неделе, убедитесь, что все Ваш HTML действует. На прошлой неделе, вы исчерпали Valgrind, чтобы убедитесь, что у вас не было утечек памяти. На этой неделе вы должны убедиться, что все ваш код действителен HTML5. Если это не действует HTML5, вы собирается получить очки у. Поэтому убедитесь, что - только потому, что он работает не означает, что это полностью в силе. Выполнить свой код через этот сайт перед включением его дюйма Опять же, вот сайт. Если у Вас возникли обратную связь для меня, у нас есть еще пару разделов слева, и я всегда хочу делать то, что я могу, чтобы предоставить вам все с лучшей части испытать это возможно. Так дайте мне знать, если что-нибудь я можете сделать, чтобы улучшить или, если есть что вы видите, что я мог бы сделать лучше. Спасибо, Ави. Положите его на веб-сайте. Это был велосипед у меня был, когда я был, скажем, четыре дома. Это Teenage Mutant Ninja Turtle езда на велосипеде, в случае, если вы не можете сказать, , потому что это немного размыто. Вы можете получить его теперь на ToysRUs для, я думаю, около $ 100. Но особенность этого мотоцикла, который я хочу Вам обратить внимание на это такое прямо здесь. Таковы тренировочные колеса. До сих пор вы были портативные через С. И мы взяли длинный Время, за два месяца плюс, пройти С. Для этих ближайшие пару языков, мы не собираемся проводили так много времени. Учебные колеса сходит. И мы собираемся, чтобы погрузиться в них языки быстро и перемещения по их быстро, что не означает, что мы только собираемся оставить вас плавание там и нет пути для поддержки самостоятельно или выяснить, как они языки работать. Я просто показал вам список ресурсы, которые помогут вам. Но имейте в виду, что PHP невероятно похож на C. Мы рассмотрим это сегодня и некоторые различия. Но по большей части, Есть для петель. Есть, если условия. Если вы хотите, чтобы решить проблему, вы собираетесь использовать Комбинация из них. Это очень похоже. Логика должна быть очень похож на что вы сделали в прошлом. Что на самом деле новый на этой неделе Синтаксис и как вы выражаете себя. И вы хотите написать цикл, но это может выглядеть немного по-другому. Или вы хотите, чтобы создать массив, но это может выглядеть немного по-другому. Так что имейте в виду, что, двигаясь вперед, Логика очень похоже на то, вы сделали в прошлом. Но вы теперь собираетесь встречая много нового синтаксиса. И мы не собираемся вас через все элементы синтаксиса. Так что это действительно до вас, чтобы выяснить,, онлайн или через достижения на Обсудить или по электронной почте мне или поговорить с друг друга, как писать вещи в PHP и как писать запросы SQL и как использовать HTML и CSS. Но только так вы знаете, что это не так мы пытаемся бросить вас там снова плавать акул. Это то, что вы, вероятно, сделать с ваш окончательный проект, если вы выбираете другой язык, как IOS и Objective C, или если вы решили начать программирование в будущем и погрузиться в других языках, как Python или Ruby. Часто, логика очень похож по всем из этих языков, а также Синтаксис что по-другому. И это будет до вас, как программист, идти используют Интернет доступны для вас и фигуры ресурсы , как выразить то, что вы знаете, как выразить в C, в другой язык. Так что это хорошая практика, и для вашего Окончательный проект, и снова, для то, что вы, скорее всего, делать после выхода CS50. Прежде чем мы перейдем, кто-нибудь есть вопросы по поводу того, что Я сделал до сих пор? Великий. Давайте двигаться дальше. Во-первых, мы собираемся говорить кратко о команде CHMOD. Это, мы сделаем в начале из ваших проблем установить. Один из самых первых инструкций для вас, после загрузки Код распределения, является изменение Права доступа файлов и каталоги, которые вы получаете. Кто-нибудь может рискну предположить или знаете почему важно изменить разрешения некоторых файлов и каталоги на вашем компьютере? Ави - АУДИТОРИЯ: Тогда никто не кроме Вы можете видеть, что вы делаете? Джейсон Хиршхорн: ОК. Так что, если мы хотим, чтобы положить что-то на веб-и у вас есть права установить, что только вы можете увидеть что-то, то никто другой не может видеть то, что вы создали. Что еще? Да. АУДИТОРИЯ: Предотвратить кто-нибудь еще, что вы не хочу увидеть что-то, от увидеть что-то. Джейсон Хиршхорн: Это правда также. Там, наверное, пример кода, который Вы пишете, что вы не хочу, чтобы люди видели. Вы, наверное, хорошо с людьми, видя ваш HTML и в вашем браузере. Но ваш PHP, задняя часть кода, много логика в коде, может быть, вещи, которые хранят некоторые из ваших паролей для базы данных, вы не хочу, чтобы люди видели, что тип информации. Поэтому важно, что каждый файл и каталог мы создаем имеет разрешения применимы к хотите ли мы чтобы люди видели эти типы файлов и каталоги и иметь доступ к их и потенциально даже изменить их. Таким образом, есть три типа разрешений. Там в разрешение чтения, что означает, вы можете прочитать файл или список на содержимое каталога. Там в разрешение на запись, которая означает, что вы можете изменить файл или изменения каталог, а затем выполнить разрешение, а значит, вы можете выполнить файл или, скорее, вам может перейти в каталог. Так CD что-то, если у вас есть разрешение на выполнение его можно переместить в этот каталог. Это короткий пример. Опять же, вы прошли через это в задаче установить. Но я создать каталог с помощью команды MkDir. Я изменить разрешения. Эти две линии на самом деле та же самая вещь. Это чтобы проиллюстрировать, что синтаксис изменения разрешений, делаете ли вы + х или 711, те же. Мы с нетерпением вниз в этом хорошем столе. Мы видим, что есть пользователь разрешения в первую очередь. Вот вы, человек, и ваш сервер, потенциально. А тут еще группа и другие. Различия между тем, два относительно тривиально. Так вообще, мы будем объединять те вместе. Но по существу, если у нас есть файл называется включает, что мы хотим быть возможность редактировать себя и что мы хотим другие, чтобы быть в состоянии выполнить, это разрешение 711. И мы видим, что вниз здесь, в этой таблице. У нас есть чтение, запись и выполнение. Для каждого из нас, мы хотим быть в состоянии сделать те. Группа и другие, мы только хотим чтобы они были в состоянии выполнить. То, как мы перевести, что в ряде разрешение через двоичный. Так что, если у нас есть три из них, это 1 в столбце онов, 1 в двойках колонка, колонка 1 четверок. Вот 7 прямо там. И это разрешение 1. Это разрешение равно 1. Таким образом, когда 711 такое же, как предоставление сами читать, писать и выполнять, а все остальные выполнить привилегии. Эта линия прямо здесь, мы обычно будет читать и писать, когда мы создать каталог. Так эта линия здесь просто добавляет выполнить льготы всех. Так что было бы сродни, в дополнение к тому, что у нас есть, добавления 1, 1, 1 для всех. В то время как это, в этом нет необходимости добавить читать и писать. Но если вы собираетесь использовать числа, вы не можете просто добавить что-то. Вы перезаписать все разрешения были там и реализовать их на новые число вы даете. Это было довольно быстро. Кто-нибудь есть какие-либо вопросы об изменении прав доступа? ОК. Если у меня есть файл PHP, какие разрешения я хочу его иметь? Это в Архив задач спец. Таким образом, вы можете посмотреть на спецификации и то читайте мне ответ. АУДИТОРИЯ: Вы хотите, чтобы пользователь иметь права чтения и записи. И вы хотите, чтобы все еще не имеют ничего. Джейсон Хиршхорн: А что номера в том, что? АУДИТОРИЯ: 600. Джейсон Хиршхорн: 600. Так CHMOD 600 - всякий раз, когда вы печатаете файл PHP, CHMOD его до 600. ОК. У меня есть каталог. Кто-то кроме Джеффа, У меня есть папку. Какие права я хочу чтобы дать в эту папку - Также в задаче установить спецификации, прямо под этим ответом или предыдущий ответ? Также потенциально на слайде - Маркус. АУДИТОРИЯ: Для Папка, это 711. Джейсон Хиршхорн: 711 - так папка, вы хотите дать 711. Вы хотите, чтобы иметь возможность читать эту папку, перейдите в каталог, перейти в эта папка. И вы хотите, все остальные, чтобы иметь возможность ориентироваться в этой папке, но не обязательно менять его содержимое. Что на файл, не PHP, говорят, файл JavaScript? Какие полномочия мы хотим дать, что тип файла? АУДИТОРИЯ: 644. Джейсон Хиршхорн: 644 - Почему мы хотим, чтобы придать ему 644? АУДИТОРИЯ: Чтобы позволить другим людям читать. И вы читать или писать его. Джейсон Хиршхорн: Так прямо, все еще можно прочитать, что файл JavaScript. И вы можете изменить, что, помимо чтобы быть в состоянии прочитать его. Таким образом, одна из наиболее распространенных багов людей есть с этой проблемой устанавливать, и их Окончательный проект, если это веб-финал Проект, они не будут установили правильные разрешения. И они не смогут чтобы увидеть их на сайте. Или определенная часть их сайте. Поэтому убедитесь, что вы установите Разрешения правильно. Не просто предположить, что это будет сделать это автоматически. ОК. Это было мало того, что мы провели хорошее количество времени на, так мы могли прибить его. Давайте перейдем к HTML. И опять же, для этих следующих четырех тем, мы собираемся пройти через них относительно быстро. Поэтому, пожалуйста, не стесняйтесь, чтобы остановить меня в любом Время, если у вас есть какие-либо вопросы, являются ли они связаны с тем, что я покрываю или что-то из лекции или даже от установить проблема. Остановите меня, всякий раз, когда вам нужно. Когда мы доберемся до конца, мы просто начать двигаться по множеству проблем. Так HTML расшифровывается как Hypertext Язык разметки. Это не язык программирования. Все это делает структуру ваш контент а также обеспечить некоторые метаданные. Так, например, по-видимому, многие из прежде чем использовали Facebook. И вы можете включить ссылки в, или вы может поставить ссылку в качестве статуса. И потом, вы заметите, что ссылку всегда имеет красивую картинку к нему и какой-то текст. Как правило, это некоторые метаданные для веб-страницы. И это Facebook конкретных метаданных. А потом, когда Facebook читает, что страницы и вставить эту ссылку, он выглядит для конкретного метаданных, так что он знает, что картина для отображения, что Название для отображения, и то, что абстрактный текст для отображения. Так что мы можем включать метаданные с наш веб-страницы с помощью HTML. И это также помогает нам структуру содержание, как правило, что мы хотим идти туда, где. Все в HTML является элементом. И элементы прямо здесь - это CS50, текст является элементом. И у него есть некоторые теги. Она имеет этот тег. И мы замечаем, есть в начиная а затем слэш, так закрытия тег в конце. Иногда, есть не является открытым теги и закрывающий тег. Там только одна вещь. Мы видим пример, что на следующем слайде. Так что вам не нужно открытое и закрывающий тег. Но для этого, мы упаковывая это CS50 элементом в более тега привязки. И по существу, эти теги сказать браузер, что делать с конкретный элемент. Итак, еще раз, CS50 это текст мы собираемся, чтобы увидеть. И это будет тип якоря. Якорь в основном используется ссылки на что-то. В частности, как вы можете уже сказать, что это ссылаются на главную страницу CS50. Следующая часть тега - или вообще, часть тегов атрибуты. И мы видим здесь, что тег имеет один атрибутов, этот атрибут ссылки. И они изменить одно имя. В самом деле, если вы идете в одном из веб-сайты или ссылки, которые я дал вам до или заглянуть в тег онлайн, Вы заметите, есть тонна потенциальные атрибуты. Вероятно, это одна из наиболее распространенных. Это говорит мне, чтобы создать ссылку на определенный веб-сайт. И атрибуты обычно даются, если не исключительно дано, в пар ключ-значение. Так вот ключ, HREF. И ценность этого прямо здесь. И, что пригодится в дальнейшем, когда мы начинаем использовать некоторые библиотеки Помогите нам код в JavaScript или написать содержание HTML. Мы часто будет - так же, как мы будет делать массива кронштейн 0 и что даст нам некоторую ценность. В будущем, мы будем делать много такие вещи, как то, кронштейн HREF. И это даст нам значение HREF, или если мы хотим обновить HREF ключ, а затем дать ему конкретное значение. Так же, как с массивами, где мы имели Ключевым 0 или клавишу 1 или клавишу 2 или даже с хэш-таблицы, ну, с вашими хэш-таблицы а, вы, вероятно, было - это был массив, поэтому ключ 0, ключ 1, ключ 2. Этот показатель там, мы можем думать, что в качестве ключа. И это значение независимо хранилась там. Все эти атрибуты являются пары ключ-значение. И это будет важно для изменения им или их обновления или вставляя их в дальнейшем. Наконец, вы видели эту структуру раньше, но это является самым основным Структура HTML-страницы. В верхней части, мы говорим вам, что Это на самом деле HTML. А то у нас открытый HTML тег и близкий HTML тегов. Так что все внутри это HTML. Мы видим, голову и тело. Глава документа как правило, включает в себя то, что? Любые предположения на то, что вы положить в голове? АУДИТОРИЯ: Вы ставите название и стиль. Джейсон Хиршхорн: название. Это был великий догадываться. Я, возможно, нарушило тебя в. Каковы некоторые другие вещи? Мы упомянули одну из них, что может пойти в голову. АУДИТОРИЯ: Он сказал, стили. Джейсон Хиршхорн: Стили - поэтому если вы хотите перейти по ссылке в JavaScript или даже CSS, которые вы говорите о том, когда вы говорите о стилях. Еще один файл, вы хотите перейти по ссылке в за пределами файла, который будет, вероятно, будет в голову. Что еще? Мы упомянули пару слайдов назад одна из вещей, что HTML может сделать для вас. Это может обеспечить - начинается с M - АУДИТОРИЯ: метаданных. Джейсон Хиршхорн: Метаданные - так много метаданных пойдет в голове, потому что не обязательно должны чтобы быть частью тела кода. Это правило - тело Содержание, что кто-то видит. И поэтому я просто отдал ответ на мой следующий вопрос. Но в организме, как правило, содержание что собирается быть отображены на веб-странице. Как мы увидим, сложные веб-сайты , как правило, смешиваются или изменить до чего они положили в голове и телу. Но в целом, глава содержит вещи что пользователь не собирается видеть на экране. Он связывает в других файлах и обеспечивает метаданные. Принимая во внимание, что тело содержит все пользователь будет видеть. Любая идея, что означает, что это р теги? АУДИТОРИЯ: Пункт? АУДИТОРИЯ: Печать. АУДИТОРИЯ: Это не значит, печать. АУДИТОРИЯ: Значит ли это, пункт? Джейсон Хиршхорн: Пункт - так что это пункт. И это р тег, я мог бы только что ввели это на экране, а затем включены разрыв строки в конце него. Кто-нибудь знает, как включить разрыв строки? АУДИТОРИЯ: пр. - Джейсон Хиршхорн: пр. - АУДИТОРИЯ: Slash пр.? Джейсон Хиршхорн: пр. слэш выступает за разрыв строки. Но пункты имеют конкретных форматирование. И мы вернемся к форматирование в во-вторых, когда мы говорим о CSS. Но все внутри этих р тегов будет иметь форматирования некоторое умолчанию связанные с ним, вероятно, некоторые промежутков между различными пункты. И это будет одним из способов дифференцировать блоки кода. Любые другие метки - каковы другие метки, которые вы видели? Джейсон Хиршхорн: h1 через h6. h1 через h6, и что это такое? АУДИТОРИЯ: Это будет обозначать, насколько велика и смелый буквы. Джейсон Хиршхорн: справа, он выступает за заголовок. И так header1 большой заголовок. Это, наверное, по умолчанию, быть смелым, большой размер шрифта, вероятно, сосредоточены на экран, все, вплоть до h6, который является меньший размер шрифта, меньше подчеркнул. Конечно, вы можете, в вы CSS файл или где-то в коде - которые, снова, мы вернемся к этому в секунду - изменить то, что по умолчанию из h1 тег. Но имейте в виду, что Chrome, Safari, Firefox, Internet Explorer все есть умолчанию выглядит для многих эти стандартные теги. Вы можете, опять же, в любой момент изменить как они выглядят. Любые другие метки, что все видел? Да - АУДИТОРИЯ: дел сайт. Джейсон Хиршхорн: дел тег - дел тег не имеет встроенный формат, за существу, который используется для блокировки различные типы кода. Любые другие метки? Да. АУДИТОРИЯ: Li - Джейсон Хиршхорн: Li - что ли для? АУДИТОРИЯ: Список. АУДИТОРИЯ: Список Джейсон Хиршхорн: Ли для элементов списка. Есть два типа списков. Каковы два типа? АУДИТОРИЯ: упорядоченные и неупорядоченные. Джейсон Хиршхорн: Заказал и неупорядоченные - так ул стенды для неупорядоченного списка. Вот если вы хотите пулю указывают, список пуль. Упорядоченный список является нумерованный список. И так вы будете делать открытую ул тег, а затем тонн элементов списка, а затем закрыть ул тег. и что воля создания маркированного списка. Мы собираемся, чтобы увидеть некоторые примеры из HTML в немного. Но до этого, я хочу, чтобы добраться до CSS. И CSS расшифровывается каскадного Стилей. И это очень тесно связаны в HTML, но немного отличается. Это поможет вам отформатировать весь контент что HTML структур. Таким образом, в CSS, мы вообще не хочу стиль каждый заголовок или каждый одно изображение или каждый один абзац. Мы хотим, чтобы стиль некоторые элементы или, может быть конкретный элемент. И то, как мы стиль специфического элемент, чтобы дать ему ID. Так что это является атрибутом. Он имеет ключ и значение. ID является ключевым. Логотип представляет собой значение. Я выбрал логотип в случайном порядке. И если вы дадите что-то идентификатор, как правило, это должно быть дано только одному элементу. А потом, в таблице стилей, вы можете Стиль, который конкретный элемент, однако Вы хотите, чтобы она выглядела. Если вы хотите, чтобы стиль ряд элементы, может быть, это определенный класс заголовков, только некоторые из ваших заголовков. Может быть, это заголовок и изображение и пункт вы все хотите быть в центре. Тогда вы можете дать тем группам элементов все класс. И вы можете дать классу конкретные стили. Так ID и класс два способа разбить ваш код, так что вы можете помочь быть более конкретным в том, что вы стиль. Есть три способа, чтобы укладывать. Первый, с этот атрибут стиля. Итак, вы видите, ключ стиль стиль. Значение стиль на самом деле Еще одним ключевым список значений. В этом случае, я выбрал один ключ, выравнивания текста. И я сказал: центр. Вы можете спросить себя на это точка, откуда я знаю о выравнивания текста. Что это вообще делать? Это большой вопрос, чтобы спросить, и мы собираемся попасть в секунду. Так вот один из способов, как стиль что-то, просто дать ему атрибут стиля. Еще один способ, чтобы стиль что-то есть - это Akshar упоминалось ранее. Вы можете использовать теги в стиле и положить, что в голове вашего HTML документа. Таким образом, вы в основном говорят, содержание внутри здесь некоторое содержание стиль. И формат, что является, что вы хотите, чтобы стиль, а затем, внутри фигурные скобки, значение ключа пара атрибуты, которые вы хотите, чтобы дать что конкретный тип элемента. Наконец, и это Наиболее распространенный способ. И это то, как мы сделать это в р набора 7. Это Внешняя таблица стилей. Так у вас есть. Файл CSS. И внутри него, вы увидите много вещи, которые выглядят как это, название некоторого типа элемента или ID или класс, а затем, внутри фигурных скобки, список пар ключ-значение. Конечно, если вы создаете внешний файл, вы собираетесь нужно включать его - Резкое включают, что бы быть аналогия C - в вашем HTML-файл. Таким образом, вы должны включить это код в ваш HTML-файл. Это является имя файла и предполагаю, что это в том же каталоге. ОК. Это было много. И мы теперь собираемся дышать и смотреть в какой-то реальной, живой сайт и изучить это более. Но прежде чем мы это сделаем, делает никто есть вопросы? Так что если вы хотите сделать это вместе с мне, мы можем пойти к прибору. И я выбрал на главную страницу CS50. Вы можете сделать это с любого веб-сайта. Но почему бы нам не начать с CS50 домашнюю страницу? Давайте обновить. Я на самом деле очень рекомендую вам делать это вместе со мной, потому что то, что мы собираетесь делать теперь будет невероятно удобно для вас, не только в Набор P-7, но в P-Set 8, а также. Да. АУДИТОРИЯ: Есть ли способ сделать комментарии в HTML, не используя PHP? Джейсон Хиршхорн: Да, вы можете комментировать в HTML. АУДИТОРИЯ: Что синтаксис? АУДИТОРИЯ: Восклицательный знак тире тире. АУДИТОРИЯ: ОК. Джейсон Хиршхорн: Да. То есть синтаксис. Вы можете комментировать в HTML. Вы можете комментировать в PHP. Как вы увидите, комментировать в HTML будет еще появляются, когда мы смотрим на HTML исходный код того или иного сайта. Так что это cs50.net. Если щелкнуть правой кнопкой в ​​самых современных браузеры на большинстве любой странице вы просмотра источник страницы. Так давайте сделаем это на CS50. И вот, мы см. гигантский вещь. CS50 на самом деле выглядит довольно хорошо. Многие веб-сайты не будут смотреть этот хороший. Если вы идете на главную страницу Google, и открыть его. Это не будет выглядеть этот хороший. Но вы заметили, что, в верхней - это вроде небольшая. Давайте сделаем это больше. ОК. На верхнем, DOCTYPE HTML, вот знакомы. Затем мы видим открытую HTML теги и голова, прямо здесь, все из этих мета-тегов. И вы можете видеть эту О.Г., не буду вдаваться в это сейчас. Но я почти уверен, в том, что те были бы Facebook. То есть фактически Facebook. Я думаю, что расшифровывается как Open Graph. Так что помните, я упоминал есть Метаданные Faceboook конкретных вы можете дать на страницу. Это то, что находится прямо здесь. Поэтому, когда вы связываете эту страницу на Facebook, изображение он собирается показать это изображение прямо здесь. И вы на самом деле видите, что это Facebook, потому что это образ Facebook. Но в любом случае, мы получаем в сторону. Так у нас есть некоторые теги метаданных здесь. Мы видим, название CS50. И опять же, название то, что идет здесь, в закладке браузера. Мы видим это связывает в, прямо здесь, внешний файл JavaScript. Мы не говорили о JavaScript много, но на следующей неделе - и, конечно, если вы делаете веб-Архив задач, Вы будете использовать JavaScript. Это, как вы связать во внешних JavaScript-файлы. Мы видим здесь, наконец, CSS стилей, что документы эти стили этого кода. Давайте на самом деле открыть, что и взглянем очень быстро. Это выглядит сумасшедшим. Там нет, как я бы состоянии прочитать. Таким образом, вы можете фактически, хотя, если вы берете взгляд, можно сортировать, видят, что есть - там мы идем. Это похоже на что-то, что мы видели до, цвет фона, установив его равно некоторому красно-зеленый-синий стоимости. Этот материал рода не должно казаться, что иностранные, хотя, когда представлены так, он может быть немного подавляющим. Мы не будем смотреть на этот файл CSS или потратить много времени на это, потому что это, опять же, довольно трудно читать. Давайте вернемся к этому HTML страницы для CS50. И давайте прокрутите вниз к телу. А внутри мы видим эту DIV тег. Мы видим заголовок прямо здесь. Мы видим тега привязки. И этот список элемент учитывая специфический класс. И мы видим, повторил, что класс снова и снова. Там вы Кертис. Существует комментарий в HTML5. И, как вы заметили, мы все еще можем видеть это, но это не появляется. Это на самом деле очень интересно. Похоже, что этот список рекордов элемент закомментирован. Если мы идем на эту страницу, опять же, он по-прежнему появляется там, так интересно. О, вот почему, потому что из этой следующей строки. Что еще мы видим интерес? Остальные это более запутанной, в дело с этим правой половине сайт, который немного несколько сложнее. Так что это то, что некоторые HTML собирается выглядеть. Для меня, хотя, это немного подавляющим, и это не помогите мне, что много. Тем не менее, есть что-то, что действительно, на самом деле, мне очень помогают. И это то, что я использую, когда я пытаясь выяснить, как что-то выглядит, как он делает, или как может Внести изменения в свой веб-сайт. И это является инструментом разработчика , который встроен в Chrome. Так что, если вы идете в эти три баров прямо здесь и спуститься к инструментам нажмите на Инструменты разработчика, немного окно всплывал в нижней части страницы. И в частности, хром, так как это замечательно, будет отформатировать это окно и взять HTML и сделать его намного более хорошим для вас. Так что теперь это на самом деле некоторые складные HTML, что вы можете изучить, чтобы осмотреть элементы страницы. Если мы хотим, чтобы посмотреть на тело, он на самом деле подчеркивает. Когда вы выделите на часть HTML, вниз в этом окне, он будет выделить часть это говорить о в большом окне. Итак, позвольте мне еще раз попытаться взорвать этот немного. ОК. Так давайте откроем тело. И я прокрутки над этим левой дел. И вы заметите, что это выделение это левая половина экрана. Так что давайте нажмите на что и расширить это. Внутри него, похоже, Есть два дивы. Там в этот первый див. Я не вижу, что выделяется. Я не знаю, но это выглядит так Второй, слева внутри, это содержание на левой стороне экрана. Тогда есть то, что называется заголовок. Похоже, что это выделение CS50 часть. Если мы откроем, что, мы видим, что это не более, чем заголовок 1. Это дало идентификатор, и это учитывая текст CS50. Итак, еще раз, глядя на него через это Консоль или с использованием средств разработчика Панель в нижней части экрана делает исследуя этот веб-сайт, мы надеемся, много менее пугающим и гораздо более доступным. Это также позволяет нам понять, что этот сайт, хотя это выглядит очень красивая и хорошо, не так уж и много больше, чем вы собираетесь быть делают на вопрос, поставленный 7. И это совершенно в ваша способность создавать. Если мы хотим - другой здорово, что об использовании этих инструменты есть, если вы щелкните правой кнопкой мыши на название, вы можете редактировать HTML. Так что давайте называть это Джейсон. А теперь вы заметите я изменил HTML на этой странице. Конечно, я не изменил это постоянно. Если я обновить свой браузер, то это было бы вернуться к первоначальному HTML. Но иногда я хочу, чтобы отладить свой код, и я не хочу, чтобы выглядеть так же, есть свое окна Gedit и попытаться понять, что происходит. Я хочу видеть, что произойдет в прямом эфире. Так что я буду править такой код и получить это, как я хочу, чтобы она выглядела. А потом я сделаю изменения в своем коде. И я считаю, что это намного проще когда вы можете делать то, что мгновенно, вот так. Скажем, опять же, мы хотим сделать еще один шанс, потому что мы исследуем с HTML и CSS прямо сейчас. Я могу редактировать HTML прямо сейчас. И я собираюсь включить ссылку. Так что я собираюсь изменить дом CS50 в страницы, поэтому он будет ссылаются на - скажем - мою страничку. Как называется, если кто вспоминает, или что атрибут я хочу дать к закладке якоря, когда я хочу это связать где-то в другом месте? АУДИТОРИЯ: HREF? Джейсон Хиршхорн: HREF - Так что теперь, вы увидите, что там является подчеркивание под Джейсона. Это потому, что Chrome, по умолчанию, дает якорей подчеркивание. Вы, наверное, видели, что перед когда вы ушли на веб-страницу. Вещи, которые ссылки подчеркнуты и выделены синим цветом. Стиль по умолчанию для ссылки является в целом подчеркнуть и положил его в синий цвет. Если мне не нравится, что, Я могу это изменить. И мы будем менять в секунду. Но теперь, также заметите, что, если я наведите по этому поводу, в нижней левой части экран, прямо над элементами слов является связующим звеном, что я дал его. Так что, если я сделал нажмите на это - и мы можем щелкните правой кнопкой мыши на этом, открыть новую вкладку. Это на самом деле не на моей домашней странице. Это просто мое имя. Там вы идете. Мы теперь превратить его в ссылку. Давайте рассмотрим некоторые CSS, а также. Красивая вещь, - и я собираюсь сделать это немного меньше - около эта консоль является то, что с ума CSS лист мы видели раньше, что было на самом деле трудно разобрать, теперь красиво выложил за нами на левой стороне этой области. Таким образом, мы можем посмотреть. И если мы расширяем эту вкладку стили, мы можно увидеть все разных стилях , которые связаны с, в данном случае, именно этот элемент, это ссылка элемент. Если мы это сделаем вкладку стили составные, что просто показывает нам, не там, где все приходит, но по существу все из них стили, которые действуют на именно этот элемент прямо сейчас. И скажем, мы хотим изменить его немного. Так что это все стили, которые работающих на данном элементе. Скажем, мы хотим, чтобы изменить его, потому что мы хочу посмотреть, как что-то выглядит. И мы просто играли вокруг прямо сейчас. Или мы хотим проверить что-то, прежде чем записав его в коде и нажав это и делает его жить. Мы можем перейти на вкладку стилей. И в первом поле он говорит, element.style. И здесь, вы можете вставить, Вы можете добавить что-то. Так что я хочу - пойдем к моей ссылке и установить цвет фона. И это на самом деле AutoFills это для вас, все возможные свойства. Цвет фона, и я хочу, чтобы сделать эту синий. Blus нет ни слова. Синий это слово. Видел ли я это придумал? О, это потому, что это в HREF? ОК. Так что я не вижу никаких изменений здесь. И это потому, что, если мы выделяем ссылка, вы заметите, что связь фактически не управление Свойства этого конкретного элемента. Это на самом деле, если мы открыть ссылку, этот заголовок прямо здесь вот управления, как он выглядит. Так что, если я хочу сделать фон синий, я на самом деле нужно изменить Цвет фона на элемент заголовка. И теперь мы видим, что фон синий. Итак, еще раз, это быстро мог бы идти через этот материал довольно быстро. Но это, по существу, что вы собираетесь делать. Это не на вопрос, поставленный 7, но, конечно, когда ты кодирования в Интернете. ОК. Я хочу, чтобы сделать синий фон. Хотя, в данном случае, синий выглядит довольно некрасиво. Я могу пойти сюда, поиграть. Я вижу, что изменить его на синий не работает на а. У меня есть на самом деле изменить заголовок элемент для включения синий фон. И потом, если я вернусь к моей CSS файл, как я на самом деле установить это фон будет синий и сделать это изменение палку? Потому что, если мы замечаем, если я обновить страницы, все изменения, которые я сделал ушли. Так я понял, в порядке, мой фон синий. Мне нужно идти в эту Header1 элемента и изменить цвет фона на синий. Как на самом деле сделать это изменение? Ну, помните, что, если мы пойдем внутрь отсюда, этот заголовок, название имеет идентификатор. И это название. И так в нашей CSS файл, можно сказать, в порядке, взять что-нибудь с ID титула и дать ему эту дополнительную недвижимость. Как мы ссылаемся что-то с Идентификатор название, любые идеи, или никому знаю, как мы ссылаемся Идентификаторы в нашей CSS файл? Хэш, это совершенно верно. И вы получили намек, что прямо здесь. Так где-то в этом файле CSS, есть эта строка кода - # Оставили # левый-внутренняя # заголовок # титул. И это дает ему маржи дна, определения рентабельности нижней части этой конкретный элемент. Ну, если бы я хотел, чтобы изменить это, Я пошел бы в этот файл CSS. И я мог либо найти этот часть файла CSS. Или я мог бы написать свою собственную. Я мог бы сделать хэш название фигурную скобку и то цвет фона толстой кишки синий точка с запятой и близко, что фигурная скобка. И, что бы изменить фон цвет этого элемента на синий. Причина они дают вам так много здесь что необходимо в этом случае потому название является уникальный идентификатор. Но то, что вы можете сделать, это гнездо вещи. Так что это говорит, хорошо, идти налево. Это очень мало. Я прошу прощения за это. Но идти к вещи с ID слева. Внутри, что, посмотрите на вещь с ID слева внутри. Внутри этого взгляда, искать вещь с ID заголовка. Внутри, что, посмотрите на вещи ID название и изменить ID титул. Так что это просто способ гнездящихся вещей. Некоторые люди, как гнезда его, потому что это делает его немного яснее. Вы увидите здесь также, прямо здесь, нет никакого хэш. Это просто h1. Это потому, что h1 дается Имя универсального тега. И есть некоторые свойства CSS связанные с каждым h1. Так что, если я нашел еще один h1 на этой странице, Я хотел бы также видеть, что этот стиль был применяется к нему, а также. Если бы я хотел, чтобы применить стиль к классу, как я могу сослаться на класс или говорить о классе в файле CSS? АУДИТОРИЯ: Dot. Джейсон Хиршхорн: Это с точки. Так что давайте вернемся к этой странице, перед. Если я это сделаю хэш ID. Вот изменения стиля из вещь с ID. Или жаль, если я делаю хэш логотип, это найти вещь с ID логотипа и придав ему особый стиль CSS. Если я что-то делаю. Сверху, который нахождения все с классом верхней и изменения его стили. Если я просто h1, который находит каждый одиночные h1 и дает ему все, что стиль я хочу дать его. Если я это сделаю h1 пространство и потом. Сверху. Это пойдет найти все H1S а затем все те, с классом верхней и то только изменить эти стили, чтобы все, что я хочу дать его. И опять же, мы могли бы написать некоторые из этого самостоятельно. Но мы не получили бы так далеко. Намного лучше, кажется, на самом деле идти на реальной живой сайт и посмотреть, как они делают это и посмотреть на все фантастические вещи, которые вы получаете, чтобы сделать. Давайте посмотрим на еще один веб-сайт прежде чем мы перейдем. И это тот, который вы, вероятно, ознакомиться с. Это CS50 Финансы. Итак, еще раз, вы можете пойти и наблюдать этот файл CSS на вашем компьютер, потому что вы скачали этот CSS файл, если вы скачали Проблема установить. Мы можем пойти в Tools и Инструменты разработчика. И мы видим гораздо более простую компоновку HTML. У нас есть верх, середину и низ. И опять же, то, что вы должны быть знакомы, потому что вы смотрели по коду распределения для проблема на этой неделе установить. В верхней части, в соответствии с кодом, одно изображение называется. И это источник изображения. Скажите, что я закончил все что Я хотел для задачи Набор 7. И что она работает правильно, но Я хочу изменить, как это выглядит. И я хочу, чтобы изменить фон из верхней части страницы, Например, синий. Если бы это был я, я бы пришел в здесь и выяснить, хорошо то, что я хочу изменить. Давайте посмотрим, отд ID вершины, что внешность как в верхней части страницы. Так что давайте идти туда. Давайте попробуем изменения Цвет фона. Пойдем сделать Alice Blue, потому что что это более хороший. И вы заметите, что - Вы, вероятно, не вижу. Но есть светло-голубой, наряду с CS50 логотипом. Давайте изменим его вместо на красный. И вы заметите, теперь я просто изменил цвет фона на красный. Так что теперь я пойду в мою CSS файл и введите # Top скобка фигурные прямо здесь. Вы можете увидеть код право здесь, фигурная скобка. И потом, я хотел бы добавить фон цвет, красный. А потом, не было бы быть фигурная скобка. Так что это как бы я изучить и экспериментировать с форматированием на CS50 Финансы сайт. Я мог сделать это здесь и тест это на моем браузере. И потом, я мог бы пойти в мою фактическим кодом и внести изменения, которые будут на самом деле идти в прямом эфире, и что люди реально увидеть, если они должны были прийти к мой определенный сайт. ОК. Это было много. Я прошу прощения за переживает это так быстро. Кто-нибудь есть какие-либо вопросы вообще о HTML или CSS? АУДИТОРИЯ: Можете ли вы просто пойти на, как вы связаны, что стало Джейсон, опять? Джейсон Хиршхорн: Что вы имеете в виду связаны? АУДИТОРИЯ: Вы предоставил ссылку на другой сайт, используя якорь. Джейсон Хиршхорн: Так вы спрашиваете, просто в общем, как вы делаете ссылку? АУДИТОРИЯ: Да. Джейсон Хиршхорн: ОК. Код для изготовления ссылку - АУДИТОРИЯ: Нет, как и в HTML. Джейсон Хиршхорн: Здесь, внизу, вы имеете в виду? Так что, если я хочу, чтобы включить ссылку где-то, скажем, это HTML на моем страницы прямо здесь. Это HTML. Может быть, он открыт в файле, index.html. Я входить Давайте об авторских Иоанна Гарвардский ссылку на что-то. Таким образом мы будем редактировать все это, как HTML. Все, что вам сделать, это включить а, так скобки закрывающую скобку в начинается, а затем кронштейн слэш закрывающая скобка в конце. Так что теперь я включил якорный тег. А на самом деле, если вы нажмете из этого, он будет теперь отформатировать его редактировать как HTML. И сказать, что мы хотим связать его. Мы были бы Вам HREF атрибута. И мы говорим - И теперь, как вы заметили, авторских прав Джон Гарвард является синий. И когда я выделите на это, то теперь ссылку. Таким образом, вы можете написать этот код. Вы можете окружить почти ничего Вы хотите в тега привязки и превратить его в ссылку. АУДИТОРИЯ: ОК. Понял. Джейсон Хиршхорн: А если я не хочу это - конечно, иногда люди, как правило, думать эти вещи, которые просто выглядят синий общем и подчеркнул являются не самый симпатичный способ сделать ссылку. Так что, если я прихожу сюда, вы видите, что, где-то в файле CSS, существует написано это, а затем две фигурные скобки. Так скажем, что для ссылок, я не хочу, чтобы они синеют, а я хочу цвет ссылкой на будет этим хорошим пурпурный. Давайте дадим ему цвет. Давайте выберем пурпурный. Теперь, все ссылки на моей странице есть стать этим хорошим цвет пурпурный. Некоторые люди не любят цвета вообще. Некоторые люди не любят подчеркивания. Вы добираетесь, чтобы выбрать. С ссылкам, вы можете укладывать как они смотреть, как только вы посетили их. Как вы заметите, на много страниц, Ссылки становятся пурпурными на вы посетите их. Вы можете изменить этот цвет, а также. Да. АУДИТОРИЯ: Таким образом, вы измените его для каждого отдельного звена. Но если вы просто хотели сделать эту связь Сам, вы бы просто сделать в ID снизу или что-то? Джейсон Хиршхорн: Так большой вопрос. Как вы заметили здесь, я изменил некоторые часть CSS, который применяется к все это А. Если бы я хотел просто делать, что ссылка находится внизу, I пойдет на моем CSS файл и, вероятно, сделать так же, как вы сказали, хэш Нижняя пространство. И это даст мне Все как в нижней части. Или я мог бы, в качестве альтернативы, дать ему уникальный идентификатор, а затем просто сделать хэш ссылку. И это позволит мне изменить это. Тем не менее, только скупые идентификаторы волей-неволей , как правило, плохо практика, потому что те, должно быть уникальным. И чем больше у вас есть те,, это может получить немного запутанным. Да. АУДИТОРИЯ: Можете ли вы дать то же самое ID нескольким владельцев? Джейсон Хиршхорн: Технически, да. Ничего не происходит, чтобы остановить вас, но вы не должны Вы должны дать ему класс. OK, любые другие вопросы о HTML или CSS? ОК. Давайте перейдем к PHP. О, да. АУДИТОРИЯ: О чем это они сайты, которые означает, что мы можем изменить их прежде, чем мы обновить. Но как только мы обновить он возвращается вернуться к начальной HTML? Джейсон Хиршхорн: Хороший вопрос - поэтому, когда мы загрузили этот веб-страницы, это HTML. И это JavaScript. Его PHP выполняется, чтобы дать нам все, что тип веб-сайта мы видим. И это создало некоторую HTML, некоторые JavaScript, и некоторые CSS. И что теперь доступна на нашем компьютере. И копию этих файлов сохраняется локально на нашем компьютере, на данный момент. Так что мы можем изменить этот локальную копию. Но, конечно, мы не редактируя копия сервера. И когда мы обновите страницу, мы получаем еще одну копию сервера. И вот мы видим вещи назад, когда они были. Если бы мы смогли, отсюда, редактировать Официальный сайт, мы должны много проблем. АУДИТОРИЯ: Да, так что мы можем читать и написать эту копию. Джейсон Хиршхорн: Верно. Мы только что делает локальные изменения здесь, но опять же, очень полезно для изучения, часто. Когда я пишу мой последний проект, для Например, я хочу видеть, как некоторые Сайт сделали что-то взгляд то, как они сделали. Я пойду и использовать эту панель вниз здесь, чтобы посмотреть на то, что CSS они дали это или какой цвет они выбрали и как они получил его, так что, когда вы парили над чем-то, список сошел в хорошем каскадным способом. Это отличный способ проверить то, что другие сайты делать и брать от них. Давайте перейдем к PHP. PHP расшифровывается, в рекурсивном смысле, Гипертекста PHP Процессор. И PHP, что он собирается делать является выполнение на стороне сервера кода. Так мы никогда не увидим PHP код. Однако, это приятно играть с HTML и часто порождает много HTML кода. Но, как вы будете знакомы с задачей Установить 7, ваш код PHP будет выполнять, сгенерировать HTML, и это то, что пользователь в конечном итоге увидит. PHP невероятно похож на C. Однако, есть несколько различия, и эти различия важно отметить. Одно из отличий является то, что переменные в PHP слабо набрали. Кто-нибудь есть чувство что это значит? АУДИТОРИЯ: Нет необходимости, чтобы бросить его самостоятельно. Как никакой необходимости писать в тексте. Джейсон Хиршхорн: Я бы не использовать Слово литой, но да, нет необходимости объявлять Тип для конкретной переменной. Как вместо мы объявить переменную? АУДИТОРИЯ: Используйте знак доллара. Джейсон Хиршхорн: Используйте знак доллара. Так $ х является переменной. $ 1 является переменной. $ Строка является переменной. Те переменные, $ х мог быть целым числом. Тогда, это может быть строкой. Тогда, это может быть характер. Это действительно не имеет значения. Кроме того, здорово, что об PHP является, скажем, $ х является строка один. И $ у является характер один. Вы можете добавить $ X и $ Y, и это будет дать вам 2, то, что вы ожидали бы. Таким образом, есть операции в PHP. Потому что это свободно типизированные переменные, некоторые неявное приведение будет сделано за вас и некоторые операции. Вы можете сделать операции на вещи различных типов. Если раньше, вы часто получаете сообщение об ошибке в C поговорке, это не тип что, как предполагается, идут сюда. Только вещи этого типа могут пойти сюда. Вы не собираетесь, чтобы получить этот тип ошибки, как правило, в PHP. Так вот одна большая разница - как мы имеем дело с переменными. Вторая большая разница в том, что PHP код интерпретируется. Wheres, С компиляции кода. Что это значит? Ну, для кода Си вы побежали это через компилятор. Вы генерируется бинарный файл. И вы побежали, что двоичный файл. Вы взяли на себя все ошибки, прежде чем Вы генерируется бинарный файл. Конечно, есть, возможно, был Сегментация недостатки, при запуске двоичный файл. Но это не так, как вы забыли включить определение Printf или вы не использовать переменную и просто создал расточительного переменную. Или вы не определить Прототип функции. Все, что произошло, прежде чем составлен. Это дало вам все ошибки или плохо вещи, которые он думал, могло бы случиться. И потом, у вас был свой 0 и 1 файл, который вы запускали. PHP код не работает так. Вы собираетесь написать свой код PHP. Тогда, вы собираетесь сохранить его, по-видимому. И по крайней мере в P-Set 7, вы будете чтобы обновить свой веб-браузер, и вы собираетесь посмотреть, что случилось. Вы собираетесь увидеть выход этого PHP кода. Вы также можете увидеть, в верхней вашей страницы, ошибка. Потому что вы были некоторые Ошибка в PHP. Вы все еще можете увидеть остальную часть веб-страница выглядит нормально. Но одна часть не так, и есть Ошибка в том месте. И это потому, что часть ваш код PHP не работает. В самом деле, когда вы выполняете, когда вам пойти на что-то вроде by.php. Это собирается идти через ваш PHP файл строка за строкой и выполнить его тогда и только тогда. Это не собирается, чтобы скомпилировать его впереди Время или скомпилировать одну копию, а затем дать что составлен копию всем. Каждый раз, он собирается пройти строка за строкой и выполнить его. Таким образом, некоторые линии могут работать и Выход что-то правильно. И другие линии может быть нарушена и выход об ошибке вместо. Так при отладке с PHP, мы дали Вы несколько полезных вещей для отладки, как функция свалка. Но в целом, вы будете чтобы увидеть эти ошибки. И вот как вы собираетесь знаю, что вы сделали что-то не так. Но вы только собираетесь, чтобы увидеть ошибки как только вы на самом деле запустить код. Еще один важный аспект PHP и веб-разработки является идея GET по сравнению с поста. Кто-нибудь может объяснить, в чем разница между получить и пост являются? Никто - Да. АУДИТОРИЯ: Не один из них позволяют пользователю видеть данные, и один из них не делает? Джейсон Хиршхорн: Отлично. Да, у вас есть, что добавить? Зала: Я тонкий пост супер-глобальной переменной. Джейсон Хиршхорн: Так как из них переменные дано вам. Это всего лишь переменные. И вы знаете, что они переменные, потому что прямо здесь я использовать знак доллара. Это переменные данные вам PHP. И когда вы перемещаться между веб-страниц, Вы хотите сохранить некоторую информацию. Вы, наверное, хотите сэкономить, если пользователь вошел Это не сохраняются в GET и POST. Вот сохраняются в чем-то другом, другой переменной. Кто-нибудь знает, что переменная, спас в, или то, что переменная используется в P-Set 7, чтобы убедиться, что пользователь вошел в? $ _SESSION, Это совершенно верно, вероятно, важно быть знакомым с имена этих вещей вы часто пользуетесь. Таким образом, вы использовать переменную сессии, чтобы сохранить Информация от страницы к странице. Это супер переменной. Она существует на каждой странице, может быть, как глобальная переменная, если вы хотите думать об этом так. Есть несколько других переменных которые позволяют передавать информацию от страницы к странице. В частности, те, которые мы сосредоточимся на являются GET и POST переменные. В PHP они похожи $ _GET И $ _POST. И разница, как Маркус отметил вне, между двумя из них является то, что, Информация, содержащаяся в $ _GET является отображается в URL. Так что, если мы посмотрим сюда, мы видим ссылку YouTube. Мы видим это вопросительный знак. Мы видим, V =, а затем некоторое значение. Вернуться к этой идее значение ключа пара, V является ключевым. И здесь это значение. Так что, если мы должны были пойти на эту страницу или кодирования на этой странице, мы должны были бы переменная с именем $ _GET. Если мы пошли в $ _GET открывающая скобка "в" закрывающая скобка, очень похож на массив обозначения, это ассоциативный массив потому что мы не используем индексы. Были использования строк в качестве ключей. Но очень похоже идея. Если бы мы пошли мы, получили бы это значение. На этой странице мы будем в состоянии использовать это значение. Если мы на самом деле выглядят, давайте перейдете на страницу YouTube. Что видео мы должны смотреть? Этот, как люди Хоббит поклонников? АУДИТОРИЯ: Да. Джейсон Хиршхорн: Так что я копирования их URL доля и вставить его в новом окне. А теперь, если вы посмотрите сюда, вы будете заметить, что, в очередной раз - Я собираюсь скопируйте и вставьте в Gedit, поэтому мы можем видеть его больше. Вы заметите, что у него есть это знак вопроса. Знак вопроса означает, что все после этого будет сохраняется в переменной GET. Затем он имеет V, это первый ключ, и это первое значение. Амперсанд является особенным. Ampersand говорит, хорошо, мы закончил первое значение. Сейчас мы переходим к другому ключевое значение пара. Здесь ключевым называется функция, и значение youtu.be. Так что, если я был кодирования эту страницу и кто-то пошел в этот URL, и мне пришлось может быть, watch.php. И я был кодирования это. И я мог бы использовать переменную $ _GET. И я бы V, и Я бы иметь функцию. И если я использую ключ V, I бы получить это значение. И если бы я сделал $ _GET кронштейн "особенность" закрывающая скобка, я хотел бы получить это значение. Опять же, это не обязательно распространяется на: - Очевидно, что ключи YouTube и ценности и получить информацию не распространяется на Наша проблема указан 7. Но есть определенные вещи, которые мы пройти через GET в нашей задаче Set 7. И, конечно, когда вы идете на веб-страницу или кодирования свою собственную страницу, $ _GET Пригодится когда ваш кодирования. Что является одной из причин, чтобы использовать $ _GET то, если он не дает никакой частной жизни? Вы видите всю эту информацию который передается. Это все отображается пользователю. Но то, что это одна из причин, что вы, возможно, хотите сохранить что-то в $ _GET, как отличие от $ _POST? Почему вы можете это сделать? Хорошо. Я просил вас в викторине 1. Что такое профи $ _GET? Что один профи? Да - АУДИТОРИЯ: Легче обмениваться информацией. Джейсон Хиршхорн: Я думаю, это здорово. Это проще для обмена информацией. Легче закладки. Вы можете отметить сейчас, YouTube.com / смотреть? V = что-то и уходят к этому конкретному видео. Если YouTube всегда делал POST запросы Различные, каждый URL YouTube будет YouTube.com. Вы не могли закладки одного видео. Потому что, если вы говорите, разделяет эту ссылку с кем-то еще, они не автоматически получить сообщению переменную. Они просто получить по этой ссылке, а ссылка является одинаковым для всех. Так что это один профи. Она позволяет отмечать этот информацию или поделиться этой информацией или сделать его немного более удобным для пользователей. Конечно, нет никакой частной жизни, поэтому мы должны этот пост переменную. И сообщение информация не отображается в URL. Это не полностью частной. Но это немного более личное. И так вы увидите этот адрес здесь, cs50.net. Будь или не вы вошли в сайт, он будет иметь то же самое URL, cs50.net. Очевидно, что-то изменилось, если вы вошли на сайт. У вас есть, один, вероятно, введите ваш PIN-код. И это подтверждает, что с сервером. И это, вероятно, сохранения некоторая другая информация. Но URL не меняется вообще. И таким образом, это тот случай, когда что-то высылается по почте. URL-адрес не меняется. Эта информация POST не отображается в URL. Но некоторые состояние изменилось, и, возможно, есть некоторая информация сохраняется в Переменная POST. Извините. Прежде чем перейти к SQL, любой вопросы о PHP, в частности, вопросы по вещей, которые мы не переходило что Вы нашли или любой синтаксис или логические вопросы о PHP? ОК. Окончательный язык вы будете взаимодействуя с этой недели Structured Query Language, SQL, часто произносится продолжение. Это позволяет взаимодействовать с В базе в формализованном образом. И он играет очень хорошо с PHP. Как вы увидите в Архив задач 7, мы дал вам функцию с именем запроса. И это принимает строку SQL и выполняет что запрос в базе данных. В прошлые годы, вы не были учитывая эту функцию. Вы должны были использовать PHP функции, чтобы сделать запрос в базе данных и проверки за ошибки, а затем получить результаты. А на самом деле, это не так сложно, потому что снова, он играет очень приятно с PHP. И PHP дает вам много функций взаимодействовать с базой данных SQL. Так часто, два из они идут вместе. Конечно, вы могли бы взаимодействовать с база данных SQL с любым ряд других языков. Но PHP является отличным из них выбрать. База данных - мы пойдем по этому поводу быстро, потому что это гудение слово мы собираемся начать использовать часто - представляет собой набор таблиц. Так что мы можем думать о нем в виде файла Excel. Файл Excel имеет несколько вкладок в нижней части экрана. Каждая вкладка теперь мы будем называть таблицу, где Таблица представляет собой набор строк. А что такое строка? Ну, ряд является то, что одно и то же в файле Excel. Это просто есть определенные значения для каждого Данное поле или каждый заданный столбец. Это как запись в таблице. Это студент, который имеет идентификатор, определенный идентификатор и конкретное имя и конкретных дом. Таким образом, база данных представляет собой набор таблиц. И сами столы количество строк или записей. Есть также, в каждом стол, определенные поля. И это определяет то, что каждая запись будет иметь, поля иногда называют колонны, но в целом называются полями. В этой очень простой таблицы, у меня есть три поля, поле идентификатора, имя пользователя поле, и поле хэш. И у меня есть три ряда. Прямо сейчас, они пусты. Они, вероятно, не было бы пустым если бы это было мое настоящее базы данных. Так что если вы использовали Excel, подобная идея к тому, что вы делаете в Excel, хотя, Очевидно, теперь мы собираемся быть в состоянии сделать гораздо более мощные вещи на Информация, хранящаяся в нашей базе. Вы будете создавать себе один база данных для задачи Набор 7. Но вы будете создавать кратное таблицы в базе данных. Вы будете создавать базу данных или таблица для пользователей. Вы будете также создания таблицы для вероятно, биржевые операции, чтобы сохранить трек из них, потому что вы должны реализовать функцию истории. Оба эти таблицы будут иметь различных областях. Например, в поле пользователя, вы вероятно, хотят, чтобы их имя пользователя и ID и хэш их паролем. В таблице запасам, которая следит за История или таблица История, вы наверное, не нужно имя пользователя и хэш и ID. Вы, наверное, нужно только один из тех, значения, которые являются уникальными, чтобы связать это с данным пользователем. Но тогда, вы хотите сохранить друга такие вещи, как, в какое время был сделка, совершенная. Что акции были куплены или проданы? Сколько акций складе был куплен или продан? Какова была цена, по которой акции были куплены или проданы? Итак, еще раз, вы собираетесь быть взаимодействующих с базами данных, что это будет иметь несколько таблиц. Каждая таблица будет иметь свой собственный набор полей. Тем не менее, есть, вероятно, будет похож поле в каждой таблице, что связывает их друг с другом. Как правило, это поле ID. Потому что, если каждый пользователь имеет уникальный идентификатор и вы связываете этот идентификатор с каждым сделка, пользователь делает или все истории этого пользователя. И у вас есть ID пользователя. Вы можете получить информацию либо из таблицы. Вы можете получить его имя, и вы можете получить все свои операции. Любые вопросы о базах данных, или конкретные вопросы? На самом деле, давайте считать, что. Мы будем там в две стороны. Таким образом, есть четыре операции на базы данных, которые вы будете использовать в Проблема указан 7 и, вероятно, когда-либо использовать. Первое, что вы хотите сделать, это вставка новый рекорд в таблицу или новая строка в таблицу. Это обобщенная функция, Общая форма, этого SQL запроса. Вставку в таблицу, все столбцы Вы хотите вставить, а затем ценности, которые вы собираетесь хотите введен в этих столбцов или полей. Если у вас есть несколько таблиц в базы данных или нескольким базам данных, возможно, также потребуется указать базу данных и таблица, что вы хотите чтобы положить вещи в. Но очень просто, если вы хотите вставить во что-то, вы говорите, вот Поля, которые я хочу вставить в. А вот те ценности,. В некоторых таблицах, также, и этого пользователя таблица является хорошим примером. Вероятно, в таблице этого пользователя и вероятно, в таблице вашего пользователя в P-Set 7, есть не просто значение имени пользователя. Там не просто денежная стоимость, или поле, а. Существует также поле идентификатора. Я не собираюсь вставить, что поле идентификатора. Это собирается быть уделено мне автоматически, когда новая запись вставляется. Таким образом, есть некоторое поле, что вы можно установить, чтобы быть автоматическим. Может быть, вы хотите, чтобы дать каждому пользователю $ 10000 наличными с места в карьер. Так что я не нужно вставить ряд наличными здесь. Все что мне нужно вставить это имя пользователя. А потом, поле деньги будут предварительно заполненные, и поле ID будет быть предварительно заполнены. Так часто, мы не вставляя что-то в каждой области из-за те другие поля предварительно заселены. Потому что, как мы настроить эту таблицу. Второе, что вы собираетесь хочу сделать, это удалить запись. Удаление что-то очень простое. Вы даете таблицу, где вы хотите удалить что-то из. А вы говорите, хорошо, я хочу, чтобы удалить запись, которая имеет имя пользователя Мило. Или я хочу удалить все записи, есть имя пользователя Milo или, что были Сделка с ID пользователя № 2. Есть вопросы по этим два типа запросов? АУДИТОРИЯ: [неразборчиво]. Джейсон Хиршхорн: Да. Так что я собираюсь использовать строку и запись взаимозаменяемы, а некоторые с колонной и области. Но одна строка одна запись. Одна колонка является одной области, собирается вернуться к этой таблице. ОК. Следующее, что вы, вероятно, собираюсь сделать, это получить некоторые информация из таблицы. То есть запрос на выборку. И опять же, то, что таблица я, выбирая из? И то, что столбец я хочу, чтобы выбрать или какое значение я хочу, чтобы выбрать и , из которых ряд? Так Выбрать немного специфичны. Я говорю, хорошо, я хочу эту таблицу. А потом я хочу столбца имя пользователя и Я хочу его от скандала с ID 2. Это один из способов сделать Select. Или я могу сказать, дайте мне каждый одного имени пользователя. Или я могу сказать, дайте мне целую Строка из этой таблицы, где имя пользователя является 1. Таким образом, есть несколько различных способов сделать запросы на выборку, в зависимости от того, как много информации вы хотите, Вы всегда можете просто выбрать все от этой конкретной таблице, а затем цикл через него, выбирая то, что вы хотите. Но имейте в виду, если вы выбираете много вещей из таблицы, и вы есть действительно большой стол, который состоится некоторое время, поэтому лучше всего выбрать только вещи, которые вы собираетесь в конечном итоге, используя. Кроме того, с Выберите и со всеми из них другие команды SQL, а также, я давая вам версию скелетное. Но сказать, что я выбора пользователей, и я хочу распечатать их в алфавитном порядке, Я мог выбрать всех пользователей, а затем сортировать их в алфавитном порядке в моем коде. Или есть способ написать выберите запрос, который выбирает вещи в алфавитный моды, основаны от определенный столбец, возрастанию или убывания. Так что имейте в виду, что, много того, что вы хочу сделать, вероятно, может быть сделано в запрос через дополнительный атрибутов. Так что искать эти запросы в Интернете или другие вещи, которые можно сделать с этими Запросы по расширению их. Наконец, последнее, что вы хотите сделать не вставить что-то или удалить что-то, а, скорее, обновить что-то. И это будет сделано с обновлением запрос, и снова, что таблица. И какие изменения я хочу сделать? И, к которому строка или запись сделать Я хочу, чтобы это изменение? Любые вопросы по SQL? ОК. Поэтому у нас есть около 15 минут. И это последний слайд меня есть. И, надеюсь, это последний слайд является хорошо переходить в проблему установить, потому что понимание, куда мы хотим вставлять записи, удалять их, выберите их, и обновлять их поможет нам понять большую логику и потока из Архив задач 7. Так что я знаю ответы на все вопросы на эти вопросы. Я не собираюсь вам сказать, все ответы. Но если кто-то еще хотел бы представить вопрос в группу или ответить на один из этих вопросов, мы можем использовать его в качестве стартовой точки для говорить о множестве проблем. Или, если у кого-то есть более общий Вопрос от набора проблем, почувствовать свободным спросить, что хорошо. И мы можем начать там. Имейте в виду, что вы молчать вредит всем. Да. АУДИТОРИЯ: Так это единственный способ пройти переменные и из различных веб- страницы, или наиболее удобным способ, с помощью POST или GET? Джейсон Хиршхорн: Так что, да, то есть Самый удобный способ сказать - когда кто-то заполняет форму - получить информацию на другую веб- страницы, используя GET или POST. Из-за рамках мы используем В этой задаче набора, вы заметите, что, много раз, мы оказывать другую страницу. мы Или мы оказываем другой файл, не обязательно другая страница. Так мы переходим в переменной. И потом, это оказывает HTML страницы, используя информация из этой переменной. Это технически не проходя информацией между различные веб-страницы. То есть передачи информации между различными файлами. И поэтому мы можем использовать любой переменная это сделать. Но да, если бы мы хотели, чтобы пройти Информация с определенной страницы другая страница, GET и POST будет быть способ сделать это. Любые другие вопросы о проблема установить? ОК. Давайте пройдемся по, то, конкретный часть проблемы установить. Вы будете нуждаться, чтобы, в одной точке, показать чью-то портфель на экран. Что я имею в виду, когда я говорю портфель, в контексте этой проблемы установите? АУДИТОРИЯ: Это как акции, что они есть хау, многие принадлежащих им акций, цена, и сколько деньги, которые они оставили. Джейсон Хиршхорн: Это звучит здорово. Поэтому я хочу, чтобы отобразить все запасы они владеют для каждого акционерным обществом акции и, вероятно, сколько это стоит, а затем отдельной переменной, сколько денег они владеют. Так сказать, я хочу описать, что. Давайте начнем говорить о том, что мог должен для этого сделать, какие таблицы Я собирается нужно иметь, чтобы быть в состоянии сделать это. Да - АУДИТОРИЯ: пользователи Ну, а потом, я думаю, Вы можете сделать таблицу с именем Акции или что-то в этом роде, что будет, сколько они купили. Джейсон Хиршхорн: ОК. Так что я буду нуждаться таблицу с именем Пользователи, которые отслеживает имя пользователя, по-видимому, вероятно, некоторые ID, вероятно пароля индивида. Что такое что-то еще, что вы просто сказал, что это связано? Кто-то кроме Михаила, что такое что-то другое, что это связано с каждый пользователь, уникальными для них? АУДИТОРИЯ: ID. Джейсон Хиршхорн: ID - что еще одна вещь, что мы вероятно, хотите показать на этой странице? АУДИТОРИЯ: Их название. Джейсон Хиршхорн: Их название - то, что другое дело связано с этим Особая проблема установить? АУДИТОРИЯ: Что запасы они владеют - Джейсон Хиршхорн: Там собираются быть много, какие акции они владеют. Что один конкретное значение, хотя, что они будут иметь связанных с ними? Как они собираются купить и продают свои акции? АУДИТОРИЯ: Наличные деньги. Джейсон Хиршхорн: Они будет иметь наличные деньги. Таким образом, каждый пользователь будет иметь одно значение за наличные деньги. И что будет уникальным для каждого пользователя. Таким образом, в таблице пользователя, это делает смысл ставить наличными. Можно, конечно, создать другую Таблица, в которой идентификаторы пользователей и их стоимость наличными. Но это не имеет смысла. Имеет смысл просто поставить все это в одной таблице. Так что мы собираемся, чтобы иметь стол с этой информацией. И потом, что это другой таблице мы собираемся иметь? Вы сказали, таблицу запасов. Что мы положить в таблица акции? Любой, идеи - АУДИТОРИЯ: Компания. Джейсон Хиршхорн: Мы собираемся положить во имя компания, поэтому AAPL для Apple. Да. АУДИТОРИЯ: Сколько акций и сколько они стоят. Джейсон Хиршхорн: Сколько акций, сколько они стоят - что что-то еще мы нужно в этой таблице? АУДИТОРИЯ: идентификатор пользователя индексировать его. Джейсон Хиршхорн: ID пользователя. Таким образом, в этой таблице, мы будем вероятно, - скажем, если это кто-то, кто владеет три акции, три ряда, каждый из которых что идентификатор пользователя или пользователь такого лица ID, но другое имя компании, разное количество акций предположительно, и другое значение цена для каждого из этих запасов. Опять же, о чем я говорю сейчас не обязательно реализация, потому что вы понимаете, что есть еще немного эффективные способы ее реализации. Но это хорошее место для начала. ОК. Итак, это две таблицы у нас есть. Теперь мы хотим, чтобы отобразить эту страницу. Какой первый тип запроса мы должны были бы сделать. На каждой странице Предполагается, что является пользователь вошли в систему, мы должны их идентификатор пользователя. Так что это первый тип Запрос мы должны сделать? Да. АУДИТОРИЯ: Их идентификатор пользователя. Джейсон Хиршхорн: У нас есть свой идентификатор пользователя, когда мы начинаем кода на начало нашей странице. Так в чем же первый тип мы запрашиваем нужно сделать, учитывая ID пользователя? Мы пошли в течение четырех типов. Там только четыре возможных ответа. АУДИТОРИЯ: Это выбрать запись. Джейсон Хиршхорн: Выберите - мы хотим, чтобы выбрать из пользовательского Таблица получить, скажем, их сумма денежных средств. И мы можем напечатать сумму денежных средств в верхней части экрана. ОК. Какой следующий тип Запрос мы хотим сделать? У нас есть некоторые другие вещи нам нужно отобразить. Те, сохраняются в другой таблице. Так как мы собираемся, чтобы получить это? АУДИТОРИЯ: Вы выбираете для них. Джейсон Хиршхорн: Выберите - опять же, Есть четыре способа. Выберите, вероятно, звучит как правой. Так что мы должны сделать еще один запрос на выборку, еще раз, используя этот идентификатор пользователя. А теперь, мы хотим вернуть не только один ряд, бу все строки, которые соответствовать нашим Критерии, где идентификатор пользователя равен 1. А потом мы можем пойти и пусть петлю просто печатать все те, на экране, возможно распечатать компанию от каждый из тех, на экране. Здорово, что звучит, как это отображения портфель, не намного больше сложнее. ОК, пользователь затем решает, что они есть много денег в запасе. И они хотят купить некоторые более акций запаса. Скажем, они уже есть акции этой компании тоже. Так они попадают в вашу бай странице. Они ввода имени компании. Что такое запрос, после ввода имя, что вам нужно выполнить следующий? Да. АУДИТОРИЯ: обновление. Джейсон Хиршхорн: обновление - и то, что Таблица вы хотите обновить? АУДИТОРИЯ: Их столик, на основе на их идентификационный номер? Джейсон Хиршхорн: Так обновить не стол пользователя - так обновить таблицу акций, где Идентификатор пользователя не только соответствует, но фондовый имя также соответствует. Вы получите некоторое значение. А потом, вы хотите, чтобы считать, что значение и добавить Однако многие акции они хочу купить его. Таким образом, вы не хотите, чтобы слепо переписать это значение. Но вы можете, по сути, принять, что первоначальный ценим и просто обновить его. Вы можете сделать как плюс равно, а не только равных. Что такое что-то, хотя - если мы думал об этом, и мы хотим быть так надежен, как это возможно - мы должны делать прежде, чем мы запустить этот запроса на обновление? Они хотят, чтобы купить пять лет Apple. Каждая акция компании Apple составляет $ 200. АУДИТОРИЯ: Мы должны проверить деньги в первую очередь. Джейсон Хиршхорн: Мы должны проверить деньги в первую очередь. Мы должны убедиться, что они есть достаточно денег. Какие запроса мы можем выполнить, чтобы убедиться, что они имеют достаточно денег? АУДИТОРИЯ: Другой Выбрать. Джейсон Хиршхорн: Выберите - мы выбираем в зависимости от их ID пользователя, чтобы получить свою ценность денег. У некоторых быстрый математику. И если это проходит проверку, у них есть достаточно денег. Тогда мы можем запустить наш обновление. Или, может быть, если нет, мы проходим то. Мы даем им предупреждение. ОК. Говорят, что не есть компания. Они покупают новую компанию. Они покупают Microsoft. Какие запросов мы хотим сделать, если они хотят купить Microsoft? И они не имеют никакого Microsoft. Не Ману, кто-нибудь еще, никто кроме Маркуса? Карлос - АУДИТОРИЯ: Выберите, чтобы убедиться, что у них есть достаточно денег. Джейсон Хиршхорн: Звучит хорошо. АУДИТОРИЯ: А потом вы вставите на [неразборчиво]. Джейсон Хиршхорн: Точно, мы захочет вставить в таблицу запасам. И мы собираемся хотите вставить. Мы можем вставить их идентификатор пользователя, имя компании, и сколько акций они хотят купить. Какие другие операции, которые являются страницы или функциональность которыми вы придется реализовать в P-Set 7, что мы должны перейти? АУДИТОРИЯ: На самом деле, я как бы есть вопрос об этом. Перед тем, как показать портфолио, должны Вы проверяет веб-сайт для Yahoo, убедитесь, что цены на акции не изменились? Джейсон Хиршхорн: Это звуки как хорошая идея. Так что Маркус говорю, ОК, фондовый Цены постоянно меняются. В акции, которыми они владеют таблицу, наш таблица называется Акции, мы могли бы сэкономить цена акции они купили его на. Но это не кажется, что надежные, потому что цена акции является постоянно собирается менять. Таким образом, в самом деле, вы, вероятно, не нужно чтобы сохранить цену на складе. Но каждый раз, когда вы показать их портфель, вы обновите или обновить цена акции. И если у вас есть - и у вас есть уже. Я знаю, вы все смотрели в Проблема устанавливает назад уже. Вы поняли, что мы написали некоторый код для вас, которая позволит вам чтобы получить цену акции, имя компании. Так что да, что, вероятно, звучит немного более надежной. Но эта таблица не обязательно чтобы сохранить цену на складе. ОК. Какие другие функции вы необходимо реализовать на этой неделе, что мы можем говорить? Я хочу поговорить о них. Что бы вы хотели поговорить? Это, наверное, в этом спец. Я бы просто прокрутите вниз до нижней из спецификации и задать мне первое слово Вы видите, что не имеет смысла. Еще одна функциональность - давайте поговорим об одном. Мы начнем там. АУДИТОРИЯ: Запись истории. Джейсон Хиршхорн: Запись история, большой. Таким образом, вы будете иметь, чтобы отслеживать из истории сделок. Итак, вы хотите, чтобы отслеживать каждый раз они купить или продать акции. Я купил свой запас. Мы просто сказали, это, вероятно, имеет смысл включить Select, чтобы получить их сумма денежных средств и проверьте. Это, вероятно, умный затем включить вставить или обновление, в зависимости от или не владеть им эти акции. Если мы хотим, чтобы отслеживать История, как мы можем это сделать? Значит ли это, идут в таблице запасам? АУДИТОРИЯ: Нет. Джейсон Хиршхорн: Нет, это, вероятно, идет в другой таблице. Потому что сказать, вы покупаете 10 акции Apple. Тогда вы купить еще 10 акций. Вы хотите буксировать раздельный учет. Таковы два отдельных сделок. Поэтому у нас есть еще один стол, История таблице. Итак, еще раз, мы покупаем. Мы выполнить Select, затем Вставьте или обновление. Что мы будем делать дальше? Какой следующий запрос мы выполняем когда мы покупаем что-то? Мы хотим отслеживать историю. Да. АУДИТОРИЯ: Вы хотите, чтобы отслеживать неудачных сделок тоже. Джейсон Хиршхорн: Ну, прежде, чем мы сказать, какой тип сделки, что мы хотим, чтобы - Какой вид запроса, Карлос, был бы позволит нам отслеживать вещей в целом? У вас есть четыре догадки. Какой из них вы думаете? АУДИТОРИЯ: Обновление. Джейсон Хиршхорн: Не обновлять. Какой ваш второе предположение? АУДИТОРИЯ: Выбор. Джейсон Хиршхорн: Если вы хотите сохранить трек чего-то, вы, вероятно, хотите записать его где-то или сохранить его на потом. Так что, если не обновить, то - АУДИТОРИЯ: Вставьте ее. Джейсон Хиршхорн: Вставка, там мы идем. Да, так что вы выберите количество денежных них есть, звучит здорово. Они не имеют достаточно денег,. Эта транзакция не будет работать. Нет, вам не нужно следить за сделка, если она не работает. Или вы можете, если вы хотите дать им нелегко. Но вы не должны. Затем вы вставляете или обновление в их запасах таблице. А теперь, у вас есть свой другой стол. У вас есть свой История таблицу или все, что вы хотите назвать это. И в этой таблице, вы собираетесь чтобы вставить новую строку. Это, вероятно, будет есть ID пользователя. Это, вероятно, будет иметь название складе. Это, вероятно, будет иметь время, когда они сделали это. И в этом случае, вы будете, вероятно, хотите вставить цену. Потому что для истории, вы не все равно, что текущая цена. Вы все равно, что цена при они куплены или проданы что-то. Так это звучит как, для реализации покупки полностью включает в себя целый ряд различных Запросы SQL, Но, честно говоря, не что большая часть кода в целом. ОК. И, что заботится о истории. Скажем, мы хотим показать нашу историю. Мы говорили об отображении наш портфель. Как бы мы показываем нашу историю? АУДИТОРИЯ: Предположительно в хронологическом порядке. Джейсон Хиршхорн: Предположительно хронологически - что запрос вы думаете, мы бы использовать? АУДИТОРИЯ: выберите. Джейсон Хиршхорн: выберите - выбрать, может быть, все строки из этой таблицы что совпадает с идентификатором пользователя, а затем отображать их в хронологическом порядке, звучит хорошо. Нужно ли нам писать код для разобраться в этом списке? АУДИТОРИЯ: Нет, потому что вы сказали, нам есть по возрастанию и нисходящих вещь. Джейсон Хиршхорн: вещь? АУДИТОРИЯ: Да. Джейсон Хиршхорн: Да. ОК, не включайте в коде мне, что вручную сортирует ваши вопросы, сортировать их. Этот код уже дано. Вы можете написать запроса на выборку что сортирует вещи. Сортировать их заранее и затем распечатать их. Это делает так много больше смысла делать это тот путь, чем в другую сторону. Да. АУДИТОРИЯ: Нужно ли нам сортировать их заранее? Означает ли это, вам разобраться их в базе данных? Джейсон Хиршхорн: Выберите запрос возвращает их вам отсортированный. Так что, что, а не просто иметь их вернуться к вам в случайном порядке и затем отсортировать их самостоятельно. Да. АУДИТОРИЯ: Есть ли способ, чтобы держать его отсортированы в самой базе данных, так что у вас нет, чтобы разобраться каждый раз, когда вы - АУДИТОРИЯ: Можете ли вы вставить ее отсортированный? Джейсон Хиршхорн: Вопрос - не все ли равно, что вещи сортируются в базе данных? АУДИТОРИЯ: Нет. Джейсон Хиршхорн: Ну, они сортируются. Они располагаются в хронологическом порядке. Но давайте предположим, что вещи сортируются в хронологическом порядке, сверху вниз. У нас есть форма Google. Всякий раз, когда кто-то реагирует на нашу Google образуют, он просто получает положить в Дно этой таблицы. Имеет ли значение, что вещи сортируются не в хронологическом порядке? АУДИТОРИЯ: Если это не хронологический, Вы не должны сортировать его каждый раз вы берете информацию из. Но если это уже отсортированы, не так ли не нужно делать, что дополнительная вызов функции? Джейсон Хиршхорн: Так вот на самом деле хороший момент. Для нас, как программистов, это может имеет значения. И мы могли бы найти базу данных что не сортирует вещи в хронологическом порядке. Или настроить нашу базу данных, поэтому она хранит вещи Начиная с ID пользователя. Так что путь, скажем, у нас есть 1000 идентификаторы пользователей. Или Facebook, у нас есть миллионы идентификаторов пользователей. Мы не хотим, чтобы наш стол, чтобы быть просто случайная или в нашей базе данных, чтобы быть случайным. Было бы хорошо, если все идентификаторы пользователей были отсортированы. Так тогда мы могли бы запустить бинарные поиски на нашем столе, а затем просто найти конкретных кусок. Так что, да, в зависимости от - если мы расширены, мы могли бы найти базу данных , который держал вещи отсортированы по другой образом, так что эти запросы займет меньше времени. И мы не должны пройти через наш вся база данных в каждом ряду в Данная таблица. Но уровень мы работаем на, мы не нужно беспокоиться о поддержании вещи сортируются. Можно предположить, что время, которое требуется что запрос для запуска будет незначительна, учитывая то, что мы имеем дело с. Но да, отличная идея - как мы масштабов, возможно, имеет смысл разработать наш В базе в немного по-другому. Последним проектирования баз данных, что я хочу говоря также, потому что вы будете быть этапным, или забил скорее, на дизайн вашей базе данных. Мы говорили об этом. Наличные является уникальным для каждого пользователя. Итак, вы получили таблицу с именем наличные деньги, которые имеет свой идентификатор пользователя и их количество денежные средства и затем таблица с именем пользователи, которые имеет их пользователю ID и их имя пользователя. Эти таблицы карту на каждый другой один-к-одному. Это, вероятно, имеет смысл для чтобы они были в одной таблице. Итак, давайте предположим у вас есть пользователю Таблица, которая отслеживает имена пользователей и наличными. Теперь у вас есть таблица, которая имеет запасы индивидуальный владеет. И человек может владеть более одного складе. Так они не карту на друг с другом один к одному. Это не имеет смысла иметь один гигант Таблица, в которой 30 записей, что все повторить имя пользователя, что все повторить пароль, что все повторить ряд наличными. Но каждый из них имеет, может быть, другой акции Имя или иной курс акций. Это не имеет смысла иметь что многие крупные записей. Будь умным о том, когда вы создаете эти базы данных, так что вы не делаете что-то глупо, как, что, повторяя много ненужной информации. ОК. У нас есть две минуты осталось. Люди за пределами рады присоединиться нам или возможно, надо полагать, начать свой собственный класс. Кто-нибудь есть какие-либо вопросы прежде, чем мы закончим? Хорошо, это было действительно вихрь через все. Я прошу прощения, что это должно было быть так быстро и что мы не могли быть столь же практический На этой неделе, как я бы любил бы. Но если у вас есть какие-либо вопросы о все, что мы перешли или что-нибудь в эта проблема набор - Предполагая, что вы читали его и положить в добросовестных усилий - не стесняйтесь, пишите мне или связаться со мной. Я более чем счастлив работать через ваш код с Вами или ответить на любой вопросы у вас есть. Имейте в виду, что, на этой неделе, много Ваше время будет потрачено обучения новый синтаксис и пытаясь понять, как писать запросы SQL или PHP функции или сделка с рамки MVC. Много вашего времени на этой неделе, вероятно, не будет пытаться выяснить, ума логика, что мы прошу вас сделать. Многое из этого, мы просто пошли по это относительно проста. Так это не значит, ждать не до последней минуты. Но это значит, настроить, как вы делаете свою работать соответственно, чтобы убедиться, что Вы понимания и изучения синтаксиса. Значит, вы не, все внезапно, зная именно то, что вы хотите сделать, но, не имея представления, как точно написать ее. Хорошо, я буду видеть вас на следующей неделе.