SAM LEVATICH: Сардэчна запрашаем у падзел на гэтым тыдні. Я не Эндзі. Эндзі ўжо захварэў у гэты дзень, і я былі свайго роду называецца ў апошнюю хвіліну ўзяць на сябе. Гэта сезон грыпу, так пераканайцеся, што вы застаюцца чыстымі, мыць рукі, і здаровага харчавання, так што Вы таксама не прыкаваныя да ложка. Але без далейшага шуму, давайце пачнем. Сёння мы пагаворым аб PHP трохі bit-- як PHP ставіцца да HTML, як гэта ставіцца да CSS, а некаторыя з сеткі рэчы вы зрабілі на апошнім заданні. Мы збіраемся пагаварыць Крыху пра SQL і як вы можаце працаваць з базамі дадзеных, які з'яўляецца даволі асноўным кампанентам P ўсталяваць 8-- Р усталяваны 7. Р усталяваны 7. І тады мы будзем казаць трохі Крыху аб тым, як выгляд кантралёры працуюць і чаму гэта філасофія ззаду некаторых Сучасныя вэб-старонкі і іншай дызайн. Даволі шмат шмат тыпаў прыкладанняў і прыкладанні, якія вы, магчыма, карабель выкарыстанні гэтай мадэлі, выгляд рамкі кантролер, што вы будзеце выкарыстоўваць у Р усталёўваецца 7, так што я буду трохі пагаворым аб тым, чаму, што стала папулярныя, чаму гэта важна і прыемна. І тады я, нарэшце, перайсці да некалькі саветаў аб рашэнні P ўстаноўлена 7. І калі ў нас ёсць час засталося ў канцы, мы можам фактычна зрабіць некаторыя працаваць на тым, што разам. Так, PHP. На самай справе, вы, магчыма, заўважылі this-- Вы сапраўды не пагрузіцца ў it-- але Р усталяваны 6 меў некаторы PHP код, які адбываецца. І таму, што PHP з'яўляецца З-як мова, PHP, у адрозненне ад HTML і CSS, гэта мова праграмавання ,, у той час як HTML і CSS з'яўляюцца статычнымі. Яны моў разметкі, якія займаюцца са стылем і візуальнага макета. PHP з'яўляецца рэальнай здзелкі. PHP мае завесы, то ёсць conditions-- усё, што рэчы, якія весела аб С. Ён мае некалькі рэчаў, якія трохі трохі лепш, чым З, што мы ўбачым, але я думаю, самы просты спосаб, каб пагаварыць аб PHP проста пагрузіцца ў. Так што я збіраюся ісці прама у IDE ў гэтай кропцы. Першае, што мы збіраемся зрабіць, на самай справе выглядаюць трохі на некаторыя з PHP код, які быў у Р усталёўваецца 6. Такім чынам, шлях, які мы робім that-- перш, такім чынам, што мы былі пад кіраваннем сервер для прылады было тое, што мы павінны былі б type-- альбо выкарыстоўваць рэалізацыю або рэалізацыя супрацоўнікі гатэля з server.c зайшоўшы ў тэчку і працуе з server.c альбо няма arguments-- так проста назваць яго на лакальны хост, які, верагодна, тое, што вы зрабіў вялікую частку time-- а затым карміць яго directory-- з які будзе выкарыстоўвацца ў якасці яго кораня дзе сайт будзе запусціць, у асноўным. На гэтым тыдні для P ўсталяваць 7, а вялікая, як наш код для server.c ёсць, ёсць людзі, якія ўжо напісаў гэтыя выдатныя рэчы, па меншай CS50 што ёсць трохі больш функцыянальнасці, праграма-сервер, што здольны барацьбы з трохі больш пра тонкасці, што мы будзем см у абодвух P усталяваны 7 і Р 8 усталяваны. І так, што вы запуску сервер, проста набраўшы "apache50." І перш, чым вы што-небудзь, Вы хочаце, каб пераканацца, што Apache 50 ня ужо працуе, як гэта на маёй машыне, што я і зрабіў, каб праверыць яго. І вы што, называючы apache50. Стоп, і вы ўбачыце, што гэта перашкаджае вэб-сервер, калі вы можаце паглядзець там у ніжняй частцы акна тэрмінала. А потым проста пачаць, мы буду называць, "apache50 пачаць." А потым мы збіраемся карміць яго каталог. Цяпер, таму што мы хочам, каб паглядзець на некаторыя з P усталяваны 6 код што мы ўжо ажыццявілі, я на самой справе скапіяваў трохі Р набор 6 код у маёй тэчцы, якія вы можаце ўбачыць злева там. Яна называецца "SECTION8" загалоўнымі літарамі таму што я проста так ўсхваляваны каб быць у прамым эфіры транслявацца-сёння. Так што, калі мы запусцім гэта, ён павінен Усё працуе вельмі эфектыўна. Гэта кажа, добра, наш сайт у цяперашні час даступна па адрасе ў IDE, у асноўным, што тое, што вы былі з дапамогай дакладна так, як гэта было ў Р усталёўваецца 7-- Р набор 6. Усе мае індэксы адзін індэкс сёння. Такім чынам, мы можам пайсці на што адрас, калі вы памятаеце, проста націснуўшы гэтая маленькая Кнопка ў правым верхнім куце. І вы памятаеце гэты код, які адбылося, калі вы пайшлі ў hello.php. І тое, што код прызначаны для зрабіць, калі вы набралі ў імя here-- калі вы кажаце, Сэм таму што гэта мая name-- і я націсніце павітацца, калі мы пайшлі на наступную старонку, што імя павінна было быць адлюстравана. Гэта б сказаў, "Прывітанне, Сэм" або "Прывітанне," усё, што вам імя пакласці ў яе, хоць мы пайшлі на зусім новы вэб-старонцы. І гэта тая рэч, што PHP можа зрабіць для вас. PHP здольны перадаваць дадзеныя паміж двума вэб-старонак. Гэта зусім розныя старонкі. Вы ўбачыце назву "прывітанне" тут. На самай справе, яны маюць тое ж самае назву, але я абяцаюць што яны іншы вэб- старонкі, калі мы паглядзім на крыніцу. І вы можаце перадаць дадзеныя, што гэта уведзенае ў гэтым тэкставым полі, Вы прадставіць яго да наступнага старонка, якая прызыву, і затым гэтыя дадзеныя ў стане там у яго цяперашнім выглядзе. Цяпер мы яшчэ не рэалізавалі гэта сябе, што гэта тое, што мы збіраемся зрабіць прама цяпер, каб Сартаваць атрымаць густ таго, як PHP працуе, але асноўная ідэя ў тым, што вы можаце PHP-- накшталт думаю пра яго, як функцыі. Нешта, што PHP можа дазволіць вам у гэта можа прымаць параметры Тое, што Вы уваходнай у HTML старонцы з дапамогай выкарыстання РНР і формаў, і ён можа перадаваць іх у якасці параметраў да наступнай старонцы, што Ён загружае. У гэтым выпадку, мы да гэтага загрузцы старонка з кнопкай "павітацца". Але цяпер, я на самой справе выдаліў некаторыя гэтага кода у hello.php, што ў цяперашні час запуску што было на самай справе, які адлюстроўвае "прывітанне, Свет "або" прывітанне, Сэм "ці "прывітанне," усё, што было проста ўвядзіце. Такім чынам, для прама зараз, мы збіраюся зрабіць што, у прынцыпе. Мы збіраемся, каб узнавіць, што і дадаць яшчэ трохі функцыянальнасці, зрабіць трохі больш з ім, см тое, што PHP на самай справе здольны. Такім чынам, спачатку давайце пагаворым аб гэты файл, hello.php. Так што, калі мы маштабу ў трохі bit--, і цяпер я накшталт спрабуе пракруціць усё спосаб around-- мы ідзем. Вы ўбачыце, што называецца hello.php, але сінтаксіс яго выглядае як HTML-файл. Гэта адбываецца таму, бягучая PHP ў гэтым файле гэта ўсё затрымаліся паміж імі Пытальнік-карэтка блокі. Усё тут лічыцца PHP код. І вы заўважыце, што калі я зрабіў каментар, Вы ўбачыце знаёмыя два слеша. І калі вы памятаеце, у HTML, калі я увядзіце каментар, гэта выглядае-то бліжэй да гэта, што каментар у HTML. Так на самай справе ўсё паміж гэтыя два вуглавыя дужкі Цяпер PHP код, які адлюстроўваецца ў тым, што гэты маленькі сімвал каментара уключаны ў каментар. Такім чынам, кожны раз, калі вы напісаць PHP код, нават калі няма HTML-код за яе межамі, гэта заўсёды будзе заключаны ў гэтых кутніх дужках з пытальнікі. Вы можаце сартаваць думаць пра тое, як усё it-- кода, які збег у вашых праграмах C быў заключаны ў INT асноўны, пустэчу, фігурная дужка, канец кучаравыя заяву дужкі. І вы ўбачыце, фігурныя дужкі ў PHP, таксама, але гэта свайго роду як асноўнага метаду PHP. Так што цяпер, як мы робім што-небудзь у PHP? Цяпер, PHP з'яўляецца праграмавання мова, які вельмі С-як, але гэта працуе на сеткі. Так адна рэч, якая Вы immediately-- адзін з першых рэчаў, якія вы сапраўды з З быў надрукаваны матэрыял вы, праўда? Такім чынам, у C, мы зрабілі гэта з функцыяй PRINTF. Мы далі яму радок, верагодна, з новага радка, і тады мы спынена гэта кропка з коскі. Такім чынам, шлях, які мы збіраемся зрабіць, што у PHP--, таму што гэта не зусім Printf. Гэта крыху іншы сінтаксіс. Такім чынам, што мы друкуем рэчы у PHP ёсць мы сказаць, "рэха прывітанне" або "рэха" любое слова. І, што мае эфект робіць Printf са радком "Прывітанне." І гэта дадае новы радок у яго. Такім чынам, давайце прама зараз зрабіць sure-- Я маштабу зноў трохі bit-- давайце пераканайцеся, што што код працуе таму што там можа вельмі добра быць памылка ў гэтым кодзе што ў нас будзе вырашаць. Такім чынам, сервер ўжо запушчаны. Так што, калі мы пракручваем ўніз на дно, ды, сервер па-ранейшаму працуе. Так што, калі мы проста націсніце на гэты трохі прама here-- welcome-- мы павінны get-- выдатна. Мы да гэтага часу які мае знаёмыя "прывітанне" дыялог, але калі я тыпу ў "прывітанне", мы ўбачым, што тэкст "прывітанне" сапраўды раздрукаваць, што менавіта так, як мы чакалі, таму што рэха ў PHP сапраўды гэтак жа як PRINTF заяве. Такім чынам, вернемся да кода, як у P усталяваны 6 зрабіў код размеркавання вы атрымліваеце зрабіць так, каб PHP будзе Выхад рэч, якая вам набралі ў на папярэднім экране? І быццам вывучыць чаму гэта адбываецца, мы збіраюся ісці ў index.html, які арыгінальны файл, файл, які з'яўляецца на экране з дапамогай кнопкі "павітацца". Вы заўважыце, што ёсць ўсе класічныя рэчы, мы прыехалі, каб чакаць ад такога HTML як гэтыя рэчы, гэтыя тэгі заключаны у кутніх дужках, як PHP але без пытальных знакаў, што паказвае на асаблівую рэч у HTML. У нас ёсць назва, якое "прывітанне". І вы заўважыце, што, як мы бачылі, Назва "прывітанне" у абодвух выпадках. Давайце зменім гэты "сказаць" проста так мы можа адрозніваць сябе, дзе мы знаходзімся. Але ў нас ёсць цела. І тады цікава біта, біт, які з'яўляецца ў HTML, гэта элемент формы. І такім чынам, мы атрымалі форму. І гэта з'яўляецца ключавым. Гэта, як мы працуем з PHP. Параметр Дзеянне Форма кажа, што hello.php гэта тое, што мы збіраемся адправіць значэння ў гэтай форме к. Гэта дзе мы праходзім параметры, так бы мовіць. Вы заўважыце, іншая справа, тут з'яўляецца тое, што метад "атрымаць". Ёсць два асноўных Метады, з дапамогай якіх будзе выкарыстоўваць PHP для перадачы дадзеных паміж websites-- вэб-старонак, rather-- ў гэтым прызначэнні. І гэтыя метады з'яўляюцца "атрымаць" і "пост". Ёсць некаторыя тонкія адрозненні паміж GET і пасаду што мы атрымаем into-- мы будзе "атрымаць" у, калі вы будзеце. Але для ўсіх намераў і Мэты, атрымаць і пост знаходзяцца ўсяго ў шляху, што Вы перадаеце параметры са злёгку рознымі карамі. У цяперашні час, мы збіраемся выкарыстаць, таму што атрымаць атрымаць было тое, што быў выкарыстаны першапачаткова ў файле PHP Р набор 6. А на самай справе, калі мы ідзем у і глядзець перш, чым мы калі-небудзь яшчэ раз рэдагавалася, Я збіраюся сказаць прывітанне , Мэтай якіх тое, што ваша імя? АЎДЫТОРЫЯ: Эліёт. SAM LEVATICH: О, чорт вазьмі. Я не ведаю, як пішацца гэта. Не маглі б вы запісаць гэта для мяне? АЎДЫТОРЫЯ: E-L-L-Я-О-Т. SAM LEVATICH: Я-О-Т? АЎДЫТОРЫЯ: Так. SAM LEVATICH: Ідэальны. ДОБРА. Я мяркую, што я ведаў, як пішацца, што. На жаль пра гэта. Але калі мы кажам "Say Hello," гэта не ён не збіраецца, каб паказаць на экране яшчэ і таму, мы змянілі код няшмат. Але калі мы "прывітанне" - Такім чынам, "прывітанне" тут. Але калі мы больш уважліва паглядзець на сам URL, мы ўбачым, што яна сканчаецца з hello.php? Імя = Эліёт. Такім чынам, гэта спосаб зносін да наступнага вэб-старонкі параметры, якія мы прайшлі. Мы сказалі, імя = Эліёт. І гэта, у канчатковым рахунку, як Р набор 6 Доступ зменную, мы прайшлі ў праз форму. І гэта тое, што ўласціва запыту GET. Запыт Get робіць параметраў Вядома, у URL сайта. І вы памятаеце, таксама, у Р набор 6, што вы прыйшлося напісаць функцыю што справу з тым, што гэта радкі запыту можа існаваць пасля файла. Там можа быць знак пытання з наступным па ў асноўным любую колькасць знакаў. І гэта менавіта тое, што тут адбываецца. І прычына ў вас было б разабраць, што у рэалізацыі server.c ў P набор 6 так, што вы маглі б сказаць код PHP, што назваць = Эліёт. Вы патрэбны, каб мець магчымасць разабраць, што з URL так што файл PHP у пытанні ведаў, што гэта справа. Так што спадзяюся, гэта дае матывацыя да server.c Цяпер, што мы рухаемся па па-за С у PHP. Такім чынам, давайце на самай справе засяродзіцца аб доступе да рэчы прайшлі праз запыту атрымаць зараз ў гэтай кропцы. Я іду, каб выратаваць гэта. Мы нічога не зменіцца. Падобна на тое, у нас ёсць поле ўводу. Мы ўсталёўваем некаторыя ўласцівасці, як мы можам зрабіць HTML. Гэтыя простыя рэчы. Мы не павінны гэта. Але ў нас ёсць аўтазапаўнення з, якія ў асноўным says-- вы ведаеце, пры ўводзе рэчы у Інтэрнэце, часам ён спрабуе запоўніць, што за вас. Так што гэта добрая рэч. Мы хочам, каб выключыць яго для гэтай мэты. Гэта было рашэнне CS50. Такім чынам, мы можам выдаліць, што калі мы хацелі. Аўтафокус проста ўстаўляе курсор ў выглядзе правы ў пачатку. Зноў жа, не занадта важна. Але імя = "імя" - гэта крыху складана, таму што яго імя і імя. Але мы маглі б змяніў гэта нешта іншае. І на самай справе, што гэта што мы будзем рабіць прама цяпер. Мы скажам "твар", якое накшталт як імя калі чалавек вызначаецца па іх імя. Так давайце закрыем гэта, адкрыць наш сайт так наш сервер ўсё яшчэ працуе Apache 50, і мы будзем казаць, прывітанне, вось Эліёт зноў. Чаму не? Добры дзень. І калі мы ідзем сюды, мы ўбачым, то замест імя = Эліёт, ён кажа чалавек = Эліёт. І гэта прамы вынік таго, што мы толькі што змянілі назву = "чалавек". Такім чынам, у якасці ўваходнага элемента HTML-форма, поле імя ідэнтыфікатар для Параметр, які перадаецца. Гэта як калі вы ствараеце функцыю "дадаць", што прыняў у двух цэлых лікаў і ты сказаў Int А і INT б. Гэта было б імя а, і калі Вы хацелі іншую форму, якая мы можам зрабіць толькі шляхам капіявання і прыклейванне, то мы мелі б імя б. Так што цяпер мы будзем мець два параметру якія прапускаюць праз дабрацца да наступнага website-- наступны вэб-старонкі, hello.php. І мы можаце ўбачыць што зноў, калі мы хочам. Гэта самы просты спосаб справіцца з вэб-код у IDE, у асноўным. Вы запускаеце сервер, атрымаць яго бег, а затым кожны раз, калі ўнесці некаторыя змены, проста зачыніць што файл проста каб быць у бяспецы. Пры націску на кнопку таму гэта крыху больш складана таму што гэта можа загрузіць раней версія, не самая апошняя з. І тады вы проста націсніце кнопку кнопку яшчэ раз, поп права up-- аб, і ў цяперашні час існуюць дзве формы. І таму, калі мы набяром адно ў кожнай одно-- "Джэйсан Хиршхорн," для instance-- мы гаворым прывітанне. Мы паглядзець на нашых параметраў. Падобна на тое, у нас ёсць, а Чакаецца, а = Джэйсан і б = Хиршхорн, якая ўяўляе два параметру што мы прайшлі да гэтай функцыі. Так што цяпер давайце на самой справе атрымаць рэалізацыі гэтай функцыянальнасці, што мы меў на P набор 6. Так што зараз мы проста паўтараючы прывітанне. І гэта не вельмі карысна. Мы хочам, каб рэха некаторыя зменныя , Які быў прыняты да нас. І мы ведаем імя гэтай зменнай. У нас ёсць, і мы б. Такім чынам, мы маглі выбраць, каб паўтарыць любы з іх. Але як мы да яго доступ? Ну, ёсць пэўныя глабальныя зменныя ў PHP. І я збіраюся напісаць іх у каментарах тут. Два найбольш важных з іх Get і размясціць для нашых мэтаў прама цяпер. Гэтыя масівы або, Тэхнічна, слоўнікі дзе нашы зменныя, якія мы перайсці да наступнага вэб-старонкі Live. І ў бліжэйшы час мы ўбачым, як іх выкарыстоўваць. Яшчэ кароткая даведка PHP кода і некаторыя асаблівасці it-- ў C, абвясціць зменную або выкарыстоўваць зменныя, Вы спачатку павінны былі абвясціць іх. І тое, што вы павінны былі зрабіць, калі вы абвясціў іх было сказаць, Int А ці сЬаг б. Вы павінны былі аб'яўляць тыпы гэтых зменныя перад вамі стварылі іх. PHP-- вам не трэба рабіць нічога з гэтага. PHP не патрабуе тып зменнай. І так, што вы стварыць переменная-- а чым казаць INT, CHAR, string-- якая на самай справе сімвал *, як мы знаю-- а не рабіць усё што, таму што ўсе мае той жа тып, Бестиповое, мы можам толькі выкарыстоўваць адзін сімвал, які гэта знак даляра. І вы ўбачыце, што гэта ўжо з'яўляюцца уверх, маленькіх аўтакамплектуючых рэчаў. І гэта кажа, што _GET і _POST два варыянты, якія я меў у распараджэнні для мяне. Некаторыя з гэтых рэчаў іншыя глабальныя зменныя ў PHP што вы будзеце выкарыстоўваць на працягу курс P усталяваны 7. Цяпер мы збіраемся засяродзіцца на GET і пасады. Але гэта карысна рэч, што робіць IDE дзе калісьці вы набралі у гэтым знак даляра, ён пачне запаўненне глабальных зменных або зменныя, якія вы ўжо вызначылі. Так што, калі вы хочаце, каб вызначыць пераменная называецца "радок", Вы маглі б проста ўсталяваць яго роўным "прывітанне". І гэта ў асноўным так проста. І тады мы маглі б зрабіць нешта накшталт "рэха $ радка." У асяроддзі IDE павінны кідаць некаторыя памылкі, калі я раблю нічога дрэннага, так што спадзяюся, што я раблю ўсё правільна. Але памылкі заўсёды ўзнікаюць. Яшчэ складаней справа аб PHP з'яўляецца тое, што ён не складзены. Так што з C праграмы, вы маглі б зрабіць распарадак дня of-- у асноўным, Вы б унесці змены ў код, вы захаваеце яго, і тады вы б зрабіць гэта, дзе робяць быў крок, які называецца кампілятар, ляск, каб зрабіць ваш код, гэты тэкст падаць, у выкананы файл. PHP з'яўляецца З-як, але ён выконваецца на ляту вэб-браўзэры. Такім чынам, няма ніякага спосабу ведаць. Зрабіць б кінуць тых, карысныя памылкі, праўда? Гэта было б падобна, вам ня абвясціць гэтую зменную перш чым паспрабаваў выкарыстоўваць яго. Вы зрабілі ўсё гэта дрэннае stuff-- Segfault, Segfault, ўсё такое раз весела які прыйшоў з вытворчасці. PHP з'яўляецца вострым з абодвух бакоў мячом таму што вы не атрымаеце тыя памылкі, але гэта таксама азначае, што вы не будзеце ведаць, сапраўды тое, што здарылася з вашай праграмай калі вы проста запусціць яго і ён не працуе. Але адладчык павінен паказаць некаторыя, спадзяюся, карысныя дробязі сінтаксічна, што вы можаце выправіць. Так што цяпер, калі мы пераходзім, мэтай якіх кажуць, давайце закрыем гэта. Паўторна. І мы вярнуліся сюды. Такім чынам, мы атрымалі зменную і пераменная б. І яны не будуць у канчатковым рахунку ўсё роўна. Мы называем іх гадзіну і г без асаблівай прычыны. І мы гаворым прывітанне. Цяпер, падобна, наш радкі "прывітанне" сапраўды друк. Мы стварылі зменную з імем "радок", ўсталюйце яго роўным "прывітанне". Звярніце ўвагу, што мы не павінны рабіць Таноса або зрабіць масіў знакаў. У PHP, таму што зменныя з'яўляюцца Бестиповое, радок такі ж, як у паўкокс для ўсіх намераў і мэтаў. Гэта можа быць "Прывітанне». Гэта можа быць толькі характар ​​к. Гэта можа быць нумар 1. І гэта не хвалюе. PHP не хвалюе тып зменнай. Або, сапраўды клапоціцца. Гэта клапоціцца, калі вы спрабуеце і рабіць рэчы з ім, але гэта не сыход у дэкларацыя крок. І гэтак жа, як вы можаце ў C, вы можаце абвясціць радкі ў стэку, як гэта хоць, кажучы "стэк" крыху трохі аб патэнцыйнай няправільным калі гэта мы гаворым пра PHP. Але мы не павінны турбавацца пра гэта. Такім чынам, мы атрымалі нашу радок "прывітанне", і мы рэха радок. Так што цяпер мы абмяркоўвалі зменныя. Так што цяпер нам трэба пагаварыць аб атрымліваць і размяшчаць і выконваць канчатковы рэч, якая неабходна, каб сапраўды атрымаць гэта назад да да функцыянальнасці Р набор 6. Так што цяпер мы паўтараючы радок, але мы сапраўды ёсць гэтыя зменныя атрымаць і пост. І таму, што мы выкарыстоўваем метад атрымання, ён Здаецца натуральным, што наша пераменная, мы зацікаўлены, А і Б, будуць размешчаны ў масіве або слоўнік, тэхнічна атрымаць. Так што, калі мы стварылі, як гэта атрымаць з groups-- я націснуў ўвесці і гэта не падабаецца it-- але тут мы маем атрымаць. І так трапіць ўжо існуе. Такім чынам, мы ўжо можам пачаць доступу некаторыя з элементаў атрымаць. Калі мы атрымліваем, гэта сінтаксіс для масівы ў PHP вельмі С-як. У нас ёсць два квадратныя дужкі. Так што, калі мы гаворым, патрапіць у нармальны Масіў, мы маглі б атрымаць доступ да індэкс нулявога, першы індэкс. PHP з'яўляецца нулявой адзнакі. Мы маглі б сказаць, нуль, адзін, two-- рэчы, як гэта. І я кажу, што атрымаць тэхнічна слоўнік. Так што PHP робіць пад капотам, які з'яўляецца трохі лепш, чым C, гэта ўжо дае вам некаторыя Слоўнікі функцыянальнасць, якая сапраўды хэш-табліцы, або спрабуе, нібыта. Або, тэхнічна гэта можа быць паспрабаваць таксама. Але PHP рэалізуе хэш-табліцу, які ўтварае эфектыўную слоўнік. І так мы ведаем імя нашай зменнай, праўда? Гэта перадаецца ў радок запыту па PHP. У нас ёсць A = H і B = г, дзе і б імёны зменных. Такім чынам, шлях, які мы можам атрымаць доступ да Значэнне, якое адпавядае клавішы у нашым слоўніку гэта проста кажучы _GET_GET ["а"]. Так што цяпер у нас ёсць _GET ["а"]. І калі мы проста замяніць ўнутры наша рэха, калі мы рэха _GET_GET ["а"] - і калі адладчык мы ўбачым кідае якія-небудзь памылкі аб this-- мы выратуем, што і закрыць гэта. Адкрыйце яго. Такім чынам, мы проста робім права Цяпер, так бы не мае значэння. "яна" і "ён" - "гул". "яна" і "гул". Гучыць добра. І гэта раздрукаваць "ёй", які з'яўляецца вар'ятам. Але гэта менавіта тое, што што адбываецца ў Р усталёўваецца 6. У прынцыпе, тое, што Р набор 6 быў doing-- рэха прывітанне, name-- дзе быў Імя зменнай, і ён проста просіць Вас ўвесці ў гэтым трохі тэксту. Быў таксама нейкі Дадатковы код, дзе яна ўключала, калі заявы, якія мы можам зрабіць прама цяпер. Мы можам сказаць, калі існуе, што гэта функцыянальнасць у PHP, _GET З падкрэслення, "імя" - які ў асноўным кажуць, "калі імя было запоўнена ў", таму што мы маглі б проста націснуў кнопку прадставіць форму без набраўшы што-небудзь у гэтай галіне. І мы скончым што ў нашай дружалюбныя фігурныя дужкі. Мы можам мець яшчэ заяву. І гэта ўсё, што ў межах кута PHP кранштэйн, знак пытання, кутка, калі вы будзеце. А зараз мы ўбачым, калі гэта працуе. Я працягваю чакаць для яго для адладкі і дзярмо на мяне, у асноўным, але гэта яшчэ не. Можа быць, гэта цяпер будзе таму што я казаў. Так. Гэта і на самай справе. Так, нічога не з'яўляецца. Гэта таму, што нешта няправільна што я напісаў у кодзе PHP. І я згадаў адладкі гэта складана, таму што ў PHP, мы ня скампіляваць яго загадзя і кампілятар не падабаецца, вось дзе вашы памылкі. Але тое, што мы можам зрабіць, is-- зрабіць людзі памятаюць як глядзець на іншую сетку просіць PHP-- або што сайты паслаць? [? Малін?] Зрабіў гэта ў лекцыі адзін ці два разы. Вы памятаеце, куды мы ідзем, каб знайсці розныя даўгі і 200 Окс усе гэтыя коды, якія адпраўляюцца праз HTTP з вэб-старонкі на вэб-старонцы? Ці памятае хто-небудзь куды мы ідзем, каб зрабіць гэта? Залы: Крыніца. SAM LEVATICH: крыніца старонку. Дакладна. Калі вы ідзяце на старонку Source-- дасканалы. Так Зыходны код старонкі цягне інспектара. І я выкарыстоўваю Safari. Многія з вас, верагодна, выкарыстоўваць Chrome або Firefox. Але пакуль вы у любым сучасным browser-- і не саромейцеся прытрымлівацца нароўні калі вы хочаце. Вы можаце ўвесці да гэтага кода або проста паглядзіце ўнутры P мноства 6 каталог нейкі падобнага матэрыялу. hello.php гэта тое, што мы у цяперашні час працуе на эмуляцыі. Такім чынам, існуе мноства ўкладак. Мы можам паглядзець на ўсе рэсурсы. Мы можам убачыць зыходны код. Так выглядае гэта не так прайсці цела, у рэшце рэшт. Гэта выявілі памылку ў PHP, і гэта спыніўся загрузцы ўсю вэб-старонку. Мы нават не канец Тэг для HTML або што-небудзь. І калі мы паглядзім на сеткі, мы можам см, што нас паслаў запыт. Гэта дамен. Гэта адрас. Гэта дакумент. Мы выкарыстоўваем метад GET. І гэта чырвоны. Або, Ён быў чырвоным, калі я ня выбраўшы яго. Як адмяніць гэта? Ну, гэта быў чырвоны. Дазвольце мне асвяжыць. Там яно і ёсць. Цяпер ён чырвоны. Так што гэта чырвоны колер, што азначае, гэта не атрымалася, што дрэнна. Такім чынам, давайце разгледзім, чаму ён не ў стане. Такім чынам, усё, што зыходная старонка можа у асноўным сказаць вам ваша рэч ня працаваць, што мы ўжо можам бачыць. Так у ідэале было б быць больш карысным інструментам. І ёсць некаторыя пашырэння браўзэра якія дазваляюць адладжваць PHP, але мы не збіраемся пісаць тону PHP, так што гэта, верагодна, проста лепш шукаць па кодзе старанна і проста пераканайцеся, што гэта не робіць нічога іншага. Такім чынам, давайце паглядзім, калі фармат гэта калі заява, дзе праблема. Я хачу, каб загрузіць яго назад сюды. Прывітанне, прывітанне. Так што праблема ёсць. Такім чынам, для правільнага сінтаксісу з PHP, PHP будзе каб быць С-як, што вы ўбачыце завесы. Калі заявы Вы ўбачыце. Вы ўбачыце ўсе гэтыя сябры што вы пазнаёміцеся з на працягу гэтай CS50 семестра. Але лепшы спосаб, каб высветліць, як зрабіць што-то ў PHP з'яўляецца Google яго або зірнуць на некаторыя прыклады кода PHP таму што вы ведаеце функцыянальнасць. Вы ведаеце, што вы можаце рабіць з праграмай. Вы можаце цыкл. Вы можаце цыкл столькі разоў, колькі вы хочаце. Вы можаце цыкл за ўсё віды розных спосабаў. Вы можаце ствараць функцыі. Вы можаце стварыць функцыі, якія выклікаць іншыя функцыі, функцыі што самі сябе называюць. А ў вас ёсць імёны для гэтых паняццяў. Вы атрымалі рэкурсіі, завесы, калі іншыя патокі кіравання. І так Google гэта ваш лепшы сябар. Нават кажуць, "калі PHP Заяву "і там буду быць тон паведамленняў з Адказы на іншых людзей якія ўжо былі падобныя пытанні да вас, якія толькі пачынаюць сваю дзейнасць з PHP і цікава аб сінтаксісе рэчы. Таму што мы можам дазволіць сабе раскоша быць магчымасць зірнуць на код у P мноства 6, мы на самай справе пацягніце яго ўверх і ўбачыць, што Добра, вось нешта цікавае. Так што гэта на самай справе тое, што ён выглядаў у Р усталёўваецца 6. Так што, калі мы прайсці праз гэта, мы можам бачыць, што мы атрымаў некалькі з іх трохі PHP, як пытальнік біт. І не фігурныя дужкі. Ёсць двукроп'я. І ёсць кучаравыя дужкі ў PHP, але гэта фармат і спосаб рабіць PHP, які добра працуе з HTML таму што, як вы ўбачыце, мы закрываем ад гэтых PHP bits-- вярнуліся на Радзіму і IFS і ўсё that--, а затым мы перамяжоўваючы HTML ўнутры іх у той жа час прытрымліваючыся кіраванне патокам ўстаноўлена шляхам PHP. Так што я проста хачу, каб хуткая шпацыр праз гэта таму што гэта шмат тое ж самае паняцці, якія мы рабілі раней. У нас, калі не пустая, дужкі, _GET_GET ["Імя"]. Гэта ўсё той жа самы матэрыял. Мы з выкарыстаннем слоўніка _GET, што PHP адпраўляе па запыце формаў, таму што гэта параметры дзеянні, і метад атрымання. А потым, што заканчваецца гэтым. Двукроп'е якое азначае проста зрабіць гэта калі, калі заяву ацэньвае да ісціны. Гэта як фігурнай дужкай. І на самай справе, гэта фігурная дужка у іншых мовах, такіх як Python, якія вы можаце сутыкнуцца, калі вы проста зрабіць для канчатковага праекта. А потым гэтая лінія, прывітанне. Тады ў нас ёсць гэты дзіўны прадмет. Мы атрымалі больш дужкі. Там няма HTTP there-- або PHP, прабачце. Але ёсць знак роўнасці. І тады ў нас ёсць функцыя, htmlspecialchars (_GEThtmlspecialchars (_GET ["імя"]). Гэта накшталт як больш ўдасканаленая версія рэха. Як мы рэха як спосаб друкаваць рэчы ў PHP. Гэтая функцыя гэта вызначаны ў PHP, што будзе мець справу з некаторымі больш агідна сімвалы і значэння байтаў што вы маглі б перадаць яго. Гэта заўсёды бяспечней выкарыстоўваць гэта. Але рэха будзе рабіць гэтую працу проста выдатна, калі мы не справу з чым-небудзь занадта непрыемны. І таму гэта мае той жа Эфект у асноўным, гэты матэрыял паміж пытанне знакі ацэньваецца PHP. htmlspecialchars вяртае добры HTML друкуецца значэнне _GET_GET ["NAME"], г.зн. усё, што мы ўвялі ў форму. А потым скажу прывітанне, коска прастору, а затым, што. Уся гэтая рэч паміж вуглавыя дужкі будуць замененыя ўсё htmlspecialchars тушыць. Так што ў асноўным падобныя на тое, што мы робім. І ў нас ёсць яшчэ аб, што гэта прывітанне свет, які мае сэнс. Так што цяпер давайце вернемся да нашага Код і паглядзець exactly-- а. Я сказаў, існуе, што не рэч, што мы хацелі зрабіць. Мы хацелі сказаць, не пуста. І такім чынам гэта павінна працаваць трохі трохі лепш, не пусты _GET_GET ["Імя"]. І, што фігурная дужка адпавядае гэтаму фігурную дужку. Мы атрымалі нашы фігурныя дужкі тут. рэха прывітанне _GET ["імя"]. Давайце паглядзім, калі гэта працуе трохі лепш. Мы па-ранейшаму працуе наш сервер. Прывітанне Джэйсан. Прывітанне Джэйсан. І гэта спрацавала на гэты раз. І так гэта доказ што вы сапраўды можаце выкарыстоўваць фігурныя дужкі, што вы ведаюць і любяць у PHP кода ў HTML. Код PHP прадастаўляецца Вы ў PSET 6-- PSET 6-- забяспечвае іншы спосаб рабіць што тое ж самае. Так што цяпер у нас ёсць ўлада. У нас ёсць функцыянальнасць для рэалізацыі код PHP, што мы бачылі ў PSET 6 самі, у асноўным. Перш чым я перайду, тое, што некаторыя з пытанні, якія ў вас ёсць на дадзены момант? Ды [неразборліва]. АЎДЫТОРЫЯ: Такім чынам, у версіі ў pset6, калі вы запусціце яе, ёсць прабел. І я бачу, дзе прастора пасля коскі. [Неразборліва] пачатак адкрытая круглая дужка. Як вы ўключыць у прастору як вы напісалі свае ўласныя коды? Слухаць: Гэта добры пытанне. І так давайце зразумець. Так што гэта вельмі добры пытанне і той, які я не лічыў. Але давайце рабіць гэта разам. Таму ў першую чаргу, тое, што Я раблю з рэха калі мы проста рэха прывітанне, ён выводзіць прывітанне. Калі мы рэха цяпер гэта патрапіць на асобны лінія, давайце паглядзім, што адбываецца. Такім чынам, мы націсніце гэтага. Мы працягваем казаць, прывітанне Джэйсан. Такім чынам, яшчэ раз, мы не павінны гэта прастору. І гэта таму, што, у PHP, калі мы рэха, незалежна ад таго, колькі spaces-- Не, ня V-- незалежна ад таго, колькі прасторы мы не пакласці ў here-- калі цяпер загрузіць, што зноў, прывітанне Джэйсан. Так, бачыце, усё з тых, прасторы з'елі да. І гэта тое, што функцыя рэха робіць. Такім чынам, каб клапаціцца аб што прастора, і гэта Адной з прычын чаму вы не карыстаецеся рэха і вы карыстаецеся htmlspecialchars замест гэтага. Мне цікава, што б адбудзецца, калі мы зрабілі гэта дзе мы заключылі прастору ў радку. Я шчыра не ведаю, што адбудзецца, калі я раблю гэта. Дык вось адзін са спосабаў. Гэта адзін са спосабаў, каб клапаціцца пра яго. Калі вы абгарнуць месца ў радок, то прастора будзе выводзіцца прыгожа рэхам. Самы бяспечны рэч, каб зрабіць зрабіць htmlspecialchars. Гэта заўсёды бяспечная стаўка. Але цяпер у нас ёсць спосаб, каб зрабіць Ён з рэха, калі неабходна. І падобным чынам, мы можам рэха новых ліній, усё накшталт рэчы вы знаёмыя рабіць у PHP. Хто-небудзь яшчэ, тое, што якія-небудзь больш пытанні, якія іншыя людзі у гэты момант аб PHP? Калі людзі з'явіліся трохі позна, Я шчаслівы застацца пасля невялікага і казаць аб некаторых з пачатку. І гэта таксама ўсё livestreamed, і архіў, які з'яўляецца вар'ятам. Ва ўсякім выпадку, так што зараз давайце зробім некаторыя больш прасунутыя рэчы з PHP. І адзін з самых ранніх рэчаў, якія вы былі ўведзеныя ў С было для завес. І PHP мае больш магутны для цыкл называецца цыкл па кожнаму элементу. І, падобна, this-- для кожнай нарыхтоўкі як пустыя, фігурныя дужкі, зрабіць рэч. Так што гэта ў асноўным скарачэнне. Бачыце, цыкл у выглядзе сінтаксічная канструкцыя была распрацавана ў C і ў зборы мова і рэчы, як. Распрацаваны ў З, дакладней, як скарачэнне для многіх відаў завес што людзі будуць бачыць. Напрыклад, калі вы напісалі цыкл, ёсць часта стадыю ініцыялізацыі выконваецца ў самым пачатку, а стан, пры якім цыкл будзе stop-- і гэта асаблівасць гэта толькі ў той час як цыкл, або што ў той час як мае роўна проста feature--, а затым стадыю прырашчэнне ў канцы. І так вы часта апыняецеся напісанне кода, як у наступным. Я збіраюся сцерці некаторыя з гэтага. Але калі мы пераборам сімвалы ў масіве, Напрыклад, як быццам мы атрымаў масіў знакаў. На жаль, каб вярнуць C. Я ведаю, Вы думалі, былі зробленыя. Але гэта толькі ў мэтах навучання PHP, я абяцаю. Так што, калі вы атрымалі паўкокс вул даўжыні 8, а давайце кажуць, што гэта кажа Hellooo з апошнім нулём. Вялікі, так што гэта наша радок. А потым у нас быў цыкл. У нас ёсць INT я роўная 0. І мы хочам, каб выйсці, калі STR з я не роўны роўны нулю, таму што мы выходзім, калі ён роўны нулю. А потым мы робім я ++ сябар кропка ў цыкл. Робячы нешта з вул І. Такім чынам, асноўная формула была, у нас быў гэты масіў, што мы хацеў лячыць як асобныя элементы. Але тое, што мы павінны былі зрабіць, гэта мы павінны былі у асноўным стварыць асобны цэлае зменную, якая разлічвае на кожны раз мы пайшлі праз пятлю. І тады мы павінны былі б затым выклікаць strstr [я], калі тое, што мы сапраўды хацелі зрабіць проста пайсці характар характарам, праўда? Мы не хочам, каб павялічыць цэлы лік, а затым выкарыстоўваць гэтую цэлае для доступу да кожнага індывідуальна характар. Мы сапраўды хочам посимвольно. І так для кожнага пісьменна вылічае, што для нас. Калі ў нас ёсць масіў, які мы можам аб'явіць у PHP а просто-- калі мы маем зменную называецца, давайце называць яго масіў. Цуды не друкаваць, гэта як і любы іншы зменнай. Гэта проста масіў. І ў нас ёсць трохі [неразборліва], як 1, 2, 3, проста свайго роду ініцыялізаваць масіва. Гэта нармальна, гэта не падабаецца мая Еогеасп. Але калі мы на самай справе foreach-- Я набраў, што крыху няправільна. Ёсць два спосабу зрабіць цыкл па кожнаму элементу. Там жа сінтаксіс і ў якасці сінтаксісу. І мы збіраемся зрабіць у сінтаксісе у першую чаргу, а не як. Гэта мая памылка. Так Еогеасп піт ў масіве, рэха Num. І РНР крычаць на мне чамусьці. Гэта знаходзячы нечаканы у чымсьці, які з'яўляецца трохі турбаваць. Але мы падумаем, чаму гэта ў цяперашні час. Так што не падабаецца. Давайце паспрабуем, выкарыстоўваючы як. Гэта аддае перавагу, як сінтаксіс здаецца. Так давайце зробім Еогеасп масіў у якасці піт. Такім чынам, невялікае тлумачэнне што толькі што адбылося з'яўляецца, як сінтаксіс saying-- Ну па-першае, давайце паглядзім на тое, што гэта выводзіць. Так мы адкрываем наша IDE. Мы ідзем сюды. Мы кажам, Прывітанне Джэйсан. І гэта зрабіў 123, які быў змесціва масіва, які мы стварылі да вяршыні. Так дайвінг у гэтым цыкл па кожнаму элементу, у нас ёсць пераменная называецца масіў які ўяўляе сабой масіў з трох лікаў. А потым мы робім Еогеасп Масіў, як піт, рэха Num. І, што больш інтуітыўна, чым для Лоб. Мы кажам, лячэння кожнага з рэчы ў масіве як піт, Я хачу, каб вы даць мне піт. І гэта менавіта тое, што ён робіць. РНР разліку, што калі вы кажаце, Еогеасп масіў, і вы маеце справу з масівам, тое, што Вы збіраецеся хочаце перабраць гэта сімвалы ў гэтым масіве, з'яўляецца Інтс ў гэтым масіве, гэта элементы ў гэтым масіве. І гэта дазваляе вам захоўваць гэтыя зменныя як піт, а потым проста выхад Num адразу, а не кажучы У мяне ёсць пераменная I, а то я хачу, каб выхадны strstr [я]. І так, што дазваляе нам рабіць класныя рэчы. Як у прынцыпе мы не павінны ствараць гэтыя зменныя, такія як я і рабіць усё гэта прырашчэнне рэчы ў канцы. PHP клапоціцца аб усё гэта для вас. Так што цяпер давайце пагаворым аб Еогеасп ў гэта адносіцца і да нашых слоўніку _GET. Такім чынам, мы каментаваць гэта хутка. Такім чынам, мы маем _GET масіва. У нас ёсць гэтая пераменная. І ён атрымаў сёе ў ім. Прама зараз, у нас ёсць толькі адна пераменная перадаецца да яе, што гэта імя. Але калі мы націскаем Enter, цяпер мы можам мець дзве зменныя. Мы можам мець імя і ўзрост, напрыклад, калі мы хочам, каб ўзрост, а таксама імя чалавека, як ні дзіўна. Так што цяпер _GET будзе быць слоўнік з двума элементамі, з двума пар ключ-значэнне. І першы key-- я збіраюся напісаць гэты адзін на борце таксама. У нас ёсць слоўнік _GET. На жаль, гэта трохі цяжка ўбачыць. Але ўнутры нашым слоўніку ў нас ёсць імя, якое будзе нешта што мы далі. І мы будзем мець узрост, які таксама будзе нешта, што мы далі. А гэта паўната нашай слоўніка. Так ён атрымаў два элемента ў ёй. І гэта таму, што Еогеасп завесы разумныя, мы маглі б думаць, і правільна Можна падумаць, што Еогеасп можа перабіраць гэта слоўнік, раздрукаваныя значэння задаецца імя і ўзрост. Такім чынам, давайце на самай справе зрабіць гэта. Давайце пабудуем цыкл па кожнаму элементу. І мы збіраемся зрабіць для _GET як. І мы збіраемся зрабіць наступнае. Такім чынам, давайце паглядзім, што адбудзецца, калі мы ўвядзем проста слова, а потым кажуць, рэха слова. Мы таксама збіраемся паўтарыць новую лінію проста каб зрабіць гэта крыху больш зразумела, тое, што адбываецца. Такім чынам, давайце паглядзім. Гэта не дае мне якія-небудзь памылкі. І мы будзем зачыняць гэта. На нашым сайце вы збіраецеся рабіць шмат, што на працягу pset7. Таму мы кажам, мяне завуць Сэм. Мой узрост 45. Гэта не так. Але ён друкуе, як і чакалася, Сэм 45. І так вы заўважыце, што тое, што цыкл па кожнаму элементу did-- тут, давайце вернемся да таго, што так што да на board-- мы атрымліваем _GET як словы. І там былі чатыры рэчы ў _GET. Але гэта толькі раздрукаваць дзве рэчы. Еогеасп, быўшы яго інтэлект сябе, Мяркуецца, што тое, што мы сапраўды хацелі былі каштоўнасці, а не ключы. Але ёсць спосаб, які мы маглі б друкаваць з ключоў, а таксама, калі мы хацелі. Калі б мы хацелі таксама ведаю, што гэтыя зменныя былі названыя, ёсць спосаб, што мы можа атрымаць доступ да гэтай, а таксама. А шлях да свайго роду зрабіць гэта, так што мы можам казаць, дазваляе сапраўды разбіць яго на пар ключ-значэнне. Такім чынам, давайце паглядзім, што адбываецца цяпер. Такім чынам, мы маем ключ. У нас ёсць каштоўнасць. У нас ёсць яшчэ адзін новы лінія для зручнасці чытання. І давайце паглядзім, што адбываецца, калі мы робім гэта цяпер. Я не ведаю, колькі гадоў Джэйсан. Джэйсан 15. Такім чынам, мы маем імя Джэйсан, узрост 15. Такім чынам, мы змаглі атрымаць доступ да ключа і пары значэнняў гэтага слоўніка проста кажучы, як ключавыя моманты да значэння. І гэта Еогеасп сінтаксічны цукар, які дазваляе трохі атрымаць доступ да рэчы ў слоўніку. Так што спадзяюся, гэта свайго роду падкрэслівае сіла цыкл па кожнаму элементу. Вы можаце ў значнай ступені кідок усё, што здаецца Iterable, як што-небудзь, што мае некалькі элементы, такія як масіў, падобна dictionary-- тыя два першасныя рэчы, якія вы будзеце працаваць з і ў жыцці, і ў PSET 7. Такім чынам, вы можаце кінуць гэты матэрыял на яго, і ён будзе высветліць тое, што вы хочаце з ім рабіць. Гэта будзе казаць, добра, я іду, каб атрымаць гэтыя рэчы з дадзеных, якія быў прыняты для мяне. І гэта нешта, што вы будзе выкарыстоўваць шмат у PSET 7. Я збіраюся хуткай пракруткі ўніз, каб паглядзець, дзе я ў. Ёсць людзі, ёсць пытанні на гэты момант? Пытанні на ўсіх? Да? АЎДЫТОРЫЯ: Так што з ключом і значэннем, Вы маглі б назваць гэта што-небудзь яшчэ і гэта ўсё яшчэ працуе? Слухаць: Ой. Нічога сабе, я цалкам выдаліў ўсю лінію. Вялікая праца. Так, а. Ключ і значэнне ўсяго толькі ўмоўнасць. Гэта карысна. Вы б атрымаць некаторую канструкцыю ачкі, магчыма, некаторыя пункты стыль для гэтага, таму што гэта сапраўды перадае намер. Але мы кажам, што і yarp. АЎДЫТОРЫЯ: Вы не павінны нічога змяніць у HTML файл для таго, каб адлюстраваць, што? Слухаць: Зусім не. АЎДЫТОРЫЯ: А гэта як раз ведае, што з-за большай роўная than-- Слухаць: Так. АЎДЫТОРЫЯ: --that паказчык таго, што that's-- Слухаць: Так. Гэта сінтаксіс ForEach, але так. АЎДЫТОРЫЯ: Ёсць не тыпы. Так што, калі вы хацелі ўзрост, каб быць толькі нумар? Ці ёсць спосаб зрабіць гэта? Слухаць: Ёсць спосабы, каб праверыць, калі Зменныя адпавядаць пэўным тыпах. Такім чынам, PHP просіць крыху больш ад вас, таму што няма тыпу ст. Некаторыя спосабы ён просіць менш. У пэўным сэнсе ён просіць больш. Таму што, калі ў вас ёсць толькі то ў зменнай, Вы паняцця не маеце, які тып гэта. Але калі вы разумныя аб зменных што вы прызначыць тыпы ў і пераканайцеся, што функцыі толькі return-- вас хачу функцыі вяртаць толькі адзін тып значэння, так што вы можаце ў асноўным чакаць, што зменнай вы атрымаеце назад з функцыі будзе мець тып што вы думаеце, гэта будзе, у асноўным. Але ёсць некаторыя метады з дапамогай якіх можна праверыць. Я не памятаю, іх з верхняй частцы маёй галавы. Я чакаю яго, каб уключыць сіні. IsInt? isstr? Ёсць метады убудаваны ў PHP, які можа праверыць тып зменных для вас. Але калі вы прызначаеце зменныя бойка, вы не павінны трэба зрабіць, што занадта шмат у PSET 7. Але гэтыя метады сапраўды існуюць. І гэта тое, што знаходзіцца ў самым мове. І я не памятаю дакладнае сінтаксіс. Мы маглі б нават глядзець яго. Але час ад сутнасці. ці ёсць яшчэ хто-небудзь ёсць якія-небудзь пытанні? Так. АЎДЫТОРЫЯ: у мяне ёсць толькі адзін больш. Такім чынам, вы згадалі метад GET, але Вы не кажучы ўжо пра метад POST. Няўжо мы вяртацца да гэтага? Слухаць: Так, мы будзем вяртацца да гэтага. Гэта менавіта тое, што я шукаў на маім тэлефоне, які зараз заснуў, але я знайду яго. Проста пераканаўшыся, што мы трапілі усе PHP нот. Так, няма адладкавай версіяй. Так, у нас ёсць яшчэ некалькі рэчаў, якія мы хочам зрабіць цяпер у гэтай кропцы. Таму казаць пра POST, якія вы згадалі, адзінае адрозненне паміж GET і POST з'яўляецца што памятаю, калі мы глядзелі па гэтым адрасе, і мы ўбачылі, аб, Імя роўны а і ўзрост роўны yarp маюць рацыю ў URL там для нас. ПОСТ трохі больш скрытным з праходжання інфармацыі. Так што, калі вы не хочаце, каб карыстальнік ведаць, да прыкладу, вы не хачу імя карыстальніка і пароль чалавека У цяперашні час ўвайшлі ў якое будзе адлюстроўвацца ў URL-адрас, які з'яўляецца разумным крокам ў URL не хочуць, таму хто-то можа ўбачыць яго. Калі яны звязваюць кагосьці на старонку, вы не хочуць, каб іх URL атынкаваныя там, таму што дазволіць людзям ўвайсці ў толькі з склейванні ў URL замест фактычна запоўніўшы форму. ПОСТ трохі больш ўтойліва. І толькі тое, што мы павінны змяніць з'яўляюцца гэты метад, змяненне ад дабрацца да паведамлення. І тады ўнутры HTTP, а не доступу да масіву _GET, мы збіраемся адкрыць масіва _POST. І мы заўважылі, што, калі мы адкрываем гэтую спіну зноў, Джэйсан павольна зніжаецца ва ўзросце. назваць Джэйсана, узрост 14. Тое ж самае рэчыва ўсплывае. Але мы ідзем да URL і гэтыя зменныя не існуе. І тое, як гэты пост passes-- так што не забудзьцеся як глядзець на крыніцу старонкі. Мы ідзем да сеткі. Мы абнаўляем. І гэта іншая справа, што Паведамленне будзе даць вам папярэджання аб. Вы, магчыма, бачылі скрынку, тэкст скрынка, як гэта ў вашым браўзэры. Вы ўпэўненыя, што хочаце адправіць форму зноў? Слупы Што адпраўкі гэтых формаў. Таму што ў асноўным, калі Вы адправілі дадзеныя крэдытнай карты, каб хто-то, што не збіраецца паказаць у URL. Гэта будзе запыт POST. Таму, калі вы абновіце старонку, гэта паўторнай гэты пост запыт. Так што цяпер мы хочам, каб адправіць ўтвараюць зноў, таму што ён не збіраецца стварыць дублікаты пакупак. І мы заўважылі, што тут, метад мы выкарыстоўваем гэта POST. І гэта сапраўды перадаць байт. Гэта перадаецца 401 з іх. Праграма ў даволі малюсенькія. Але няма нідзе, што мы бачым, каштоўнасці, якія ў цяперашні час прайшоў. Вэб-старонкі самі можаце бачыць, але мы, як карыстальнікі не могуць бачыць, калі вы не хакер. Калі ты добры хакер, вы можаце паглядзець. Калі вы ведаеце, асноўная Фармат HTML, значэння зробіць пра сябе на старонках. Вы зможаце ўбачыць. Значэння будуць там, яны трохі менш відавочна для вас доступу, у асноўным. Ці ёсць у нас больш пытанні аб GET, POST before--, што мы збіраемся рабіць далей на самай справе глядзець на некаторыя з кода што вы даяце ў PSET 7, казаць аб як ён выкарыстоўвае некаторыя з гэтых паняццяў, і казаць пра рэчы, якія вы збіраецеся каб зрабіць трохі ў PSET 7. Любыя іншыя пытанні да гэтага? Яшчэ пытанні вы, хлопцы ,? Выдатна. Добра, давайце паглядзім трохі на PSET 7, няма сумненняў у тым, што вы Усё больш за ўсё хвалюе. Я маю на ўвазе, гэта тое, што Дэвід ідзе праз няшмат. Але мы будзем мець тры каталогі на зверху, а таксама файл канфігурацыі. Гэта для баз дадзеных, якія мы гаварыць аб прыкладна пяці хвілін. Ўключае ў сябе, вы ніколі не павінны шукаць у гэтым каталогу калі вы не хочаце, каб але гэта прыемна ведаю, што ёсць усякія памочнікаў. Памочнікі, як карысныя функцыі. І тады ў нас ёсць конфіг, які ўсталёўвае некаторыя рэчы ўверх. Ёсць некаторыя функцыі, якія мае CS50 напісана, што ў памочніка і канфігурацыі. І некаторыя з PHP, што ўжо існуе ў файлах будзе рабіць шмат тым больш роду тупых праца ног для вас. Падобна гэтаму, калі мы ідзем у грамадскае login.php, што ёсць што Выставы прама, калі вы ідзяце ў PSET 7. Мы ўбачым, што ёсць гэта патрабуе заяву. І накшталт як Рэзкае ўключаюць, хэштэгу ўключаюць у сябе, калі вы з новай генерацыі. Але гэта ў асноўным кажа, што я патрэбен доступ для ўсіх функцый у config.php. А вы маглі б мець патрабуюць для ўсіх відаў іншых рэчаў. канфігурацыі на самай справе патрабуе памочнікаў. Таму, калі вам патрабуецца канфігурацыі, вы таксама у тым ліку і не патрабуючы памочнікаў, а таксама. Так што дае вам доступ да ўсіх прахалодны функцый, якія мы збіраемся выкарыстаць, рэчы, як зрабіць. Я на самой справе адбываецца, каб палегчыць гэта ўніз няшмат. Так функцыі, то мы збіраецца ісці праз перш чым мы пяройдзем да SQL трохі біт функцыя login.php, проста таму што ён выкарыстоўвае некаторыя з тэм, што мы толькі што гаварылі аб ў PHP. Вы бачыце, першае, што, калі $ _SERVER. Гэта яшчэ адзін глабальная зменная, якая Вы збіраецеся мець справу з. Гэта як _GET і _POST, але тое, што Сервер змяшчае гэтая можа дазволіць вам ведаць, калі метад запыту быў GET ці пасады. Як раней, што мы рабілі проста ў нашым кодзе, што мы напісалі, мы былі проста мяняецца, што гэта будзе атрымаць і POST у залежнасці ад таго, што мае HTML-. Але ёсць старонкі, якія могуць быць Доступ з абодвума тыпамі запытаў. І вы, магчыма, захочаце зрабіць розныя рэчы ў залежнасці ад тыпу запыту, Увайсці, як робіць. Такім чынам, вы можаце праверыць, што запыт Метад праз доступ ключоў, праз выкарыстанне ключа і атрыманне значэнне чагосьці ў слоўніку _SERVER. Так што яшчэ адзін глабальны Пераменная, як _GET і _POST. Калі гэта GET, мы хочам, каб аказваць рэгістрацыйную форму. Рэндэру гэта функцыя, якая ў асноўным проста ставіць адпаведную HTML і перадае яму некаторыя параметры. Гэта назва параметру, што гэта выкарыстоўваецца для адлюстравання, як ні дзіўна, назва старонкі ў Пытанне, рэч тут, сказаць ці прывітанне ў нашым папярэднім прыкладзе. Цяпер у нас ёсць іншая справа. Інакш, калі гэта POST, мы зрабіць некаторыя іншыя рэчы. Мы выкарыстоўваем гэтую пустую метад. Гэта не існуе, яна пустая. І мы бачылі раней, PHP мае дастатковую колькасць убудаваных у метадах, што Дэвід will-- калі метады, якія з'яўляюцца карыснымі для вас, яны будуць папярэджаны вас у прагулцы па гэтай Давіда дае на пачатковым аглядзе, а таксама карысныя біты Zamyla ст. Яна вярнулася кожны. Мы ўсе можам радавацца. папрасіць прабачэння з'яўляецца трапна назваў функцыя што толькі ў асноўным друкуе некаторыя паведамленні пра памылкі, таму што CS50 вельмі ветлівы. А цяпер гэта, гэта складана, таму што гэта трохі дзе мы запытаў да базе даных. Цяпер мы не казалі аб базах дадзеных. І мы збіраемся ў наступным пяць хвілін або каля таго, максімальны. Але гэта функцыя што CS50 напісаў каб атрымаць табліцу ў асноўным з базы дадзеных што мы працуем з у PSET 7. Я сапраўды дрэнна з маім нулявы індэксацыі сёння. Але так, гэта 7. Так запыт ён збіраецца вяртаць Масіў, у асноўным гэта ключ няшмат. І таму, што гэтыя рэчы не маюць набраўшы, такім чынам радкоў масіў масіваў. Таму што, калі мы думаем пра стол, што мы збіраемся зрабіць з'яўляецца, як вы даведаліся ў psets як гульня 15, так ці інакш дзе вы былі выкарыстоўваць двайны масіў, мы ў асноўным ёсць шэраг іншых масівы робіць табліцу. І ў вас ёсць радкі і слупкі. І тады вы можаце атрымаць да іх доступ, як [0] [1], вы атрымаеце [0] [1]. Асноўныя рэчы, як, што. Такім чынам, што мы робім тут, у гэтай функцыі, мы просім базы дадзеных калі карыстальнік гэта спрабуючы ўвайсці ў, што будзе адпраўлена з дапамогай метаду POST. Мы ўбачым, мы атрымліваем імя карыстальніка, ад _POST. Яны былі адпраўленыя, карыстачу ці вы, пашле значэнне праз форму праз пост, таму што гэтае імя карыстальніка і пароль матэрыял. Мы правяраем імя карыстальніка каб бачыць, гэта ў табліцы? Таму што, калі карыстальнік ўваходу у, то іх імя карыстальніка варта захоўваць у табліцы карыстальнікі, якія існуюць для гэтага сайта. Так у асноўным, калі карыстальнік знаходзіцца ў базе дадзеных, запыт збіраецца вяртацца што шэраг, які ўяўляе сабой масіў. Але хітрасць ў тым, што калі нават калі двайны масіў толькі з аднаго радка, нават калі гэта адзін радок array-- як вы атрымалі basically-- калі ў вас ёсць адзін масіў памеру што трымае іншы масіў, Вы сапраўды маем справу з адной калонкай. Але ён па-ранейшаму разглядаецца як двайны масіў. І гэта, дзе гэта можа часам прывесці складана, таму што ў нас тут радкоў. Наша пераменная радкоў. І тады мы ствараем новая пераменная называецца шэраг і, паклаўшы яе роўнай першы радок з радкоў. І вы заўважыце, што каментар кажа, што гэта першая і адзіная радок. Так што гэта складана частку, дзе цяпер працуе можа вярнуцца масівы вельмі лёгка. Там не mallocs. Вы не ўбачыце mallocs. Такім чынам, вы не будзеце бачыць SEG недахопы. Але функцыі па-ранейшаму будзе праходзіць вакол масіваў і дадзеных у групах. І вы павінны быць асцярожныя чаго менавіта вашы функцыі будуць вяртаць. І нават калі гэта адзін калонка, як гэта, запытваць па-ранейшаму будзе вяртаць двайны масіў. Такім чынам, каб доступ, што column-- або магу думаць пра ўсё гэта, як перавернутая так як мы кажам пра радках. Але атрымаць доступ да гэтай аднаго радка, Вы не можаце проста сказаць радкоў. Нават калі гэта адзін радок, вы павінны у rowsrows [0], каб выключыць роду гэта Знешняя біт масіва і ёсць толькі ваша адзін радок. У некаторых іншых рэчаў. Там гэта функцыя называецца password_verify што правярае пароль, які быў размешчаны. І тады мы бачым яшчэ адзін глабальны Пераменная тут, _SESSION. У асноўным ідэнтыфікатар сесіі як вам адсочваць з калі хтосьці ўвайшлі ў сістэму ці не. Так што цяпер з login.php, мы ўваходу карыстальніка ст. Такім чынам, што мы хочам зрабіць, гэта мы хочам кажуць, што ідэнтыфікатар сесіі роўны запар ID, які толькі мае сэнс, паколькі кожны радок будзе мець іншы ідэнтыфікатар Колькасць у складзе табліцы. Мы ўвойдзем у SQL у Па-другое, так што калі які-небудзь з гэтага Здаецца, трохі, як-бла, то ўсё праясніцца. Але мы збіраемся ўсталяваць ідэнтыфікатар, роўны правільнае справа, увайшоўшы карыстальніка ст. Прашу прабачэння, калі нешта пойдзе не так. І гэта лагіны мэта жыццё, як прафесар Малання б сказаў. Так што было login.php. І шмат з PHP кода вы пішаце у PSET 7, яны будуць няшмат. Не забудзьцеся CHMOD для належныя дазволу. Там будзе крыху пра што ў пачатку спецыфікацыі. Але PHP, што вы напісанне будзе рабіць рэчы, якія падобныя на гэта. Вы будзеце доступу некаторыя рэчы, якія дадзены вам у глабальныя зменныя PHP, што маем справу з бягучай які ўвайшоў у сістэму карыстальніка, ці ёсць Былі запыты, адпраўленыя на гэты старонка, розныя рэчы, як, што. І гэта таксама будзе патэнцыйна пераборы радкоў гэтай рэчы. У іншым функцыі, запыту робіць вяртанне гэтай двайны масіў. А калі ёсць больш чым адзін радкоў у ёй, калі are-- ды, калі ёсць больш аднаго шэрагу ў ім, то гэта будзе табліца. І вы, магчыма, захочаце паўтараць праз шэрагі гэтага масіва, выкарыстоўваючы цыкл па кожнаму элементу, што мы апісалі. Так што, калі вы Еогеасп на падвойным Масіў, што будзе ў word-- тут, Я на самой справе пісаць гэта. Я напішу гэта хутка тут. Калі ў нас ёсць Еогеасп радкоў а запар, што тып радка? Хто-небудзь ведае? Вы атрымалі гэта? Так радкоў двайны масіў. Так што Еогеасп збіраецца вывесці што мы хочам ад гэтай двайны масіў калі мы ітэрацыі над ім? Мы можам выказаць здагадку, што ў асноўным гэта будзе альбо элементы, або радкоў ці слупкоў, у асноўным. І так радкоў і слупкоў мы можа трактаваць як тое ж самае. У асноўным тое, што цыкл па кожнаму элементу будзе зрабіць гэта збіраецца вяртаць радка. радок будзе тыпу запар, у той час як радкоў двайны масіў. Так што, калі вы даеце Еогеасп двайны масіў, гэта не збіраецца паўтараць больш, чым адзін ўзровень. Які з'яўляецца ў асноўным, каб сказаць, калі ёсць восем клетак у гэты table-- 1,2, 3, 4, 5, 6, 7, 8-- цыкл па кожнаму элементу ня збіраюся прайсці праз кожны з гэтых клетак. Што цыкл па кожнаму элементу будзе рабіць быў ён пойдзе праз гэты шэраг, даць вам усю гэтую радок. А потым пайду праз гэты шэраг. Так гэта толькі перабор адзін узровень глыбокі. Калі дадаць укладзены цыкл па кожнаму элементу, то вы можа ставіцца да кожнага радка, вернутай з Радкі, вы Еогеасп шэраг як элемент, скажам так. І тады вы маглі б паўтарыць гэты элемент. Дык вось кароткі крыху аб тым, як перападрыхтоўка вы маглі б выкарыстоўваць Еогеасп завесы ў кантэксце запыту. Ёсць якія-небудзь пытанні па PHP? Усё, што заўгодна, перш чым мы перайсці да гаворым аб SQL і весела базы дадзеных? Добры настрой? Добры настрой. Добра. Давайце рухацца далей таму да PowerPoint, якія вы, верагодна, прапусціце. SQL, яй. Людзі, якія знаходзяцца ў маёй секцыі, як правіла, будзе ведаць, што падзагалоўкі скарачэнняў заўсёды толькі першыя словы Я думаю, што з гэтага матчу, што algorithm-- што абрэвіятуру. Гэта не алгарытм. Так SQL ўяўляе сабой базу дадзеных. Гэта мова, які працуе з базамі дадзеных. І ўсе базы дадзеных з'яўляецца сталы, па меншай меры, у тым, як што SQL ўяўляе іх. Яшчэ адзін спосаб думаць аб базах дадзеных Базы дадзеных ўяўляюць сабой набор ключоў і значэнняў у асноўным. Вы можаце думаць пра базу дадзеных, як слоўнік, а таксама ў выглядзе табліцы. У асноўным гэта спосаб звязаць розныя дадзеныя з іншымі дадзенымі, часта праз радкоў і слупкоў. І гэта шлях гэта SQL працуе лепш за ўсё. Такім чынам, гэта адзін з прыкладаў табліцы. У мяне некалькі прыкладаў людзі ў маёй секцыі, якая У мяне не было часу, каб змяніць. Але ў нас ёсць такія рэчы, як ID, імя, звышдзяржава, і родны. Я не ведаю, дзе хто-небудзь ад ў маім раздзеле, так што я проста хачу, каб выказаць здагадку, усё гэта з Нью-Ёрка Горад, таму што я высокая статыстычная верагоднасць таго правільна. SQL аўтаматычна зробіць клапаціцца аб калонцы ID для Вас. Калі ўставіць новы радок у базу дадзеных SQL, гэта будзе павялічваць, што Ідэнтыфікацыйны нумар і проста у асноўным прытрымлівацца як пяць імёнаў, звышдзяржавай, родны горад, хто на канцы гэтай табліцы. Так ідэнтыфікатар слупка вы ніколі не прыйдзецца турбавацца. Але, як і ў выпадку з login.php, калі мы былі атрымліваць ідэнтыфікатар сеансу з табліцы і толькі з дапамогай ID, ID спосаб для унікальнай ідэнтыфікацыі элемент базы дадзеных. Так што, калі ў нас было два Sams, абодва які вучыў CS50, і абодва хто былі з Мілўокі, тыя б яшчэ маюць розныя ідэнтыфікацыйныя нумары і, такім чынам адрозніваюцца па кантэкст табліцы. Так што гэта тое, што мае справу SQL з, працуюць з у задняй часткі. Цяпер гэтыя чатыры каманды што вам трэба для працы з SQL. І я кінуў іх усё на адным слайдзе. Але мы збіраемся прайсці праз іх усё па асобнасці. Першая каманда UPDATE, які робіць тое, што вы маглі б чакаць. Скажам, у вас ёсць некаторыя дадзеныя ў табліца, састарэў. Як, калі вы трымаць трэк імёны людзей і ўзрост, калі хтосьці ўзрост павялічваецца, то Вы будзеце жадаць, каб пайсці і абнавіць ўзрост толькі, што чалавека. У якасці прыкладу, які працуе з нашай першай table-- не хвалюйцеся аб напісанні ўсіх гэтыя каманды ў той жа час. Але калі ў вас ёсць абнаўленне ўніз, што будзе добра для гэтай частцы, таму што мы збіраемся, каб вярнуцца да стала. Так што, калі мы вернемся да стала, давайце што-небудзь сказаць, што адбылося быў там быў землятрус або лінія разлома, што падзяліць непасрэдна праз Нью-Ёрк. І мы хацелі, каб абнавіць усе які жыў у Нью-Ёрку. Усе яны былі вымушаныя пераехаць у штат Пенсільванія. Гэта не родны горад. Усе яны былі вымушаныя пераехаць у Нью-Хейвене. Там мы ідзем. Такім чынам, кожны ў Нью-Ёрку рухаецца ў Нью-Хейвен. І так вось тое, што гэта рэдагавання тры шэрагу ў гэтай табліцы. Але ў SQL, вы можаце зрабіць што толькі ў адным заяве. Такім чынам, мы вернемся, каб абнавіць. Дазвольце мне хутка сцерці гэтую плату зноў. Калі мы гаворым пра абнаўленне, ёсць некалькі частак сінтаксісу, якія з'яўляюцца ключавымі. Ну, усё, сінтаксісу з'яўляецца ключавым. Але рэчы ў зялёны з'яўляецца абавязковым. Белы патрабуецца, як наканаваныя імёны. І блакітны рэчы якія змяняюцца ў залежнасці ад табліцы. Так што тое, што адбываецца з колеравая схема тут, там. Так што, калі мы хочам, каб абнавіць толькі тыя радкі, людзей, якія жывуць у Нью-Ёрку, так што мы будзем рабіць, калі мы казалі абнаўленне? Так табліца, дзе мы ставім Назва нашай табліцы. Давайце проста скажам, імя нашай табліцы таблічны. Таму мы хочам, каб абнавіць табліцу адзін. І мы хочам, каб set-- тое, што мы хочам, каб усталяваць? Ну, мы хочам сказаць, так column-- PHP лечыць радкоў, унікальных ідэнтыфікатараў. А потым калонкі розныя поля з тых элементаў базы дадзеных. Так першы элемент базы дадзеных мае імя Сэма, звышдзяржавы CS50, і родны горад Мілўокі. Так што, калі мы сказалі усталяваны, давайце паглядзім на параметры яшчэ раз, што мноства дубляў. У нас ёсць слупок роўны кошту. Такім чынам, мы хочам сказаць, некаторыя column-- якія памятаюць з'яўляецца field-- мы хочам, каб убачыць поле, роўнае чаму-то новаму. Так што, калі мы толькі што сказалі, абнаўленне Табліца 1, усталюйце імя роўная Эліёт. Атрымаць некаторыя людзей з Новы падзел на гэтым. Але калі мы толькі што зрабілі абнаўленне табліцы 1 Імя набору роўная Эліёт, што б табліца выглядаць пасля гэтага? Людзі маюць ніякага ўяўлення? Так. АЎДЫТОРЫЯ: Усе, што шэраг стане Эліёт. Слухаць: Усё ў якім шэрагу? АЎДЫТОРЫЯ: У першым шэрагу. СПІКЕР: У першым шэрагу? Чаму першы радок? Я не маю на ўвазе, каб забраць цябе. АЎДЫТОРЫЯ: Можа быць, усё Для ўсёй табліцы? Слухаць: Усё ў уся табліца, так. І гэта праўда, я because-- проста дапамагаючы вам крыху there--, таму што мы апушчаны дадатковы ИНЕКЕ. Калі вы не маеце WHERE Прапанова, што гэтая каманда будзе рабіць гэта будзе працаваць з кожным Однорядный ў табліцы. Імя кожнага чалавека будзе стаць Эліат, у асноўным, які Эліёт вельмі рады. Або Янни, адзін з двух. Але імя кожнага зменіцца. Так як мы выкарыстоўваем ДЗЕ clause-- і гэта ставіцца да ўсіх Wheres якія знаходзяцца ў кожнай з гэтыя розныя рэчы. Такім чынам, вы заўважыце, што SET мае роўную каштоўнасць слупка. І гэтак жа, ДЗЕ. Але яны адрозніваюцца тыпы выказванняў. Такім чынам, калона роўная кошту у камплекце ў заданні. Як мы кажам, мы хочам ўсталяваць імя, супадае з Эліёт. Але ў WHERE артыкулаў, Гэтыя заявы роўнасці. Так што давайце казаць, што мы толькі хацелі змяніць імя чалавека да Эліоту калі іх імя было Раян, скажам так. Таму калі мы гаворым ДЗЕ імя роўная Раян, што будзе паспяхова толькі змена name-- гэта толькі змяніць імя поля ў радках дзе поле Назва роўная Раян. Так што, калі ў нас было некалькі чалавек, імя Раян, усе іх імёны зменіцца да Эліоту. Гэта падобна на прыкладзе ад таго, калі лінія разлома расшчапляецца Нью-Ёрк і кожны павінен пераехаць у Нью-Хейвене, шлях ад нас залежыць, зрабіць гэта ў адзін аператар UPDATE table1 SET родны горад Нью-Хейвен = дзе родны горад роўная Нью-Ёрк. Гэта сіла Дадзенае абнаўленне заяве. Мы можам выбраць любую колькасць Радкі праз сапраўдных сцвярджэнняў аб палях у тых радках. Мы не можам сказаць, UPDATE table1 набор Імя = Эліёт ДЗЕ шэраг = 1, акрамя таго, што мы можам, калі мы скажам ID = 1. Такім чынам, мы збіраемся, каб быць працуе з роўнасцю палёў, роўнасць слупкоў. Але, выкарыстоўваючы поле ID з'яўляецца спосаб выбраць асобныя радкі ў прыватнасці, таму што поле ID з'яўляецца унікальным Ідэнтыфікатар ў базе дадзеных SQL. Так як абнаўленне радок адзін, ID роўны 1. Абнаўленне радкі два, проста змяніць гэтую ідэнтыфікацыйны нумар. Але сіла ДЗЕ заяву, што мы можна абнавіць рэчы на ​​падставе якіх іх Бягучыя значэння пэўных рэчаў. Ды Эліёт? АЎДЫТОРЫЯ: А што, калі вы хочаце, мэтай якіх зноў жа, гэта іншае пытанне. Але мой першы пытанне было, дзе гэта адбываецца? Дзе я абнаўляю гэта? Гэта ў кодзе PHP? СПІКЕР: Дзе вы абнавіць, так. Мы збіраемся казаць пра тое, дзе ўсё гэта адбываецца свайго роду адзін раз мы ідзем праз усе каманды. Але тое, што вам трэба ведаю, на дадзены момант з'яўляецца ў асноўным што базы дадзеных SQL існуе як нешта каб атрымаць доступ у запыце функцыя, якая вызначае CS50. Так што, калі вы выкарыстоўваеце функцыю запыту, Вы можаце атрымаць доступ да гэтай табліцы. Такім чынам, вы будзеце адпраўляць гэтыя каманды да вашага стала ў PHP файлаў праз функцыю запыту. Вы таксама можаце пагуляць з вашага стала адразу. І гэта лепшы спосаб праверыць гэтыя віды каманд. І мы пойдзем праз сапраўды, як зрабіць гэта ў толькі крыху. Дык вось каманда UPDATE. А астатнія каманды будуць свайго роду падобныя, працуе на падобныя рэчы. Ўстаўку на, верагодна, найбольш адрозніваецца ад UPDATE. Я збіраюся пакінуць гэта там для толькі ледзь-ледзь і праца тут. Так ўставіць у, вы ўбачыце гэтая табліца па-ранейшаму тое ж самае. Вы хочаце ўставіць у. Капіталізацыя, SQL не чулы да рэгістра. Такім чынам, вы не павінны зарабіць гэтыя рэчы. Паводле пагаднення, словы у белым капитализируются. Але я таксама колерам іх. Адзіная прычына, што вы выгаду тыя, калі вы друкуеце іх проста, каб падкрэсліць што тыя з'яўляюцца канстантамі. І так вы можаце паглядзець на капіталізацыя або той факт, што я іх па-рознаму афарбаваныя. Такім чынам, мы атрымалі INSERT INTO, давайце зробім table1 зноў. Гэта ўсё ў адной радку. Я проста адлучаючы яго ад розныя заявы. Так што не турбуйцеся аб тым, што таблица1 зрабіў гэта на другой лініі. Таму мы хочам, каб ўставіць НА table1 некаторыя значэння. І вы заўважыце, дадатковы трохі, што я атрымаю у секунду. Такім чынам, мы атрымалі значэнняў. Так што давайце казаць, што мы хочам, каб дадаць Andi да нашага стала, таму што мы прапускаем Эндзі. Эндзі хворы. Так давайце дадамо Эндзі да нашага стала. Памятаеце, што ідэнтыфікацыйны нумар абнаўляецца аўтаматычна. Такім чынам, толькі поля мы трэба турбавацца аб з'яўляюцца імя, звышдзяржава, і родны. І так як, што мы робім, што гледзячы на ​​сінтаксісе, гэта мы ў толькі што атрымаў дужкі, з коскі падзеленыя каштоўнасці, кожны з якіх гэта значэнне. Так што, калі мы хацелі, каб ўставіць Эндзі ў наш стол, усё, што мы павінны зрабіць, гэта дакладна Анди. Што звышдзяржавай АНДи, людзі ў раздзеле АНДи? Яна, як палёт, або як хуткасць, ці нешта. Што ў нас ужо ёсць там? У нас ёсць CS50, палёт, Хуткасць і сіла. АЎДЫТОРЫЯ: Падарожжа ў часе. Слухаць: Падарожжа ў часе, дзіўна. Такім чынам, мы атрымалі Эндзі, час падарожжа, і яе родны горад. Гэта сапраўды добры пытанне. Нью-Ёрк, калі хтосьці не ведае. Усё гэта з Нью-Ёрка з'яўляецца Ўрок забраць з сённяшняга дня. Так гэта заяву ўставіць, як пятай радкі, з падарожжамі ў часе звышдзяржавы і родны горад Нью-Ёрк. Але дадатковае поле з'яўляецца галоўным чынам дакладна ўказаць, якія слупкі Вы хочаце ўставіць рэчы ст. Такім чынам, што мы робім гэта цяпер, Эндзі, час у шляху, Нью-Ёрк, ідзе ў дакладнай парадку нашага table-- імя, звышдзяржава, родны горад. І калі вы хацелі зрабіць нешта іншае, чым, як, скажам, вы не ведаеце, хтосьці супердзяржавай, як, як я не ведаў, АНДи звышдзяржавай ў пачатку. Такім чынам, усё, што я ведаў яе імя і яе родны горад. Што я мог зрабіць, гэта я мог do-- я сцерці гэта хутка. Я хачу, каб абнавіць толькі слупкі. І гэта, дзе дадатковы Спіс слупкоў уступае ў гульню. Я толькі хачу, каб абнавіць імя і родны горад. І тады я скажу каштоўнасці. Я зраблю Эндзі і Нью-Ёрку. Калі б я апусціў спіс слупкоў і проста зрабіць гэтыя дзве рэчы, дзе б Нью-Ёрк пайшлі? Якія калона Нью-Ёрк Горад былі змешчаныя ў? Людзі маюць ніякага ўяўлення? Звышдзяржава, дакладна. Так што гэта будзе проста ісці ў парадку. І як толькі яна дасягае ў канцы Спіс, гэта будзе проста спыніць запаўненне рэчы ст. І каштоўнасці, якія яна будзе прытрымлівацца ў усе слупкі будзе проста значэнне NULL. Так, таму што мы паказана Імя і роднай, мы збіраемся, каб мець ID 5, назваць Эндзі, звышдзяржавы NULL. Так звышдзяржава неинициализированной значэнне. Вы не абавязкова атрымаеце ж памылкі, valgrind, калі вы спрабуеце і доступ да яго. Усё будзе добра абнуляецца з, таму што NULL з'яўляецца значэнне ў SQL. Гэта канстанта. І тады родны горад будзе ў Нью-Ёрку. Дык вось INSERT INTO каманды. Перш чым мы пяройдзем, ёсць больш дзве каманды. Ёсць людзі, ёсць якія-небудзь пытанні з нагоды АБНАЎЛЕННЕ, аб INSERT INTO, аб SQL як правіла, перш чым мы пяройдзем на нашых канчатковых біт? Людзі адчуваюць сябе добра, выдатна. Каханне гэта. Такім чынам, давайце пагаворым аб SELECT. Пераход канаву UPDATE сюды. І ВЫБАР будзе вельмі падобныя. Мэта SELECT, Мэта абраць у жыцці каб даць вам кучу слупкоў якія задавальняюць вызначаным умовам. І калі я кажу задаволіць пэўныя ўмовы, Ваш розум можа неадкладна вярнуцца да таго, што ИНЕКЕ якія прыйшлі ў UPDATE. І, што агаворка менавіта там у SELECT. Калі мы не паставіць WHERE пункт, і мы кажам ВЫБАР імя, hometown-- пішацца, што крыху wrong-- імя, родны горад АД table1. Калі мы проста скажам, што, тое, што ВЫБАР збіраецца даць нам, гэта збіраецца даць нам double-- табліцу, а. Двайны масіў, калі мы думаць пра ў PHP адчувае. Але гэта толькі збіраецца даць нам двайны масіў з двух columns-- імя, і родны. І ён будзе ігнараваць ID. І ён будзе ігнараваць звышдзяржавай. І гэта будзе проста даць нам кожны адзін шэраг гэтай табліцы. Так што, калі мы толькі што ўставілі Эндзі, мы павінны Анди. І мы будзем мець арыгінальную чатыры. Калі яны былі абноўленыя, што будзе адлюстраванне, і гэтак далей, і гэтак далей. Так гэта таму, што мы не выкарыстоўвайце артыкул, дзе. Але мы можам выкарыстоўваць яго ў дакладнасці гэтак жа, як мы выкарыстоўвалі яго ў UPDATE. Калі мы хочам табліцу імёнаў і супер сілы людзей, якія жывуць ў Нью-Ёрку, мы можам выканаць інструкцыю як SELECT, імя, superpower-- Я проста хачу, каб пакінуць that-- АД table1 ДЗЕ родны горад = Нью-Ёрк. Так што гэта ідзе, каб паказаць, што вы можаце атрымаць зусім розныя слупкі, а затым пакласці слупкі, якія вы не нават вяртаючыся ў пункце WHERE. Мы нават не хочам родны горад кожнага. Але мы хочам, каб імя і звышдзяржава людзей чый родны горад Нью-Ёрк. Так што тое, што мы можна зрабіць з WHERE агаворка мы можам мець справу з калонамі што мы не абавязкова хочуць вярнуцца. Такім жа чынам у UPDATE, мы можам мець справу з калонамі, што мы не абавязкова хочаце абнавіць. Мы можам абнавіць горад ўсіх хто клічуць Сэм, напрыклад. Мы можам абнавіць горад кожны, чые ідэнтыфікацыйны нумар 2. Так што проста абнавіць горад другога шэрагу дзе мы не павінны мець справу з неабходнасці агульны пытанне. І выдаляць, як вы б чакаць, DELETE FROM table1. І тады ў нас ёсць яшчэ адзін пункт, дзе. Такім чынам, мы можам сказаць, дзе ID = 1. Выдаліць першы радок. І ВЫДАЛЕННЕ заўсёды будзе выдаліць радок, ці гэта будзе выдаліць некаторы колькасць радкоў. DELETE FROM табліца, у якой родны горад = Нью-Ёрк выдаліць усё ў Нью-Ёрку. Вось калі б быў Раптоўнае трагічнае чума і вы проста хацелі, каб выдаліць ўсё з-за стала, якія жылі ў адным горадзе што трапіў чумы. Хай яны спачываюць з светам. Гэтыя чатыры каманды SQL што вы павінны будзеце выкарыстоўваць. Вы можаце нават не трэба выкарыстоўваць іх усе. Але гэта чатыры што вас чакае CS50 каб быць зручным з выхадам у і віктарыны 1, а таксама pset7 і pset8. Там проста гэтая табліца яшчэ раз. У гэтым, звышдзяржава Роя ёсць абноўлены да лазерных прамянёў, якія прыклад я не выкарыстаў. Я не ведаю, які Рой аддае перавагу, але сіла. Рой мае звышдзяржавы сілы. Кэтрын не зрабіць гэта сёння. Гэта сумна. Але яна мае супер хуткасць. Ну, што было PHP. Перш чым казаць пра MVC, робіць Хто-небудзь ёсць пытанні аб PHP? Цяпер SQL або PHP, калі вы раптам прыдумаць пытанне аб PHP? Выдатна. Добра, мы ўсе усталяваны, то. Таму казаць трохі аб выглядзе мадэлі кантролераў, давайце вернемся да некаторых частка матэрыялу ў pset7. Так што выгляд мадэлі Кантролер is-- Я не збіраецца выратаваць мае змены для ўваходу таму што я цалкам забітыя яго. Але ў асноўным у нас ёсць два асобныя рэчы адбываецца. У нас ёсць грамадскасці Каталог, які змяшчае код, які будзе выконвацца і вэб-старонкі, якія будуць наведаны. І ў нас таксама ёсць гэты каталог погляды. І погляды ўтрымлівае шаблоны. Гэта тое, што функцыя render-- мы ўбачылі аказаць Функцыя ў кучу кода PHP ў што CS50 ўжо напісана для вас, што бярэ ў пэўных параметраў. Тое, што гэта робіць код гэта адбываецца ў прадстаўлення, якія з'яўляюцца наборы, як загадзя напісаныя HTML код, і гэта ўстаўкі значэння у некаторых месцах. Гэта як, калі вам перайсці ў CS50 фінансаў, тое ж самае загаловак на кожнай старонцы. Тое ж самае калантытул на кожнай старонцы. Гэта таму, што шляхі якія робяць працы гэта буду аўтаматычна выправіць у загалоўку і той Глядач, які вы можаце знайсці ў паданнях. Мы на самай справе можа перайсці ў загалоўку, і глядзіце, што гэта HTML-файл з галавой. Ён атрымаў некалькі стыляў. Вам не трэба глядзець на CSS для pset7, калі вы не хочаце, каб. Але вы можаце змяніць ім, калі вы хочаце, каб Ваш Фінансы выглядаць крыху інакш. Ён атрымаў некаторыя PHP ў загаловак трохі, каб убачыць калі ёсць іншае назва ён павінен паставіць у гэтым загалоўку. Але толькі некаторыя іншыя сцэнары, і спасылкі, і іншыя. Кіраўнік заканчваецца, арганізм пачынае, і ой, у нас ёсць гэты дзіўны маленькі канец няшмат. І ёсць DIV, як бясформенны выгляд элемента што мае ўяўленне аб цэнтры. А потым, калі мы бачым, ніжні калантытул, у нас ёсць канец спраў. Мы маем падстава, якое дзе тэкст калантытула. Канец DIV, канца цела, канец HTML. Так што рэндэру робіце аказаць накшталт з латання загаловак, іншы файл PHP, што будзе ўтрымліваць фактычныя рэчы, якія Вы глядзець, як ваш стол запасаў калі вы купляеце ці прадаеце акцыі. А потым будзем дадаваць у склепе. І выгляд мадэлі Кантролер ідэя, што мы хачу, каб аддзяліць, як рэчы выглядаюць з кода. Гэта мы хочам, каб аддзяліць знешні інтэрфейс і базавая, дзе інтэрфейс з'яўляецца рэчы, якія бачыць карыстальнік, сімпатычная visuals-- HTML, CSS, такія рэчы, як, што, малюнка, і гэтак далей. І бэкэнд PHP. Гэта код, які вы пішаце. Гэта дзе код гэта робіць фактычныя аперацыі. Гэта калі вы дадаеце акцыі да вашага стала, калі вы купляеце і продажу, гэта базавая. І мы можам, як вы бачылі, у тым ліку PHP прама ў HTML. Так што мы маглі б зрабіць для гэта прызначэнне толькі што HTML-файл для кожнай старонкі, як лагін. А потым на гэтай старонцы, проста быў велізарны блок кода PHP, у тым ліку увесь код, які гэтая старонка спецыяльна спатрэбіцца. І тады мы маглі б мець зрабіць, што для партфеля. Мы маглі б зрабіць усё пакупкі і продажы ў асобных старонак. Але так як мы аказання асобна ад таго, дзе мы пішам бэкэнд Код, мы можам лёгка змяніць, як выглядаюць рэчы, ня змена кожны файл. Мы робім такія рэчы, як проста дадаць новая спраў да ніжняй of-- Прывітанне я змяніў калантытула. Вы можаце проста зрабіць такія рэчы, як, што. Але таксама, вы можаце змяніць ўся візуальная кампаноўка не закранаючы што адбываецца ў інтэрфейсе. І вы можаце змяніць Уся базавая і да гэтага часу ёсць гэта выглядаюць як гэта было раней. Гэта Ёсць ідэя выгляду мадэлі кантролера. І гэта на самай справе навязанае парадыгма у некаторых мовах праграмавання Вы можаце выкарыстоўваць для канчатковых праектаў. Калі вы развіццё IOS, яны маюць выгляд, што тое, што вы бачыце на iPhone, і то, як бакэнду як асобны прадмет. Вы можаце думаць аб няшмат. Там шмат падвойных зорак у інфарматыка, што смешна, таму што ўсё гэта ў двайковай сістэме. Я не планаваў гэта. Гэта быў каламбур ненаўмыснае. Так, гульня слоў не прызначана. Але, як і .h файлаў і файлаў .c, ёсць шмат падзелу рэчаў, якія мы магчыма, не трэба. Такім чынам, мы можам проста адрэдагаваць ч файлы, або хто-то можа проста ўбачыць .h файл і ведаць, роўна тыя функцыі, якія ў .c файл не абавязкова ведаючы іх рэалізацыя. Гэтая ідэя падзелу кампанентаў якія залежаць адзін ад аднаго але можаце сартаваць доступ адзін да аднаго праз розныя каналы, праходжанне зменных, толькі ўключаюць у сябе заявы, рэчы так, гэты прынцып дапамагае ствараць прыкладанні якія могуць быць больш лёгка рэдагавалася некалькімі людзьмі, можа быць больш лёгка зменена або змены ў вялікім маштабе, і лягчэй адладжваць ў многіх адносінах. Сапраўды хутка, у мяне ёсць некалькі саветаў для pset7, якія я буду рабіць поўны экран, такім чынам Вы не проста гледзячы на ​​the-- САВЕТ Tippee. Ёсць не так шмат саветаў. Але я ўжо казаў PHP складана адладзіць. Двайная і трайная праверыць яго. Калі ваш код проста не з'яўляецца на старонцы, гэта, верагодна, памылка PHP, прабачце. Вы ніколі не павінны глядзець на CSS, калі вы не хочаце, каб. Але як толькі вы скончыце, гэта можа быць міленькі пацешная рэч, каб проста пайсці ў і звязвацца з параметрамі CSS. CSS і HTML з'яўляюцца прыкладам мадэлі выгляд кантролера стыль, што таксама, праўда? Вы маглі б тэгі стыль ўнутры HTML элементаў. Але калі вы, здаецца, аўтсорсінг іх CSS, яны лягчэй рэдагаваць, і гульня вакол з, і весела правесці час з. Лячыць CS50 памочніка функцыянуе як чорныя скрыні. Вы не павінны ведаць, менавіта тое, што робіць рэндэру, але паверце гэта рабіць заўсёды права што ў залежнасці ад таго, што вы перадаеце яго, такія рэчы, як гэта. І я б парэкамендаваў глядзець праходжанне Давіда, перажывае ўсё рэчы, а не толькі Todos, але вы сапраўды можаце лячыць гэтыя, як чорныя скрыні. Не хадзіце ў іх Функцыі шукаеце памылак. І вітаем вяртанне нашай валадар Zamyla. Выдатна. Ці ёсць нейкія канчатковыя пытанні перад мы накшталт адмоваў на працягу дня? Я ўсё яшчэ жыву? Выдатна. Прывітанне прамая чалавек. Выдатна. Ёсць больш пытанняў? Няма? І тады я думаю, што мы добра ісці на сённяшні дзень. Я буду прытрымлівацца вакол трохі потым, калі людзі былі пытанні яны баяліся спытаць на паток. Але ў адваротным выпадку, ёсць добры дзень.