[Музика, яка грає] Аллісон Бухгольц-AU: Гаразд, все, ласкаво просимо в розділ. Сподіваюся, ви всіх нас був великий Хеллоуїн вихідні, або Halloweekend, як я люблю казати, все відпочив і видужав. І на щастя, це не сніг більше. Це насправді сонячний зовні. Я був реальним радий. Не готовий тягти мої зимові черевики. Сподіваюся, pset6 пішли дуже добре. Якщо ви втомилися від C, я щасливий щоб сказати, що ви зробили з C на даний момент. Ми повністю перейшли в веб-програмуванні, так що ви будете працювати в HTML, PHP, може бути, трохи JavaScript. Я не знаю, що на наступному тижні PSET є, таким чином, я не можу гарантувати, що ваш наступний PSET буде бути, але PSET на цьому тижні є CS50 Фінанси, який є в основному реалізації свого роду веб-сторінки що дозволяє купувати і продавати на складі, і стежити за ними. І це дуже здорово, тому що всі з нього генерується динамічно. Ви можете мати різні користувачі, у кожного є свій власний інформації, і ви збираєтеся бути реалізації всього цього. Це займе деякий час. Я безумовно думаю, що це простіше, ніж C psets, але це займе більше часу. Ти вивчення нової мови, РНР, який дуже схожий на C, але, звичайно, вимагатиме Вам подивитися синтаксис і зрозуміти як конвертувати між мовами. Але я не думаю, що є що-небудь супер концептуально важко про це PSET. Це просто навчання Нова мова і отримувати через всі ці маленькі шматочки. Якщо ви, хлопці, прочитав специфікація, це досить довго. Я думаю, це один, як 21 Сторінки, якщо я правильно пам'ятаю. Це довга спекуляція. Так що, якщо ви не читали it-- 22. 32. Вау. Так що я був від 50% там. Так, 32 сторінки. Так що це довго. Є багато частин, але жоден з частин повинна бути, що погано. Це просто багато. Так виразно почати рано якщо це можливо, як звичайно, але я думаю, що це має відчувати себе трохи приємніше, ніж особливо psets як відновити і змінити розмір, що тільки дуже важко обернути навколо голови. Так з цим, ми збираємося пірнати в. У мене немає вашої порядку денного ковзати сьогодні, але ми говоритиме про PHP. Я буду давати вам вид прискорений курс на деякі речі що ви, можливо, захочете дізнатися про PHP. Різні синтаксичні речі, речі, які треба подивитися. Ми збираємося говорити Трохи про SQL. Просто дуже прості речі там, а потім також MVC є Model View Controller, який як ваш PSET налаштований, так що розуміння, як це Роботи буде супер корисно. Добре. Так PHP. Ви, хлопці мали зробити щось дуже, дуже просто з PHP, який є це нижня річ тут, де ви представлені деякі форми на початку тут, що було якусь назву, що вам вхід, і він би сказав, як привіт, Бен, або привіт, Еллісон, і це було б спливав. Так що це насправді те, що його повинен був виглядав з вашого PSET, в разі, ви, хлопці хотіли знати або не зовсім в цьому розібратися. Але у нас є ці знаки питання ось що показує, що це PHP. Вони обернути його, а потім htmlspecialcharge, пам'ятайте, якраз, переконайтеся, що ви в безпеці з будь-якого божевільного атаки з впровадженням або якщо хтось намагається поставити божевільні шкідливі символів у вашому полі Ім'я, воно не подобається ваш сервер або ще багато чого. І потім, якщо ми помічаємо, це HTML Форма був метод $ _GET, які, якщо згадати наші суперглобальні від PHP, $ _GET, $ _POST, ми будемо йти в ті, в небагато. Але ми знаємо, що у нас є якесь назва тут, що відповідає назві що ми представили. Так що це просто якась, як дуже простий PHP HTML співпрацю що ви, хлопці, були від PSET шість. Але що насправді не відповісти, що PHP. Очевидно, що це мова, але у нас їсти не дуже говорили про це в даному розділі, так що трохи більше про те, що PHP насправді. Так PHP просто PHP гіпертекст препроцесор. Це насправді вважається мова програмування оскільки вона має логіку, тоді як, якщо ми пам'ятаємо говорити про HTML, ми назвали, що це мова розмітки порівняно з Мова програмування, бо HTML строго модифікації, як речі виглядають на сторінці. Це просто змінивши будь-то сміливий, або чи є це формою, елемент, або щось подібне. Він не має ніякої логіки. Він не має петель і умови. Ви не можете помилки перевірити речі. Ви б або відображати речі певним чином або попросити речі від користувача. Це так. Так з PHP, то насправді дозволяють нам зробити всі ці більш логічних речей, як перевірити вхід або маніпулювати його в деякому роді. Ми можемо об'єднати його з HTML, як ми щойно бачив в останній PSET і зараз, і це дозволяє нам створювати ці динамічні веб-сторінки. Так що, якщо ви, хлопці, ever-- Я не знаю, якщо Ви були схожі на мене, але в середній школі вони нам взяти цього класу, в якому ми створили тільки HTML веб-сторінки, і вони були статичними та натисніть навколо для інших речей, але вони ніколи не змінювалися. З динамічними, що ми можемо зробити це, як з CS50 фінансів, Ви будете мати різні користувачі. Залежно від цих користувачів " уподобання, і що вони купують або те, що вони продають для своїх запасів, Ви збираєтеся показувати різні речі. Так що, якщо є якась виявлення характерної для ваш користувач за допомогою цього Веб-сторінка, ми можемо динамічно вирішити, що для відображення на них. Це не те ж саме для кожен людина, яка, якщо ми просто повинні були HTML, сторінка буде те ж саме для кожна людина, яка відвідав. PHP дозволяє нам персоналізувати сторінки. І тоді ми можемо або покласти їх в і той же файл, який, як і у випадку перед тут, ми бачили, що у нас є HTML все тут а то у нас це трохи PHP. Ми можемо зробити так, або з CS50 фінансів, якщо ви, хлопці, дивилися на files-- і ми повинні встигнути до кроку через пару них разом в кінці section-- ми можна побачити, як ви можете насправді тримати їх окремо, яка насправді краще, що робити. Отже Інтенсивний курс. Все швидкі прості речі Ви, можливо, повинні знати, для PHP. Оголошення змінних. Це синій трохи дратує, але, сподіваюся, ви, хлопці, можете подивитися. Якщо ні, то я напишу його на класній дошці. В оголошення змінних. Одна річ, щоб знати, що, на відміну від C, PHP вільно або динамічно типізованих, Це означає, що вам не потрібно, щоб розповісти змінну його тип. Ви можете просто сказати, деяка змінна одно, що ви хочете його, і він буде вирішувати, тип що змінна під час виконання для вас. Як ви побачите, це може створити деякі дуже цікаві речі. Але в більшості випадків, ви не потрібно вказувати тип. Ви можете, і ви можете ввести кинути речі, як ви зазвичай не помітити, якщо ви хочете, щоб змусити його бути певний тип, але ви не повинні. Це не збирається кричати на тебе якщо ви просто оголосити змінну і не вказати тип для нього. Таким чином, у випадку, якщо ви не можете прочитати this-- я знаю, що це не найкращий. Я думав, що це буде відображатися better-- спосіб ініціалізації будь змінної є тільки зі знаком долара, що Ви хочете, щоб вона викликалася, і то що ви його призначення. Таким чином, в даному випадку, це який- $ змінна = 3. Так що, якщо ми коли-небудь використовувати $ вар десь, він буде просто бути таким же, як приміщення 3 існує. Добре? Так, будь-який змінної, просто знак долара, то, Ви хочете назвати змінну, і що ви хочете його рівні. Маленький кулер. Менше писати для ініціалізації змінна, чи не так? Чи має це сенс для всіх? Просто швидко різниця синтаксис між С і PHP. Масиви набагато прохолодніше в PHP. Ми можемо дати їм ключі. Так спосіб думати про це те, що, якщо ми коли-небудь хотів відкрити елемент в масиві, ми повинні були знати Індекс ній, чи не так? Отже, ми знаємо, що з С, може отримати доступ до першого елемента роблячи масиву кронштейн нульовою, або, якщо ми хочу перший елемент, масив кронштейн один. І якщо ми хочемо щось там, ми могли б просто Тобто не перебрати, якщо ми насправді знав індекс. Одна річ, яка дійсно круто з PHP масивів є те, що вони що ми називаємо асоціативним. Таким чином, ми можемо зіставити деякі ключ до якоїсь цінності, і ми насправді збираємося to-- я покажу вам, як ми можемо використовувати це в секунду. Але в принципі, якщо ви хочете щоб ініціалізувати масив подібне, у вас є $ масив. Таким чином, в одній і тій же дорозі, що це просто деяка змінна, що ми створюємо. Це можна було б назвати все, що ви хотіли. Це може бути $ прикладом. Просто ще одна змінна. Що робить його масив Кронштейн синтаксис, що ми маємо тут. Так само, як звичайною С. і ми є ключ до якоїсь цінності. Так key1 йде значення1, ключ2 два йде значення2. Ці пари розділяються Кома, як і звичайні масиви. Однак. Великий один. Ключі є необов'язковими. Ви не повинні використовувати їх. І якщо ви цього не зробите, то це просто нормально. Питання? Або, о. АУДИТОРІЯ: Ну, про право. Де пам'ять приходять? Чи може він бути такою ж, як [Нерозбірливо] і з стека? Хіба що також за допомогою PHP? Наприклад, коли ми пов'язуючи їх? Аллісон Бухгольц-AU: З PHP, ми не схильні турбуватися про те, де наш пам'ять приходить від. Ми не витрачаємо багато Час говорити про те, що, так що це насправді не що-небудь Ви повинні турбуватися. Так ключі є необов'язковими. Таким же чином, якщо ви не хочу зробити це зв'язаний, ви просто хочете нормальний масив, в якому Масив нульовою є першим елементом і масив один другий елемент, ви можете зробити це точно як ви б в C. Ви є деякі змінна, яка буде ваш масив, і він дорівнює ці дужки тут. Так. АУДИТОРІЯ: Чи є у та ж точка в позначенні. Як я можу зробити як масив ++, і, що вказує на другу. Аллісон Бухгольц-AU: Ви можете do-- Ну, ви можете мати деякі итератор, я, що ви можете зробити, я ++ і зробити Масив I таким же чином. Але от саме. Так, наприклад, в даному випадку, Масив 1 дорівнюватиме 20. Те ж роду позначень індексації. Це в основному тільки неявне річ тут, де він каже, нуль, нуль до 10, до 1 до 20, від 2 до 30. Це просто неявні ключі для нього. Які зміни з PHP є що тепер у вас є влада перепризначити ці ключі робити все, що ви хотіли б. Так одне тут. Тому у мене є тільки кілька прикладів ось що я написав для вас, хлопці бо я відчуваю, що приклади завжди допомогти більше, ніж просто абстрактно. Так, в цьому випадку тут ми є асоціативний масив що це моє ім'я, моє прізвище, і я я луною, який знаходиться всього для всіх цілей тут збираюся роздрукувати на вихід тут. І це говорить, ОК. Роздрукуйте значення, відповідає масиву на ключовий Еллісон. І я можу також послати вас, хлопці весь цей код після занять. Так, коли ми біжимо на це, те, що роблять Ви думаєте, що станеться? Що буде роздрукувати? АУДИТОРІЯ: Ваше прізвище. Аллісон Бухгольц-AU: моє прізвище. Він робить. Прямо тут. Роздруковувати. Так що, якби ми мали змінити це, і ми були додати когось ще, щоб наш list-- Так скажімо, у нас є Емма тут, і ми пов'язуємо свій останній name-- Давайте подивимося, якщо я записую це право. АУДИТОРІЯ: Так. Аллісон Бухгольц-AU: Так. АУДИТОРІЯ: Хороша робота. Аллісон Бухгольц-AU: Прекрасний. Так що тепер, якщо у нас є це тут і ми хотіли знайти своє прізвище, у вас є його там. Таким чином, ви можете просто думати про це як заміна цієї клавіші тут. Ти просто замінивши індекс. Так вона дозволяє просто шукати через масив набагато легше. Вам не потрібно знати індекс. Поки цього ключа, що ви шукаєте для існує десь в масиві, PHP знайде його, і він повернеться Значення, пов'язане з ним. Так що це дає вам набагато більше, Потужність з ваших масивів. Так. АУДИТОРІЯ: Якщо у вас є дві клавіші на ж, це дасть вам помилку? Аллісон Бухгольц-AU: Це має дати вам помилку, да. Чи робить це трохи більше сенсу для вас, хлопці? І таким же чином, ми маємо масив тут, що не має ніяких кнопок. Крім того, це синтаксис що ви, можливо, захочете щоб бути в курсі, тому що ви будете повинні використовувати це в вашому PSET. Всякий раз, коли ви робите відлуння, у вас є ці цитати, і всякий раз, коли ви маєте на увазі в частині масиву, Ви повинні мати це Фігурні дужки навколо них. Це свого роду дратує, але Ви просто повинні це робити. Так що просто щось, щоб тримати в голові. Якщо ви працюєте в помилках, Я знаю, що це існує в моєму масиві але це кидає помилки на мене, спробуйте покласти дужки навколо нього і він повинен працювати. Таким чином, в цьому випадку тут, це нормальний масив C, що ми звикли до. Має три, п'ять, і шість, і ми просто хочете роздрукувати перший елемент, так що це має надрукувати три. І я запустити все це, так сподіваюся, нічого не змінилося. Ми бачимо внизу тут, він просто друкує три. Прохолодний. Це має сенс для всіх? Асоціативні масиви. Набагато холодніше, ніж звичайні масиви. Це why-- Чи Девід показати вам реалізація PHP з pset6 на лекції взагалі? Добре. Так, я покажу вам. Я не знаю, це від T-- АУДИТОРІЯ: Він зробив минулого тижня. Аллісон Бухгольц-AU: Був на тому тижні? АУДИТОРІЯ: Так. Аллісон Бухгольц-AU: Так. Так орфографії може бути зроблено в шести ліній, таких як з PHP, і частина влади, що це асоціативний масив, Ви можете просто завантажити кожне слово в, і у вас є це дорівнює істинними або помилковими. І тому можна сказати, о. Повернутися словник якоюсь слово, і якщо вона є, то він поверне вірно. В іншому випадку, він не знайде це і повернемося хибним. Так начебто прохолодному дрібниця. Добре. Так що ті асоціативні масиви. Вони досить прохолодно. Мені дуже подобається їх. І, очевидно, this-- Ач. Добре. Тепер він працює. Може бути. Добре. Інша справа. Так, з рівністю, просто Відмінна річ, щоб тримати в голові. З PHP, бо це динамічно типізований, Тип може змінюватися в залежності від того, коли ви запустите його, як ви працюєте його. Я насправді є якийсь класний Приклади, які я покажу вам, хлопці. Але == перевіряє тільки рівність після типу жонглювання. Так що якщо у вас є щось, що це як символ 1 та № 1, PHP скаже вам, що тих, рівні, тому що це може жонглювати типи два з них, поки це не рівні, які, можливо, для вашого випадку нормально. Якщо вам потрібно, щоб побачити, якщо вони є такої ж вартості і того ж типу, Ви хочете, щоб ця ===. І я не думаю, що у вас є випадок, коли вам потрібно використовувати, що в PSET, але для багатьох Ви, хто піде на зробити веб-сторінок для ваших кінцевих проектів і речей, це хороша річ, щоб знати, що == і === різні, і це добре Розходження зрозуміти. Добре. Отже Foreach петлі. Вони є одним із способів перебору масиву. Так, точно так само як масиви стали так набагато прохолодніше в PHP, Ваш шлях до ітерації через масив, я думаю, Також стає набагато прохолодніше і набагато більш потужним. Таким чином, замість того, щоб створювати деякі для г дорівнює 0 і все, а потім обновити, що Я, як ви йдете через, у нас є цей дивовижний цикл по кожному елементу. Так ось стандартний цілому Структура цих двох. Таким чином, ви повинні або Foreach деякий масив як значення ви хочете перебрати як. Таким чином, це ім'я масиву Змінна, що ви хочете посилатися, і це те, що ви хочете називати його в петлі. Добре? Таким чином, це відповідає кожен елемент масиву, і ви використовувати це значення в цьому циклі. У мене є приклад. Я знаю приклади, так набагато краще. І таким чином, це, якщо є жодна клавіша, так що це не є, як якщо ми просто мати один, де ключі нормальні показники для вашого масиву. Чи це теж в разі, якщо у вас немає використання для ключів. Якщо ви не дбаєте про ключі і ви просто хочете перебрати зі значеннями для кожного з тих, хто в будь-якому порядку, добре. Ви можете використовувати структуру. В іншому випадку, якщо є ключі, наша $ Значення тільки міняється на $ ключовим значенням. Так що просто міняється на ключової пари значень. І тоді ми можемо послатися на $ ключ і $ значення в нашому петлі. Добре? Отже Приклад. Зробити його більш хорошим. Добре. Тому у нас є цей один тут, які у нас є деякі are-- Ви також можете створити масив, як це маючи деякі величини, рівної в масиві з дужках, або ви можете просто зробити кронштейн. Ви повинні зробити кронштейн, але це ще один спосіб зробити це. Так от у нас є масив з трьох Елементи одного, двох, і трьох, і у нас є Еогеасп. Зверніть увагу, це одна відповідає Масив, що ми перебору, і це те, що ми називаємо кожна річ в нашому масиві. І все це робить, це збираюся роздрукувати кожне значення. Так що, якщо ми запустимо його, ми помічаємо, що ми Тобто значення один, значення два, значення три. І таким же чином, що типово Масиви повинні бути одного типу, масиви не повинні все бути того ж типу тут. Так що тепер у нас є деякі Int. У нас є два рядки. Так що ваші масиви можуть отримати набагато більш потужний і, можливо, трохи трохи брудніше, залежно на те, як ви хочете, щоб поглянути на нього. Таким чином, ми можемо змінити це щоб все, що хочемо. Ми використовуємо значення. От тільки стандартна річ, яку ми використовуємо. Але, просто важливо знати, що ми можемо називаємо це як лічильник, якщо ми хотіли. І поки вони збігаються, Очевидно, всі щасливі. Якщо ви коли-небудь хотіли, щоб запустити PHP запустити щось на зразок цієї команди лінія ви знаєте це тут, ви просто робите PHP, а потім все, що файл, який ви хочете запустити. Так що, якщо ви хочете, щоб возитися з PHP, і більш логіці і ви дійсно не потрібно см, як у веб-браузері, Ви можете просто запустити його в командного рядка, як, що і луна друкуватиме з все що завгодно. Добре. Інший спосіб, який у нас є, як це. Так що це той випадок, коли, може бути, ви хочете використовувати ключ і значення, Я знаю, що вони, як супер надумані приклади але я сподіваюся, що вони роблять це трохи ясніше. Так от у нас є масив знову, але цього разу, а не просто мають Ви знаєте, немає ключа. У нас є ключі для кожного з них. Так збирається бути один, б відповідатиме до двох, і C будуть відповідати трьом. І в цьому випадку, якщо ми пишемо це так, у нас є доступ до обох ключ і значення для кожного з них. Тому, коли ми біжимо на це, ми отримуємо кожний з них. Так він друкує наші ключі та відповідних значень. Ще одна річ, це те, що, і я знаю, сказав, як цей не є ключі, але це завжди неявно має Ключ, бо якщо ви не делегувати Ключ, звісно, ​​ваш ключі тільки ваші індекси або індекси, щоб ми могли завжди також зробити це. Як це. Я роздрукує. Таким чином, в цьому випадку, якщо ви помітили, у нас є неявні ключі нуля, один і два тут. І так само, як з цим, Ви завжди можете просто сказати г як значення, і ви просто мати доступ до значення. Ви не дбаєте про свій ключі, навіть якщо ваш є клавіші, якщо ви не дбаєте про їм, ви не обов'язково потрібно помістити їх в цикл по кожному елементу. Чи означає це, має сенс для всіх? АУДИТОРІЯ: Чи можете ви просто називають ключі, теж? Аллісон Бухгольц-AU: Так вам може повністю зробити це, теж. Насправді, чекати. Утримувати. б it-- No. Якщо ви хочете ключ, то Ви повинні зробити ключ до значення. АУДИТОРІЯ: Додати значення. Аллісон Бухгольц-AU: Так. І ви просто ніколи не використовувати значення все. АУДИТОРІЯ: ОК. Аллісон Бухгольц-AU: Якщо вас просто покласти одну річ там, це буде припустити, що ви говорити про вартість, а не ключем. Велике питання. Добре. Прохолодний. Насправді, тримайся. Дозвольте мені подивитися, що у мене є. Тому, перш ніж потрапити на посаді і отримати, я просто хочу показати вам, хлопці, трохи про те, як це динамічно набрали, який круто. У мене є всі ці. У мене, як чотири приклади тут, і я пошлю вам весь цей код після занять. Так от у нас є змінна а. От тільки 1 плюс 1, чи не так? І ми збираємося надрукувати те, що це одно, а то у нас деякий тип. І кого-небудь є здогадки про те, якою вона буде? АУДИТОРІЯ: INT. Аллісон Бухгольц-AU: Так, це внутр. Так це тільки додає їх разом. Це внутр. Все добре. Так що це наступний, у нас є що виглядати рядків. Коли ми запускаємо цей, на його думку, о. Ти насправді намагається щоб просто додати речі. Ви просто заплутався. Так що я просто хочу, щоб виправити це за вас. Ви мали на увазі Int. Я знаю, що ти мав на увазі Int. Так що це один із способів, ви можете см, PHP має свій власний розум. Навіть при тому, що ми явно сказав, дивитись, це ті, є рядками. Я маю на увазі рядок один. Але він каже, о, але Ви намагаєтеся додати їх, так що ви повинні означати, що це ціле число. Просто повірте мені на це. Так він каже, що це ціле число, і це додає їм начебто нормально. Так круто, якщо ви збираєтеся щоб отримати ледачий зі своїми речами, або ви хочете щось додати. Велика справа в тому, що, якщо ви згадайте pset2, щось, що було Користувач вводиться, право, що ми думаємо, це символ або рядок спочатку. Тепер ми не повинні явно кажуть, ой, роблять цей інтервал. PHP буде просто як, о так. Я знаю, що ти мав на увазі на Int. Дурний ти. Ви не мав на увазі рядок. Таким чином, в цьому випадку, в даний час що ми маємо в цьому, що ви, хлопці, думаєте, що це збирається робити тут? У нас є рядок і Int зараз. АУДИТОРІЯ: Це ще внутр. Аллісон Бухгольц-AU: Це ще внутр. І причина is-- я б поставив більше прикладів, але цей весело. Причина, що він робить це тому, що це, як ви намагаєтеся додати речі. Так що, якщо ви намагаєтеся додати речі, я буду вважати, розумно, у вас є щось природно, що ви могли б додати. Я просто хочу, щоб зробити його Int, і ми тільки збираємося, щоб додати його, як звичайно. А потім так само, я думаю, ви, хлопці зрозуміли ідею. У нас також є цей тут, який є просто обвуглюється, і він робить те ж саме. Це як, дурний користувач. Ви знаєте, що ви хочете Int. АУДИТОРІЯ: Якщо ми ставимо лист, буде це зробити [нерозбірливо], значення чи ні? Аллісон Бухгольц-AU: О, що це хороше запитання. Подивимося. Ні, все-таки це внутр. Так що це трохи божевільним. Це просто якась, щоб показати вам PHP може іноді поводитися в irrational-- Чи не повністю ірраціональні, але це могло б вести себе таким чином, що ви дійсно не чекали. Так що, коли ви сумніваєтеся, перевірте типи речей. Ця функція GetType може бути супер корисно. Як правило, якщо ви робите що-небудь з плюси або будь-які математичні оператори, він збирається брати на себе що-небудь розумним є тільки внутр. Так, у вас є символ 1, або Рядок 1, або фактичний інтервал 1, це буде припустити, що. Якщо ви хочете, щоб приведення що-небудь, ви повністю можете. Ви могли б зробити щось подібне подвоїти тут, я вважаю. І в цьому випадку, це буде говорити, о. Я буду робити це двічі, бо Ви явно сказав, що це подвійна. Ви можете завжди явно зробити PHP щось зробити, але. АУДИТОРІЯ: Почекайте, чому плюс 1 є? Аллісон Бухгольц-AU: О. Там. Це було просто відлуння. Це була моя помилка. Таким чином, ви можете явно вказати його зробити щось певного типу, але більшу частину часу, це буде динамічно вирішити, що під час виконання. Так це продовжуватиме йти через і це буде схоже, в порядку. Те, що робить найбільш сенс, щоб це було? Чи повинен він бути насправді рядок? Чи повинна вона бути в Int? Чи повинна вона бути поплавок? Чи повинна вона бути подвійний? І це буде вирішувати, що для вас. Ви можете змусити його зробити то, що ви хочете, но-- АУДИТОРІЯ: Чи робить це його повільніше? Аллісон Бухгольц-AU: Ну, Я маю на увазі, C є дуже ефективним. Я думаю, що це, безумовно, повільніше, тому що вона має в процес, як це відбувається. С, я майже впевнений, що це швидше. Але, очевидно, є багато цікавих речей в здесь що ми не повинні турбуватися. Так що, якщо ми шукаємо через масив, ми не треба насправді створити деякі пошук по масиву. Ми можемо тільки попросити ключ і PHP буде піклуватися про нього. Прохолодний. Дивовижний. Схоже, в кінці моїх прикладах. Ви, хлопці, ніколи не збираються забувати, що зараз. Ви збираєтеся бути як, ой, PHP є просто як то мама, яка походить ні, ні, ні. Я знаю, що ви маєте на увазі. Я знаю, що ви хочете. Добре. Так що це, як ми сподіваємося, корисною для вашого PSET, принаймні, на самому початку, тому що ви все про роботу з формами і речей від користувача. Таким чином, є два способи, якими ми обійти інформації з PHP і HTML коли ми передаємо між цими двома речами. Тому у нас є $ _GET, який пройшов через URL, і у нас є $ _POST, який передається в повідомленні Тіло, і тому ми вважаємо, що приховано. Але одна справа розуміти, що жоден з них вважаються безпечними. Якщо у вас є хтось, хто є перехоплення повідомлень, що йдуть туди і назад між вами і Сервер, вони все одно можуть отримати ці дані. Вони просто повинні подивитися трохи складніше. Це насправді не that-- це просто приховані від URL. Це все ще в тілі повідомлення, хоча, так що якщо у них є доступ до, що, це дійсно тільки like-- Це як різниця між чимось записуються на зовнішній стороні істота конверт і щось написано на папірці всередині. Це не так складно, щоб відкрити конверт і отримати папірець всередині. Звичайно, це було б набагато простіше щойно прочитав за межами. Але це, як ви можете вид думати про них. Жоден з них дійсно вважається безпечним. Добре? Звичайно, насправді не значення для вашого PSET тому що ви не маєте справу з комерційної таємниці, але це, як правило, один річ, яку ми дійсно хочу підкреслити, бо людей думаю, о, добре, що це прихована. Вона повинна бути супер безпечний. Ні. Це не безпечно. Це просто трохи менш небезпечно, я думаю. Або небезпечним. Таким чином, ми насправді маємо приклад. Як ви знаєте, я люблю навчити більше з прикладами. Я відчуваю, що це допомагає краще. Так, у нас є деякі просту форму тут який насправді, якщо ви, хлопці, коли-небудь плутати про PHP, це дійсно мало, але php.net насправді дійсно хороша документація. Мені дуже подобається його. Я використовував його, щоб підготуватися до цього розділ, так що я можу ветеринар це для вас. Це приклад з них про те, як $ _POST і $ _GET роботи. Єдина різниця між двома з них, крім де інформація відображається, чи є це в URL або в організмі, також те, що цей метод. Так що у вашому виді на HTML-- This дуже простий HTML форма. Може хто-небудь сказати мені, що він робить? АУДИТОРІЯ: Запитайте вашого імені і віку. Аллісон Бухгольц-AU: Абсолютно вірно. Тому у нас є якась форма дії. Це дає нам знати, що це якийсь акт форми. А що станеться це, коли ми потрапили Відправити, він збирається назвати action.php, що і це, і він збирається назвати його з методом $ _POST. Таким чином, в цьому випадку, ваш Інформація прихована. і це тільки ваше ім'я, деякі вхід типу називають ім'я, деякі вік, тип вхідного = "текст", який ми також називаємо вік. І потім, якщо ми потрапили Відправити, Відправити подзвонить action.php. Тому, коли ми насправді удар Відправити нам відомо, що вона розміщена, по суті, і ми насправді бачимо це в ваш Проблема установки, що, сподіваюся, ми будемо отримати йти через небагато. І все, що він робить тут POST деякі суперглобального змінна що ми говорили про хід лекції. І, як ви можете думати про $ _POST є що це просто асоціативний масив. Добре? Так що це якийсь ключ, це деякі з ключових, і все, що користувальницький введення стає Значення для кожного з них. Добре? Так що, якби ми мали написати, що цей масив насправді виглядав відразу після ми представив форму, ми б Тобто, це наш $ _POST, і деякий масив, де у нас є якусь назву. Давайте просто скажемо, що ми будемо робити своє ім'я, а то у нас деякий вік, 21. Ву. Так що це все $ _POST є. $ _POST це просто асоціативний масив, ОК? Це просто говорить, ОК. Які речі ми попросив від користувача? Які змінні що ми передаємо навколо що ми попросили в такому вигляді? І тоді те, що є значення, пов'язані з цим? Таким чином, в цьому випадку, якщо я представив його з ім'ям Еллі і віці 21 року, це те, що $ _POST виглядає. Добре? І це те, що це PHP-файл має доступ к. Добре? Таким чином, в даному випадку, це так само, як отримувати будь-яку іншу річ з нашого масиву. Замість того, щоб індекс в нашому Масив, у нас є деякі клавіші. Таким чином, це даватиме мені значення в імені ключа. Так що це буде союзник, і це прямо тут збирається дати мені значення в $ _POST, де Ключ вік, який буде 21. Ви збираєтеся бути робити це зовсім небагато. Так, з якої частини? АУДИТОРІЯ: Коли ви були вказуючи на нижній частині. Аллісон Бухгольц-AU: Це нижня частина? Добре. Так, ви розумієте, це наш HTML сформувати, і у нас є деякі метод $ _POST, яка має значення. Це також може бути $ _GET, але для цієї мети, ми тільки збираємося сказати, що це $ _POST. Коли ми представити цю форму, це частиною PHP-файл, який називається. Так цей файл PHP тепер збирається виконати враховуючи інформацію від нашого HTML форма. Так, що він робить це, коли ми хіт Відправити в нашу форму HTML, це проходження вам цю суперглобального, який є тільки асоціативний масив. Саме це. Це так само, як, до речі, що у файл. І те, що він каже, є, в порядку, ось $ _POST. Це ваш асоціативний масив. Роби з ним, що завгодно. І ми говорили: ОК. Дайте мені значення на ім'я, і дати мені значення у віці. Так це тільки ключі, і це наш масив. Чи означає це, має сенс? АУДИТОРІЯ: Mhmm. Аллісон Бухгольц-AU: Awesome. АУДИТОРІЯ: Якщо у вас є, щоб повторно Форма це просто написати над даними? Аллісон Бухгольц-AU: Так. Mhmm? Зал: А чому у вас є щоб вказати, що це інтервал? Аллісон Бухгольц-АС: В цьому випадку, користувач просто змушуючи його бути внутр. АУДИТОРІЯ: ОК. Аллісон Бухгольц-AU: Я не знаю, якщо ви насправді потрібно було б що, але в своїх цілях, вони вирішили що вони хотіли, щоб він внутр. Вони просто типажів його. Може бути, вони використовують його в якості щось ще пізніше. Це лише один фрагмент. Да? АУДИТОРІЯ: Що робити, якщо вони набрали 12, Т-W-E-L-V-Е, за віком? Аллісон Бухгольц-AU: Якщо вони намагалися ввести, що в якості міжнар? АУДИТОРІЯ: Так. Аллісон Бухгольц-AU: я забути, що це робить. Я думаю, що це, можливо, спробувати перетворити перший символ на междунар, або взяти значення і перетворити це, але я забуваю, що саме його. Будьте кумедна річ, щоб написати Програма і спробувати. У пару рядків. ОК, так що це одна з головних речі, які ви збираєтеся робити. Я збираюся, сподіваюся ходити через пару файлів від PSET з вами, хлопці. Схоже, що ми збираємося є час, так що ми можемо це зробити. Але ви збираєтеся бути робити багато речей як це, де ви проходите речі з HTML форми в цьому PHP формі, що буде потім виконати певний набір інструкцій на даних, які були надані. Ось буквально суть вашого PSET. Так. АУДИТОРІЯ: тип = "Відправити", що робить кнопки на HTML формі. Є спосіб виклику що кнопка-то? Так ви б, як ім'я = "Відправити"? Або, що кнопка просто буде спорожнити прямо зараз, тому що ви тільки дав йому тип, а не ім'я. Аллісон Бухгольц-AU: Я думаю, що це просто буде порожнім прямо зараз. Ми можемо виразно виглядають в PSET, тому що ми, безумовно, дивитися на зареєструйтесь роду речі. Але так, ви можете визначено вказати Текст, який ви хочете на кнопці. Отже, SQL. Коли ви покупки та продажу акцій, Ви повинні стежити за тим ,. Так як ми збираємося зробити це з SQL, який знаходиться всього в базі даних. Думайте про це як за столом, де Ви тримаєте всю цю інформацію про ваші різних користувачів. І ви, хлопці, насправді збирається створити один з них. Це дуже здорово. І є тільки чотири основних речі що вам потрібно знати для цього PSET, і вони оновлення, так що ви в основному оновити дані. Це припускає, що це вже є. Якщо його там немає, він збирається вдарити тебе з помилкою, так що, можливо, ви захочете перевірити. І ви будете оновлювати on-- я повинні actually- у мене є час, Я напишу пару з них. Я насправді дати вам хлопцям Пару зразка, повні команди SQL, бо це тільки основний ті, але ви можете з'єднати їх разом. Так що я буду робити, що і я пошлю що до вас з цими нотами. Так що, якщо ви хочете оновити щось, необхідно сказати йому, що ви оновлюєте і де ви його поновлення. Так Типова команда SQL буде оновлення ID десь дорівнює то. Або як адреса оновлення де ID дорівнює 3, і це буде оновлювати поле адреси Вашого користувача, який має ідентифікатор із трьох. Добре? Так що, якщо ви йдете в SQL і W3Schools, у них є дивовижні приклади. Насправді, я міг би потягнути деякі в небагато. А потім вставити в, ти просто вставляючи певні цінності там. Так що, якщо ви намагаєтеся створити якийсь новий запис, так ви створюєте нового користувача, ви могли б зробити вставку в незалежно від вашого база даних називається, і вам доведеться всі ці цінності. Тоді у вас є вибір, вибрати значення для перегляду. Так що, якщо ви намагаєтеся перевірити, см, якщо користувач існує, або ви намагається захопити конкретних Інформація про користувача Ви збираєтеся використовувати виберіть. А потім видалити, я думаю, досить просто є. Ти просто видалення щось з-за столу. І справді, я насправді тягнути до прикладами для вас, хлопці. О, дивіться, це моя сторінка 61. Так що, якщо ми йдемо в W3Schools, сподіваюся, що це знову. Так, подобається. Ми йдемо в SQL. Так, це щось тут. Таким чином, це дуже простий SELECT. Людина, я люблю цю функцію. Таким чином, ви можете мати ВИБІР деякі поля від клієнтів. В цьому випадку, відноситься до клієнтів онлайнова база даних, що ви використовуєте, тому все, що ваша таблиця називається, і зірка просто означає вибрати все. Дайте мені кожен. Так що, я просто хочу дати вам хлопцям Кілька прикладів, де це. Тому у нас є SELECT, UPDATE. Так ось ніби загального синтаксису. Так UPDATE, всі ваші ім'я таблиці, а потім SET де ви насправді відбувається бути тим, що дані ви змінюєте. Так що це може be-- Нехай мені навести приклад тут. Так це буде be-- Добре. Так що я створив невелику базу даних для нас. Ми збираємося, щоб мати деяку ID, деякі рік, а деякі назвали. Так ID одна буде '15 році, і ми тільки збираємося зробити це мені. Хто хоче стати другим людина в нашій таблиці? Любою. Я просто хочу, щоб вибрати Емма бо швидко ваш звуть. Емма, в якому році ви? АУДИТОРІЯ: В якому році? Аллісон Бухгольц-AU: Так. АУДИТОРІЯ: '16. Аллісон Бухгольц-AU: '16. Ти просто буде моя морська свинка на сьогоднішній день. Отже, у нас є ці дві людини. Насправді, дозвольте мені зробити це. Скажімо, я чув, як вона не так, і я насправді сказав, що вона на рік молодша. Вона '17. Що ми хочемо зробити тут, якщо ми хотів оновити Емми рік щоб бути правильним використанням, що, те, що ми зробити це, ми б сказав Оновлення даних тут. І все це може бути на одній лінії, але так як я стиснуті для простору тут, Я збираюся писати тут. І ми хочемо, щоб встановити. Так що це таблиця ми оновлюємо. SET буде те, що стовпець або які дані ми насправді змінюється. Те, що ми міняємо це рік, так ми збираємося сказати SET рік = 16, а потім, ДЕ каже нам, який користувач або що ряд ми насправді поновлення цього. То де? У нас є два варіанти тут. Які два? Вони унікальні, чи не так? Таким чином, наші імена унікальні і наша ID є унікальним, так що це два варіанти для яких ми могли б це зробити? Я дам вам один. Ми могли б зробити WHERE ID = 2, або ми могли б робити те, що якщо ми збираємося від цієї парадигми тут. АУДИТОРІЯ: [нерозбірливо]. Аллісон Бухгольц-AU: Абсолютно вірно. Таким чином, ми могли б зробити ім'я = Емму. І будь-який з них буде працювати. І ми побігли на це, він був би як, в порядку. Ми змінимо його. Ви насправді 16, так Тепер ви маєте рацію знову. ОК, так що це буде супер корисно в PSET де можливо хтось вирішив, купити 100 акцій з Apple, а потім вони були, як, я просто жартую. Я хочу тільки 90 акцій. І так вони продають 10 з них, так що ви потрібно оновити кількість запасів що вони мають. Так, оновлення запасів, оновлення таблиці. Добре. Так ось один із прикладів є. Ось синтаксис оновлення. ВИДАЛЕННЯ. О. Вставте в наш другий. Так, цей тут дуже схожа. Ми могли б просто сказати, в цьому Справа давайте додамо когось. Ми можемо додати Бена на цей раз. Ми вставити в, і ми хочу ім'я нашого столу. В даному випадку це дані. А потім ми просто хочемо, що ви збираєтеся кажуть ЦІННОСТІ, і що ви збираєтеся робити буде, ви насправді потрібно, щоб переконатися, що у вас є щось для кожного рядка що ви хочете. Ви просто покласти їх в порядку. Таким чином, в даному випадку, ми б сказали 3. Ти 18, правий Бен? АУДИТОРІЯ: 19. Аллісон Бухгольц-AU: 19? АУДИТОРІЯ: 19. Аллісон Бухгольц-AU: '19 вашого році? Ви випускник в '18, чи не так? АУДИТОРІЯ: О. Аллісон Бухгольц-AU: Випускний рік. АУДИТОРІЯ: ОК. Аллісон Бухгольц-AU: Я походив, ви вже планує на цілий рік, тут? Так, '18, у нас є Бен. Таким чином, в даному випадку, це було б пройти, було б створити новий запис тут. Прохолодний. Не надто погано, чи не так? Багато що з цього буде бути синтаксис для вас, хлопці. Поняття повинні прийти, будемо сподіватися, відносно легко. Синтаксис це єдине, що може бути трохи складніше. І тоді наша остання є ВИДАЛЕННЯ, і, як ви помітили, Я дуже рекомендую цей сайт. Здорово. Там в тонну матеріалу. Так, в той же самий шлях, що ми повинні були деякі UPDATE, DELETE дуже схожий. Замість цього ми Видалити з даних. Таким чином, в цьому випадку, наш останній один я напишу тут. Скажімо, ми хотіли, щоб видалити мене. Я не можу писати сьогодні. Видалити з все Таблиця ми в дані. І насправді існує три способи ми могли б вибрати для видалення мене. Може ви, хлопці, скажіть мені, що три способи є, як ви могли б видалити мене? ID дорівнює 1, де ID дорівнює 1. Ми могли б зробити, де рік дорівнює 15, або де ім'я дорівнює Еллісон. Звичайно, є тільки три різні способи, бо це все унікальні. Зазвичай в таблиці, і особливо в вашому PSET, Ви збираєтеся встановити один з ці колонки повинні бути унікальними. Це, ймовірно, буде якийсь унікальний ідентифікатор число, тому що якщо ви have-- фактично, але на ділі може дозволити вам мати два. Я не можу пригадати, якщо він дам у вас є два однакових речі. АУДИТОРІЯ: Тоді це буде змінити свою поведінку. Аллісон Бухгольц-AU: Це був би. Це викликатиме поведінку, яка є несподіваним, що ви не можете насправді передбачити. Таким чином, ви, безумовно, є один стовпець у вашій базі даних, що буде унікальним, і це, як правило, ви можете встановити це так, що це як унікальний ідентифікатор, і це буде просто оновити кожен При установці в таблицю. Щоразу, коли ви створюєте новий ряд, він буде автоматично збільшити і дати йому деякий унікальний ідентифікатор. Так натякають на вашому PSET. Добре. Так що це SQL. Так що тепер ми збираємося говорити про Сама остання річ, яка пов'язує в насправді дуже добре з вашим PSET, якщо вона буде йти вперед. Так MVC, вид моделі контролера. Це просто спосіб щоб тримати речі організовано. Таким же чином з C просимо вас, хлопці створювати функції та окремі речі поза, це просто спосіб виділити Код, коли ви робите веб-розробки. Так що робить речі набагато більш елегантним і спрощена, і це насправді так що ваш PSET насправді налаштувати, чи так вам це подобається чи ні, ви будете вивчати його, навіть якщо ви не думаєте, Ви вчитеся його. І одне, воно також дозволяє зробити набагато більше, як співпраця користувача. Тому, коли я взяв CS50, я зробив сайт для мого остаточного проекту, і я був би, я буду обробляти матеріал бази даних. Я зроблю задній кінець речі, і мій сусід по кімнаті, який я брав із нього був дуже претензійний. Вона робить сценографію, і вона хотів, щоб все це досить. Так що я, як, в порядку. Ви можете піклуватися про все передня частина речі. І справа в тому, як ми побачимо дуже скоро, що вид моделі контролера дозволяє вам повністю відокремити цей код так що я міг би працювати на реалізації наших сторінок, і маніпулювання інформацією в наших базах даних, і вона могла б просто зробити речі досить, і ми обидва були дійсно щасливі, тому що ми повинні зробити те, що ми обоє хотіли, і ми не повинні мати справу з іншою. Так ми бовталися разом. Ми хотіли, щоб бовтатися. Я просто не хочу мати справу з все CSS і HTML речі. Я був, як, ви робите це досить. Я розберуся з базою даних. Тому у нас є це дійсно круто, здорово столик. Я люблю таблиці. А в принципі, модель можна думати про тільки ваша база даних. Я була моделлю людина для мого проекту. Це все про зберігання Інформація та організації цих даних. Так що це те, що ми хотіли, щоб передзвонити кінець. Так ви, хлопці, будете мати справу з база даних SQL і файли даних. Це ваша модель. Ваша думка, як Ви могли б думаю, частково має сенс, є те, що ваш користувач насправді бачить. Це користувальницький інтерфейс. Це що фронтальна компонент. Так от те, що мій сусід по кімнаті приступили до роботи на весь час. Вона була дуже щасливий. Так от всі HTML, і є дуже небагато PHP. Якщо ви тільки що говорили про що відображається для користувача, ми говоримо про гіпертексту. Ми говоримо про те, як він виглядає. Ми не говоримо про логіку, або умови, або ще багато чого. Все, що отримує обробляються контролером, ОК? Так що обробляє запити користувачів і отримує інформацію. Так одна річ, ви повинні знати про Ваш PSET, що, в ваших поглядах, все, що є насправді відображення інформації ніколи не повинно бути рішень закликає до вашої моделі. Все, що обробляється в контролері. Ваш контролер є одним посередником між цими двома. Він попросить модель для певної інформації. Це може перебрати, що Інформація, з'ясувати то, що ви насправді потрібно від це, що робити з ним, а потім вона пройде по просто інформація вам потрібно думку для вас, щоб роздрукувати його поза або відображати його користувачеві, ОК? Тому що ми бачимо, думка як все, що звернена до користувача, так що це буде набагато легше для них, щоб з'ясувати, Ну і, якщо ви робите деякі називають у вашій моделі і ви просите для всіх користувачів хто починає з букви А, і що ви робите, що, на ваш погляд, хто може побачити ваш веб-сторінку потенційно може відкрити що. Вам не обов'язково хочуть що. Ви ж не хочете, щоб люди бачили більше в базу даних, ніж те, що вони повинні бачити. Всього їх конкретні переваги. Так контролер обробляє все, що. Так що всі ваші .php файлів, які ми побачимо Ви можете розглянути ваші файли контролера. І ось, коли ти дійсно буде просити речі з вашої бази даних, і ітерації або маніпулювання це, перш, ніж передачею його на бути переглянуті. Це дійсно здорово PSET, на мій погляд. Я думаю, що це трохи більше як миттєве задоволення, тому що ви реалізуєте багато маленьких крихітних речей, і кожна річ повинна працювати сама по собі. Не подобається, робити все, а потім побачити, якщо він працює. Як з програмним забезпеченням де ви, як і я дійсно сподіваюся, що це Добре, тому що якщо це не так, Є багато поміщає це може бути не так. Добре. Просто щоб переконатися, що я сказав, все, що я повинен був сказати про MVC. Так. Прохолодний. Таким чином, в CS50 фінансів, у нас є наша модель, як я щойно сказав тут. Це збирається бути MySQL і PhpMyAdmin. Я можу напевне тягнути тих, так ви, хлопці, отримаєте можливість поглянути на нього. Як я вже говорив, це ваш SQL У базі діє як моделі, і ви можете відправити те, що ми називаємо запити, які знаходяться всього в такого роду речі. Це так звані запиту. Це запит, де ви тільки просити вашу базу даних для чогось, або ви змінивши бази даних в деякому роді. Це все, що є. І ви робите це з Функції ми дали вам тут. Ви також можете маніпулювати їх вручну за допомогою PhpMyAdmin, які ми можемо виразно поглянути на. Я створю зразок У базі з вами, хлопці. Добре. Так, контролер. Таким чином, в цьому випадку, якщо ви Зазначимо, що це все PHP. Зверніть увагу, що це свого роду ваш Головне з контролера є те, що вона повинна бути в основному PHP. Якщо у вас є HTML в вашому контролері, не впевнений, що там відбувається. Так само, як я вже сказав, якщо вас вдається [нерозбірливо] з HTML, Я реальний зацікавлені. Отже, що ми маємо тут це у вас є запит. Запит є функцією, яка ми побудували для вас, хлопці. Це як обгортку, щоб зробити запити до вашої базі даних трохи легше. Якщо у вас не було, що, синтаксис насправді розмовляє з базою даних SQL буде відрізнятися, тому ми просто поставити його для вас, хлопці. Ми хотіли, щоб полегшити життя. Таким чином, в даному випадку, може ви, хлопці, скажи мені, що ця лінія робить? SELECT * з деякої таблиці. АУДИТОРІЯ: Виберіть все з цієї таблиці. Аллісон Бухгольц-AU: Абсолютно вірно. Так каже, дайте мені все з цієї таблиці. І це зберігати його в деяка змінна результат. І це говорить, якщо результат не дорівнює брехня, то ми робимо кожен з цього. Так що, якщо немає нічого тут, якщо Таблиця пусто або він просто не існує, він збирається повернутися помилковим. Таким чином, в цьому випадку, ми просто робимо упевнений, що щось було насправді повернувся до нас. А потім тут, у нас є наш великий цикл по кожному елементу що ми перебору наш Результат, і ми називаємо його рядок, і ми говоримо, надати цей шаблон де ваші дані цей результат. Добре? Так що це просто обробка рядок результату. В іншому випадку, він кричить. Таким чином, це є прикладом контролера. Як бачите, це тільки place-- Так, шкода? АУДИТОРІЯ: Чому існує амперсанд перед підряд? Аллісон Бухгольц-AU: Амперсанд перед поспіль. Ми просто ітерації. Це також адреса of-- АУДИТОРІЯ: Так що це, як C посилань. Аллісон Бухгольц-AU: Це переконавшись, що ви насправді зміни оригіналу, а не копія. Це так само, з С, де ми передаємо по посиланню тут, просто щоб переконатися. АУДИТОРІЯ: Хіба це не == вмістити не = в PHP? Аллісон Бухгольц-AU: Це не ==. АУДИТОРІЯ: Тому що дорівнює в C є просто-- Аллісон Бухгольц-AU: Це просто не =. Так, ні. Це не ==. Тому == в PHP перевіряє рівність з переключення, експлуатацію, але додаткове якість. Так, він не == в PHP. Це одна з мало синтаксичні відмінності. Так. Таким чином, ми просто ітерації по всіх рядках, і надати, якщо ви, хлопці, Прочитала вашу специфікацію, це просто якийсь інший функції, що є насправді відбувається, щоб обробити всю HTML і відобразити його в ваш Веб-браузер для вас. Добре. Таким чином, ми хотіли б думати про контролери як те, що обробляє бізнес-логіку. Як ви бачите тут, це те, де ми знаходимося приймаючи наші дані з таблиці, ми обробляємо його якимось чином, а потім ми передаємо його. Коли ми робимо зробити деякий шаблон, деякі шаблон на наш погляд, і ми передаємо його тільки Дані, які він повинен отримати. Не всі дані. Всього дані, які ми хочемо це отримати. Добре? В основному дані після обробки. Так що це думка, це Шаблон сума, яка у нас є, і все це проробляється, ви можете є трохи PHP в ваш погляд. Це ніколи не як і PHP в поле зору. Ви повинні просто дуже мінімальні PHP зважаючи, і ви ніколи не повинні бути запитів на ваш погляд. Ви ніколи не повинні говорити в базу даних, на ваш погляд. Це велика різниця. Так що ж тут відбувається, у нас є PHP, який перебору поспіль. Таким чином, в цьому випадку, так як ми були перебору кожного рядка і надання те, що це було ймовірно, як двовимірного масиву де у нас є деякі рядки, що це, само по собі, масив, бо ми ітерації через це знову. І ми просто роздрукувавши Назва ряд, то закінчити його. Ви не повинні цього в Еогеасп. Я ніколи не бачив, що перш, ніж насправді. Я просто роблю Еогеасп. ОК, так що це думка. Давайте подивимося, якщо ми можемо пройти через трохи вашого PSET. У нас є 15 хвилин, так що я впевнений, що ви Хлопці хотіли, що більше, ніж просто закінчуючи рано. Дозвольте мені подивитися, якщо я можу принести це. Так що я не знаю, як багато хто з вас, хлопці, скачали його і ще багато чого ще, але у нас є ім'я користувача, і у нас є деякі пароль. І, на жаль, не так Тепер база даних порожня, так що ми насправді потрібно створити базу даних. Ну, це дивно. Не чекав, що. Технічні помилки. Технічні труднощі. У нас є деякі pset7. Прохолодний. Так, одна річ, ви можете зробити це, з query-- я створю таблицю. Так що це буде users-- що Ви можете зробити тут є, якщо у нас є some-- Дійсно зараз? Добре. Очевидно, що я не роблю так жарко. О. Я знаю, чому. Тому що я ніколи не створював мої фактичні таблиці. Тому, коли ви вперше почати з база даних, ви, очевидно, повинні вирішити, які речі мені потрібно мати тут? Так що, якщо ми просто піти наша таблиця даних тут, у нас був деякий ідентифікатор, який може просто залишитися на Int. І якщо ми подивимося сюди, є круто that-- Так індексу. Якщо ви робите первинний, він робитиме це річ, що ваш стіл організовано, і це також зробить його унікальним. Таким чином, в даному випадку, ми зробимо це первинна, і я збираюся зробити це ім'я, Потім ми просто зробимо це VARCHAR з як 26 літери, бо чому б і ні? І тоді ви можете піти, щоб зберегти, а потім якщо ви бачите, у нас є кілька користувачів тут. Так що, якщо ми хотіли зробити вставити, ми могли б зробити це таким чином, або якщо ви хотіли практику з queries-- Про хлопчик. Я не використовував це в вічно. Я беру це назад. Ви можете редагувати це самостійно або просто вручну вставки інформації щось на зразок, вас можна змінити будь-який з них якщо ви хочете make-- Якщо ви хочете, щоб раптом позбутися від імені, Ви можете залишити, Ви можете робити всі ці речі. Якщо вам потрібно, щоб коли-небудь вручну змінити таблицю, Я пропоную робити це в PhpMyAdmin проти намагається з'ясувати SQL Запити в цілому. При першому запуску PSET, Ви будете мати, щоб працювати тут, так звикнути до цього. А потім, коли ви насправді хочете вставити речі у вашій table-- Мені дуже цікаво, де це, тому there's-- Ось він. Це те, що я хотів. Так що, якщо ви йдете в SQL, ви могли б насправді побачити, як ми бачимо, тут, у нас є SQL запити. Так що, якщо ми хотіли, щоб вибрати щось або якщо ми хотіли, щоб вставити щось, ми можемо зробити вставку в користувачів, чи не так? Я думаю, вам потрібно зворотну косу риску. Одна річ, щоб знати, є, якщо Ви коли-небудь за допомогою цього, Ви повинні використовувати їх назад апострофа, які зазвичай, якщо ви перебуваєте на Mac, прямо над вкладці. Так добре, щоб знати. Ви можете вставити в користувачів, і у нас є свої цінності, чи не так? Тому у нас є цінності, і наші цінності в цьому випадку буде просто, у нас є тільки ідентифікатор, щоб ми міг зробити один, якщо ми хотіли. Це дивно. Добре. Так от, як короткій дрібниця з SQL, але це може бути більш корисним, щоб фактично подивитися на деякі з файлів тут. Так що для Загрузки. О, не завантаження. Так, тільки швидкий путівник що в кожній з цих папок. Вона включає в себе, ми просто є речі, що налаштувати свій браузер, у нас є ці константи, і у нас є ці функції. Якщо ви зацікавлені в будь-якому з них, Я рекомендую дивитися на функції. Один з них, що це супер корисно, насправді це один тут, звалище. Так що якщо ви використовуєте це, це буде насправді просто роздрукувати незалежно змінну що вам подобається його. Так що якщо у вас виникли проблеми, з'ясовуючи те, що цей масив виглядає, або те, що ці дані фактично, як це форматуванні це велика річ, щоб використовувати. Особливо, коли у вас є Користувач з множинною складі, це буде щось велике, щоб використовувати. Бо це може бути formatted-- Я знаю, принаймні, для мене, коли я зробив це PSET, він був відформатований в дорозі що я не зовсім очікував. Так я намагався перебрати це і намагається маніпулювати його, але я дійсно не зрозуміти, що я роблю. Так що, якщо ви просто скинути її, вона буде роздрукувати його в браузер, і ви можете точно дізнатися, як це відформатований. Це буде, як правило, роздрукувати його, як масив з його ключами і її цінностей. Так він може допомогти там. Вона також може допомогти зробити Переконайтеся, що ви насправді захоплення даних, який Ви думали, що ви. Так що, якщо ви були, як, мій стіл виразно каже, що є користувач з цим ID, але коли ви йдете на звалище Змінна, його там немає, Ви, очевидно, знаєте, що це де помилка буде. Це один із кращих інструментів для налагодження, на мій погляд. А тут ще пара інших речей тут, але здебільшого, це Кого я хочу звернути вашу увагу на, бо це дуже корисно. Громадський, те, що ми маємо тут справу, це все наше CSS речі. Так CSS, шрифти, наші образи, ще багато чого. Це все речі, які Ви не повинні змінювати. Може ви, хлопці, думаєте про те, якщо це є такі речі, як CSS в шрифтах, це було б модель, або вид, або контролер? АУДИТОРІЯ: [нерозбірливо] Аллісон Бухгольц-AU: Було б бути більше виду, чи не так? Це звернення все речі, як речі виглядають. Так що, якщо ми відкриємо це тут, ми бачимо, що все, що тут відбувається буде ми надання то. Добре? Так що це буде дуже багато кваліфікуватися як вид для цього. Так що це просто приймати деякі, це дзвонить деякий portfolio.php що у нас є, і це проходження в заголовку і портфеля. І це тільки надання що. Насправді, я беру свої слова назад. Це контролер, тому надавати, пам'ятайте, надає думку. Так portfolio.php в цьому Справа буде ваша думка. На жаль, хлопці. Portfolio.php буде Ваша думка, і це буде просто бути ваш контролер для цього. І якщо ми подивимося на це Остання тут, шаблони, шаблони всіх ваших поглядів тут. Так що, якщо ми подивимося, очевидно, ми бачимо багато HTML тут. Так що це один тільки показуючи вам, що сторінка Увійти як повинен виглядати. Ви помітите, у нас є деякі утворюють групи, тобто представити. Ось як ви вирішите, що відображається на є. У вас є певний тип кнопку = "Відправити", і тоді у вас є те, що ви хочете його для відображення в кнопці. Так от, як би ви це зробити показати, як все, що ви хотіли б. І ми бачимо, тут у нас є деякі Ім'я користувача, деякі пароль, і коли ми насправді удар Відправити, це буде якийсь пост, і він збирається розмістити на що? Що контролер для цієї точки зору? Коли ми потрапили Відправити, що буде називатися? Чи знаємо ми ,? Це прямо тут, так login.php. Щось ви, хлопці, збираємося реалізувати. Таким чином, ви завжди можете дізнатися, що буде називається після вдарив Відправити по першій лінії тут. Що форма дії. Коли ця форма видається, які дії ми беремо? Ми називаємо login.php, і ми називати його цим методом з поста, який має прихована інформація. Добре? Так що це ваша думка, а потім, очевидно, якщо ми пішли в login.php-- у нас є його ще? Так. Так як ми бачимо тут, це має набагато більше логіки. Це все наша PHP тут. Ми намагаємося, щоб побачити, якщо це було $ _GET, якщо це було $ _POST, перевірки речей, Запити, це все дрібниці. Отже, це просто три різні речі тут. Ви не повинні щось змінити. Ви будете створювати речі в шаблоні, можливо, але, наскільки HTML або стайлінг-небудь з цього виходить, Ви можете залишити його у вигляді звичайного або як складна, як ви хотіли б. Деякі люди дійсно в це і зробити деякі досить дивні сайти. Ви не повинні цього робити. Якщо у вас є час, це дійсно класна річ. Ви можете пограти з CSS і HTML і отримати набагато краще почуття для цього, але не відчувати тиск з метою. Там є багато для вас зробити на Задня частина з реалізації увійти, і зареєструйтеся, і всі ці речі. Так що сподіваюся, що допомагає небагато. ви, хлопці, є які-небудь питання про що ми перейшли, будь-які інші ресурси? Я, безумовно, відправити всі мій приклад PHP коду для вас, хлопці, і то не соромтеся взяти фотографії або ще багато чого з цього. Крім того, це онлайн. Ви завжди можете просто дивитися знову. Так що, якщо це все, все добре? Так. Аудиторія: Я просто хочу для підтвердження, коли ми робити вибір на SQL, зірка означає, що все, чи не так? Аллісон Бухгольц-AU: Так. АУДИТОРІЯ: І потім, якщо Ви не повинні зірку, якщо ви хочете, щоб прийняти від конкретних рядок, то ви просто поставити ім'я of-- Аллісон Бухгольц-AU: Назва поспіль і те, що ви хочете, ви хочете, щоб значення. АУДИТОРІЯ: А потім дата. Аллісон Бухгольц-AU: Незалежно Ви шукаєте, так. Таким же чином, якщо ви робите DELETE * від деякі таблиці, це буде видалити все. Так, * це просто дикий карта на все. АУДИТОРІЯ: ОК. Аллісон Бухгольц-AU: Прохолодний. Дивовижний. Ну, є великі понеділок, хлопців. Побачимося на наступному тижні. Удачи на PSET.