Джейсон Хіршхорна: Ласкаво просимо все до тижня вісім. У нас є захоплюючі тиждень перед нами. Ви, хлопці, пірнув у цьому останні пару лекцій в 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, є не просто значення імені користувача. Там не просто грошова вартість, або поле, а. Існує також поле ідентифікатора. Я не збираюся вставити, що поле ідентифікатора. Це збирається бути приділена мені автоматично, коли нова запис вставляється. Таким чином, є деяке поле, що ви можна встановити, щоб бути автоматичним. Може бути, ви хочете, щоб дати кожному користувачеві $ 10 000 готівкою з місця в кар'єр. Так що я не потрібно вставити ряд готівкою тут. Все що мені потрібно вставити це ім'я користувача. А потім, поле гроші будуть попередньо заповнені, і поле 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. Багато вашого часу на цьому тижні, ймовірно, не намагатиметься з'ясувати, розуму логіка, що ми прошу вас зробити. Багато що з цього, ми просто пішли по це відносно проста. Так це не означає, чекати не до останньої хвилини. Але це означає, налаштувати, як ви робите свою працювати відповідно, щоб переконатися, що Ви розуміння і вивчення синтаксису. Значить, ви не, все раптово, знаючи саме те, що ви хочете зробити, але, не маючи уявлення, як точно написати її. Добре, я буду бачити вас на наступному тижні.