[Музички] ALLISON BUCHHOLTZ-АУ: Сите во право, сите, добредојде назад на секција. Се надеваме дека сите сте имале голема Ноќта на вештерките викенд, или Halloweekend, како што сакам да кажам, сите одморени и обнови. И за среќа тоа не е снег повеќе. Тоа е всушност сончево надвор. Јас бев вистински среќен за тоа. Не се подготвени да го повлечете го мојот зимски чизми. Се надевам, pset6 отиде прилично добро. Ако сте уморни од С, јас сум среќен да се каже ќе завршиш со C за сега. Имаме целосно transitioned во веб програмирање, па ќе се работат во HTML, PHP, можеби малку на JavaScript. Јас не знам што следната недела pset е, па не можам да гарантирам што вашиот следен pset ќе да биде, но pset оваа недела е CS50 финансии, кој во основа е спроведување на вид на веб-страница кој ви овозможува да купуваат и продаваат акции, и да ги пратите на нив. И тоа е прилично кул, бидејќи сите тоа е динамички генерирани. Вие може да има различни корисници кои секоја има свои информации, и ви се случува да биде спроведување на сето тоа. Таа ги зема некое време. Дефинитивно мислам дека тоа е полесно од C psets, но тоа трае подолго. Учите нов јазик, PHP, кој е многу сличен на C, но се разбира, се случува да бараат можете да се погледне до синтакса и да се разбереме како да конвертирате помеѓу јазиците. Но, јас не мислам дека има нешто супер концептуално тешко за ова pset. Тоа е само учење на нов јазик и добивање на преку сите овие мали парчиња. Ако вие момци се чита преку спец, тоа е прилично долго. Мислам дека ова е како 21 страници, ако се сеќавам точно. Тоа е долга спец. Значи, ако не сте it-- прочитате 22. 32. Wow. Па јас бев надвор од 50% таму. Значи, 32 страници. Па тоа е долго. Постојат многу парчиња, но ниту една не на парчиња треба да биде толку лош. Тоа е само многу. Па дефинитивно да започнете почетокот ако е можно, како по обичај, но мислам дека тоа треба да се чувствуваат малку поубав од особено psets како се опорави и големината дека се само многу тешко да се заврши вашата глава околу. Така да со тоа, ние ќе се нурне во. Јас немам вашата агенда слајд денес, но ние сме ќе биде зборуваме за PHP. Ќе се ви даваат еден вид на несреќата се разбира на некои работи кои можеби ќе сакате да знаете за PHP. Различни синтакса работи, работи кои треба да внимавате. Ние ќе се зборува малку за SQL. Само многу едноставни нешта таму, а потоа, исто така, MVC е модел Види контролор, кој е како вашиот pset е поставена, па разбирање на тоа како таа дела ќе биде супер корисни. Сите во право. Па PHP. Вие момци треба да се направи нешто многу, многу едноставно со PHP, кој е ова дното нешто тука, каде што можете поднесени некоја форма на врвот дека тука имаше некои името што го влез, и тоа би рекол како здраво, Бен, или здраво, Алисон, и тоа ќе pop-up. Значи ова е всушност она што го Требаше да изгледаше како од вашиот pset, во случај вие момци сакаше да знае или не сосема го дознаам. Но, ние имаме овие прашалници тука дека укажуваат на тоа дека ова е PHP. Тие го заврши, а потоа htmlspecialcharge, запомнете, е само, бидете сигурни дека сте безбедни од било лудо инјекција напад или ако некој се обидува да се стави луди малициозни карактери во вашиот име на поле, тоа не го прави како вашиот сервер или какво ли не. А потоа, ако ние се забележи, ова HTML форма имаа Методот од $ _GET, кои, ако ние се сеќаваме на нашите superglobals од 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-- ние може да се види како може да всушност ги чуваат одвоени, кој е всушност подобро нешто да се направи. So. Несреќата се разбира. Сите брзо едноставни нешта можеби ќе треба да се знае за PHP. Прогласување променливи. Дека сината е малку досадни, но се надевам дека вие момци можат да го видат. Ако не, јас ќе го напишам на креда одбор. На прогласување променливи. Една работа е да се знае е дека, за разлика од С, PHP е лабаво или динамички отчукува, што значи дека не треба да се каже променлива каков тип е. Можете да, ете, едноставно велат некои променлива е еднаков на она што го сакате, и тоа ќе се одлучи видот на таа променлива во рок време за вас. Како што ќе видите, ова може да се создаде некои многу интересни работи. Но, за повеќето цели, не треба да се определи видот. Можеш, и што можете да напишете фрли работи како што нормално не ќе се види дали сакате да присилуваат да биде одреден тип, но вие не треба да се. Тоа не се случува да се развикам ако само го прогласи променлива и не одредите тип за неа. Па во случај да не може да се прочита this-- знам дека тоа не е најдобро. Мислев дека ќе се појавиш better-- на начинот на кој се иницијализира променливите е само со знакот за долар, што што сакате да се нарече, а потоа она што сте го доделување. Значи во овој случај, тоа е некои $ var = 3. Значи, ако ние некогаш се користи $ var некаде, тоа само ќе биде иста како и ставање на 3 таму. Во ред? Значи, секоја променлива, само знакот за долар, што сакате да се јавите на вашиот променлива, и што и да сакате да се еднакви. Малку поладна. Помалку да се напише за иницијализацијата променлива, нели? Дали тоа се направи смисла на сите? Само брзо синтакса разлика помеѓу C и PHP. Низи се многу поладна во PHP. Ние можеме да им даде клучеви. Па начинот на кој да се размислува за тоа е дека, ако некогаш сакаше да пристапите на елемент во низа, ни е потребно да знаете Индексот на тоа, нели? Па знаеме дека со C, ние може да пристапите до првиот елемент со правење низа заграда нула, или, ако ние сакате првиот елемент, низа заграда еден. И ако сакаме нешто таму, ние може само треба да iterate преку, освен ако ние всушност не знаеше индексот. Едно нешто што е навистина кул со PHP низи е дека тие се она што ние го нарекуваме асоцијативни. Па ние може да се дружат некои клуч за некои вредност, и ние сме всушност ќе to-- Јас ќе ви покаже како можеме да го користите ова во една секунда. Но во основа, ако некогаш сакаш да се иницијализира низа, како што, имате некои $ низа. Значи на ист начин, тоа е само некои променлива, дека ние сме создавање. Ова би можело да се нарече она што ти сакаше. Ова би можело да биде $ пример. Само уште една променлива. Она што го прави низа е заградата синтаксата што имаме тука. Исто како нормален В. И ние имаат некои клуч за некои вредност. Па key1 оди value1, key2 два оди value2. Овие парови се одделени со запирка, исто како нормален низи. Сепак. Голем. Копчињата се опционални. Вие не треба да ги користите. А ако не, тогаш тоа е само нормално. Прашање? Или, ох. ПУБЛИКАТА: Па, за правото. Каде е меморијата доаѓаат од? Може исто така да биде иста како [Нечујни] и од оџакот? Е тоа што, исто така, со користење на PHP? Како кога сме ги поврзува? ALLISON BUCHHOLTZ-АУ: Со PHP, Ние не имаат тенденција да се грижите за тоа каде нашата меморија доаѓа од. Ние не поминуваат многу време зборуваме за тоа, па тоа не е навистина нешто што треба да се грижите. Па клучеви се опционални. На ист начин, ако не сакате да се направи овој поврзани, вие само сакате нормална низа каде низа нула е прв елемент и низа е вториот елемент, можете да го направите токму како што би во C. Имаш некои променлива која ќе биде вашиот низа, и изнесува овие загради тука. Да. ПУБЛИКАТА: Дали тоа имаат истата точка за нотација. Како, што можам да направам како низа ++, и дека укажува на вториот. ALLISON BUCHHOLTZ-АУ: Можете да do-- Па, може да има некои iterator, јас, што можам да направам ++ и направи спектар на i во ист начин. Но, тоа е тоа. Значи, како во овој случај, низа од 1 би изнесувала 20. Ист вид на индексирање нотација. Ова е во основа, само имплицитно работа тука, каде што вели нула, нула до 10, до 1 до 20, 2 до 30. Тоа е само имплицитно клучеви за тоа. Какви промени со PHP е дека сега имаат моќ да преназначаване оние клучеви за го направите она што сакате. Значи едно е тука. Значи имам само неколку примери тука дека јас го напишав за вас момци затоа што се чувствувам како примери секогаш им помогне на повеќе од само апстрактна. Значи, во овој случај тука, ние имаат некои асоцијативна низа тоа е мојот прв име, моето презиме, и јас сум повторувајќи, што е само за сите намени тука ќе се печати на излезот тука. И тоа, вели, во ред. Печати вредноста што одговара на низа на клучните Алисон. И јас исто така може да ви испрати момци сите овој код по класа. Значи, кога ќе ја извршите оваа, што прават мислите дека ќе се случи? Она што се случува да се печати? ПУБЛИКАТА: Вашиот презиме. ALLISON BUCHHOLTZ-АУ: Мојот последен име. Го прави тоа. Овде. Испечатите. Значи, ако ние требаше да се промени ова и ние требаше да додадете некој друг да ни list-- Па да речеме имаме Ема тука, и ние го поврзете вашиот последен name-- Ајде да видиме дали јас ги запишува на ова право. ПУБЛИКАТА: Да. ALLISON BUCHHOLTZ-АУ: Да. ПУБЛИКАТА: Добра работа. ALLISON BUCHHOLTZ-АУ: Прекрасна. Па сега ако имаме тука и сакавме да го најдете вашиот презиме, да го имаат таму. Така што само може да се мисли на тоа како го заменува клучот овде. Сте само замена на индекс. Па тоа ти овозможува да само пребарување преку низа многу полесно. Вие не треба да се знае индекс. Додека овој клуч што го барате за постои некаде во низа, PHP ќе го најдете и ќе се врати вредноста поврзани со неа. Па тоа ви дава многу повеќе моќ со вашите низи. Да. ПУБЛИКАТА: Ако имате две копчиња на исти, тоа ќе ви даде грешка? ALLISON BUCHHOLTZ-АУ: Тоа треба да ви даде грешка, да. Дали тоа се направи малку повеќе смисла за вас момци? И на ист начин, имаме низа тука дека нема никакви копчиња. Исто така ова е синтакса кои можеби ќе сакате да бидат свесни за, бидејќи ќе треба да го користите овој во вашиот pset. Секогаш кога правите ехо, имаш овие цитати, и кога сте се однесуваат на дел од низа, треба да имате овие кадрави загради околу нив. Тоа е вид на досадни, но вие само треба да го направи тоа. Па само нешто да се задржи во умот. Ако сте водење на грешки на, Знам дека ова постои во мојот низа но тоа е фрлање грешки во мене, обидете ставање загради околу неа и тоа треба да работат. Значи во овој случај тука, ова е нормално Ц низа, дека ние сме навикнати. Има три, пет и шест, а ние само сакате да испечатите на првиот елемент, па ова треба да се печати три. И јас се работи на сите овие, па се надевам дека ништо не се промени. Гледаме на дното тука, тоа само отпечатоци од три. Кул. Тоа има смисла за секого? Асоцијативни низи. Многу поладна отколку нормално низи. Ова е why-- Дали Дејвид ти покажам имплементација на PHP на pset6 за време на предавање на сите? ОК. Значи, јас ќе ви покажам. Јас не го знам надвор од t-- ПУБЛИКАТА: Тој минатата недела. ALLISON BUCHHOLTZ-о: тоа беше минатата недела? ПУБЛИКАТА: Да. ALLISON BUCHHOLTZ-АУ: Да. Па правопис може да се направи во како шест линии со PHP, и дел од моќта на тој е ова асоцијативна низа каде вие само може да се вчита секој збор во, и ќе ја имаат еднаква на точно или неточно. И така може да се каже, о. Врати речник на некои зборот, и ако тоа е таму, ќе се врати вистина. Во спротивно, тоа нема да најдете неа, и таа ќе се врати лажни. Значи каков вид на ладно мала работа. Сите во право. Значи тоа се асоцијативни низи. Тие се прилично кул. Јас навистина ги сакате. И очигледно this-- Ах. ОК. Сега тоа е работа. Можеби. ОК. Друга работа. Значи, со еднаквост, само кул работа да се задржи во умот. Со PHP, поради тоа што е динамички отчукува, тип може да се промени во зависност од кога да се стартува, како сте го работи. Јас всушност имаат некои кул примери кои јас ќе ти докажам момци. Но == само проверки за еднаквост по тип жонглирање. Значи, ако имате нешто што е како знак 1 и број 1, PHP ќе ви каже дека тие се еднакви, бидејќи тоа може да жонглирам на видови на две од нив се додека не е еднаков, кој можеби за вашиот случај е во ред. Ако ви треба да се види дали тие се ист вид на вредност и од ист тип, сакате овој ===. И јас не мислам дека имате било какви случај, каде што треба да го користат во вашиот pset, но за многу ви кои ќе одат за да се направи веб-страници за вашата конечна проекти и работи, тоа е добра работа да се знае дека == и === се различни, и тоа е добра Разликата да се разбере. ОК. So. Foreach петелки. Тие се начин да се iterate преку низа. Значи, само се допаѓа низи стана толку многу поладна во PHP, вашиот начин да iterate преку низа, мислам, исто така станува многу поладна и многу помоќен. Така, наместо да се создаде некои за i е еднаква на 0 и што, а потоа ажурирање дека Јас, како ви одат преку, имаме оваа прекрасна foreach циклусот. Значи тука е стандард општо Структурата на овие две. Значи можете или имаат foreach некои низа како вредноста што сакате да iterate како. Значи ова е името на низата променлива која сакате да референца, и тоа е она што го сакате да го нарекуваат во рамките на јамка. Во ред? Значи ова одговара секој елемент на низата, и ја користите оваа вредност, во рамките на овој циклус. Имам пример. Знам примери се толку многу подобро. И така ова е, ако има без клучеви, така што ова е како ако треба само една каде на копчињата се нормални индекси за вашиот низа. Или ова е, исто така, во случај ако немате употреба за клучеви. Ако не им е грижа за копчињата и ти само сакате да iterate преку со вредностите за секоја од тие во она што цел, тоа е во ред. Можете да го користите структура. Во спротивно, доколку постојат клучови, нашите $ Вредност само промени до $ клучните вредност. Па тоа само промени на клучните вредност пар. А потоа ние може да се однесува $ клучните и $ вредност во рамките на нашите јамка. Во ред? So. Пример. Направете го тоа поубаво. ОК. Па ние имаме оваа тука, што имаме некои are-- Можете исто така да создаде низа вака со тоа што некои променлива еднакви на низата со загради, или едноставно можете да го направите заграда. Треба да се направи на заградата, но ова е уште еден начин да го направи тоа. Значи тука имаме некои низа од три елементи на еден, два и три, и ние имаме foreach. Забележите ова кореспондира со низа, дека ние сме процесирањето над, и тоа е она што ние се јавувате секое нешто во нашата низа. И сето тоа се прави е тоа е случува да се печати секоја вредност. Значи, ако ние се кандидира, ќе забележиме дека ние имаат вредност еден, вредноста две, вредноста три. И во истиот начин на кој обично низи треба да бидат од ист тип, низи не треба да се сите бидат од ист тип тука. Така, сега имаме некои INT. Имаме две жици. Така да твојот низи може добие многу помоќен а можеби и малку малку messier, во зависност на начинот на кој сакате да се погледне во него. Па ние може да се промени на она што го сакаме. Ние ги користиме вредност. Тоа е само стандард нешто што го користите. Но, само важно да се знае дека можеме да ова го нарекуваат како контра ако сакаме. И се додека тие се совпаѓаат, Очигледно сите се среќни. Ако некогаш сакате да се кандидира на PHP работи нешто како оваа команда линија знаете ова тука, вие само направете го PHP, а потоа било датотека што сакате да се кандидира. Значи, ако сакате да се плеткаме околу со PHP, и повеќе логика а вие навистина не треба да се види како во веб прелистувачот, вие само може да се кандидира во на командната линија, како што и ехо ќе печати од она што ви се допаѓа. ОК. На друг начин што го имаме е вака. Значи ова е случај каде што можеби сакате да ги користи и клучот и вредноста, Знам дека овие се како супер смислена примери но се надевам дека тие прават тоа малку појасни. Значи тука имаме некои низа повторно, но овој пат, Наместо да има само знаеш дека нема клуч. Имаме клучеви за секоја од нив. Па е ќе биде еден, б ќе одговараат до два, и c ќе одговара на три. И во овој случај, ако ние на овој начин се напише, имаме пристап до двете клучни и вредност за секоја од нив. Значи, кога ќе ја извршите оваа, ние се добие секој од нив. Па тоа отпечатоци од нашите клучеви и соодветните вредности. Уште една кул работа е тоа, и знам изјави како овој не треба клучеви, но секогаш имплицитно има клучен, бидејќи ако не го делегира клучен, се разбира, вашиот копчињата се само вашите индекси или индекси, така што можеме да Секогаш исто така го направите ова еден. Вака. Јас ќе се печати. Значи во овој случај, ако забележите, ние си имаме имплицитна клучеви на нула, еден, и два тука. И на ист начин со овој, секогаш може само да се каже R како вредност, и вие само да имаат пристап до вредност. Вие не се грижите за вашите клучеви, дури и ако вашиот има клучевите, ако не се грижат за нив, вие не мора да треба да ги стави во вашиот foreach циклусот. Дали тоа има смисла за секого? ПУБЛИКАТА: Може само јавете се на клучеви, исто така? ALLISON BUCHHOLTZ-АУ: Да ви целосно да го направите тоа, исто така. Всушност, почекајте. Се издржи. ќе it-- бр Ако сакате клучот, а потоа што треба да направите клучот за вредноста. ПУБЛИКАТА: Додади вредност. ALLISON BUCHHOLTZ-АУ: Да. А вие само никогаш не користете вредност е за сите. ПУБЛИКАТА: Добро. ALLISON BUCHHOLTZ-АУ: Ако само стави нешто таму, тоа се случува да се претпостави дека сте зборува за вредноста, а не на клучот. Големо прашање. Сите во право. Кул. Всушност, се држи. Дозволете ми да се види она што го имам. Значи пред да се влезе во пост и да, јас само сакам да ви покаже момци малку за тоа како тоа е динамички внеле, кој е вид на кул. Ги имам сите овие. Имам како четири примери тука, и јас ќе ви испратиме сите овој код по класа. Значи тука имаме некои променлива а. Тоа е само 1 плус 1, нели? И ние си оди за да се печати она што е еднаква, а потоа имаме некој вид. И некој има било нагаѓања за тоа каков тип тоа се случува да биде? ПУБЛИКАТА: Еден INT. ALLISON BUCHHOLTZ-АУ: Да, тоа е int. Па тоа само ги додава заедно. Тоа е цел број. Сите добри. Значи ова следниот, ние имаме она што изгледа како жици. Кога трчаме ова, мисли, о. Ти си всушност се обидува само додадете работи. Вие само се збуни. Па јас сум само ќе го поправам за вас. Што значеше INT. Знам дека требаше INT. Па ова е еден од начините можете да види, PHP има ум на сопствената. Иако ние експлицитно рече, изглед, овие се стрингови. Мислам на стрингот еден. Но, таа вели дека, ох, но ќе се обидуваш да ги додадете, па мора да значи дека е цел број. Само ми верувате на ова. Така што вели дека тоа е цел број, и ги додава како нормални. Значи каков вид на кул ако си оди да се мрзливи со вашите работи, или сакате да додадете нешто. А голема работа е тоа што, ако мислите назад кон pset2, нешто што е корисник внесуваат, десно, за кои мислиме дека е знак или низа во прв. Сега ние не треба да се експлицитно велат, ох, го прават овој INT. PHP само ќе биде како, о да. Знам дека значеше INT. Глупо вас. Вие не значи стринг. Па во тој случај, сега дека имаме тоа, што Дали ви момци мислам дека тоа нема да го направите тука? Имаме стринг и int сега. ПУБЛИКАТА: Тоа е уште една int. ALLISON BUCHHOLTZ-АУ: Тоа е уште една int. А причината is-- јас ќе се стави повеќе примери, но ова ми е забавно. Причината е тоа го правам е поради тоа што Тоа е како да се обидуваш да додадете работи. Значи, ако сте се обидува да се додаде работи, јас ќе одам да се претпостави, разумно, имате нешто разумно дека можете да го додадете. Јас сум само ќе го направи int, и ние сме само ќе да го додадете, како и обично. А потоа на ист начин, јас мислам дека вие момци го добиете идеја. Ние исто така имаме и оваа тука, што е само знаци, и тоа го прави истото. Тоа е како, можете глупо корисникот. знаете дека сакате INT. ПУБЛИКАТА: Ако се стави писмо, ќе го прават тоа на [нечујни] вредност или не? ALLISON BUCHHOLTZ-АУ: О, тоа е добро прашање. Ајде да видиме. Не бе, се уште е цел број. Така, тоа е малку луд. Ова е само вид на за да ви покаже на PHP понекогаш може да се однесуваат во irrational-- Не тотално ирационално, но тоа би можело да се однесуваме на начин на кој навистина не би очекувале. Значи, кога се двоумите, проверете видови на нештата. Оваа функција gettype може да биде супер корисни. Обично, ако правиш ништо со plusses или било математички оператори, тоа се случува да преземе ништо разумно е само INT. Значи, имаш знак 1, или низа 1, или вистински int 1, тоа се случува да се претпостави дека. Ако сакате да се typecast ништо, тотално може. Вие би можеле да се направи нешто како двојно тука, верувам. И во тој случај, тоа се случува да се каже, ох. Јас ќе го направи ова двојно бидејќи експлицитно рече дека тоа е двојно. Можете секогаш експлицитно направи PHP се направи нешто, но. ПУБЛИКАТА: Чекај, зошто е плус 1 таму? ALLISON BUCHHOLTZ-АУ: О. Таму. Тоа е само ехо. Тоа беше моја вина. Значи, можете експлицитно да го каже да направи нешто на одреден тип, но поголемиот дел од времето, тоа се случува да динамички да одлучи дека за време на извршувањето. Па затоа се случува да продолжи да оди преку и тоа се случува да биде како, во ред. Она што ги прави повеќето чувство за ова да биде? Треба тоа всушност да биде стринг? Тоа треба да биде int? Тоа треба да биде плови? Тоа треба да биде двојно? И тоа ќе одлучи дека за вас. Можете да го присили да стори она што го сакате, but-- ПУБЛИКАТА: Дали тоа го прават тоа побавно? ALLISON BUCHHOLTZ-АУ: Па, Мислам, Ц е многу ефикасен. Мислам дека тоа е дефинитивно побавно, бидејќи има на процесот како тоа се случува. Ц, јас сум скоро сигурно е побрзо. Но, очигледно постои многу кул работи тука дека ние не треба да се грижите. Значи, ако ние сме во потрага преку низа, ние не мора да всушност се создаде некои пребарување преку низа. Ние само може да побара за клучните и PHP ќе се грижи за него. Кул. Страшни. Личи на крајот на мојот примери. Вие момци никогаш не се случува да го заборави тоа. Сте ќе биде како, ох, PHP е само како што мајка која е како не, не, не. Знам што мислиш. Знам дека она што го сакате. ОК. Значи ова е, се надевам, корисни за вашиот pset, барем во почетокот, затоа што сите вие ​​сте за справување со форми и работи од корисникот. Па така постојат два начини на кои ние помине околу инфо со PHP и HTML кога сме поминува меѓу тие две работи. Значи имаме $ _GET, која се пренесува преку URL-то, а ние имаме $ _POST, која се пренесува во пораката тело, и така сметаме дека скриени. Но, едно нешто да се разбере е дека ниту еден од овие се сметаат за безбеден. Ако имате некој кој е зграпчување на пораки случува напред и назад помеѓу вас и сервер, тие се уште може да се добие оваа податоци. Тие само треба да се погледне малку потешко. Тоа не е навистина that-- тоа е само скриени од URL-то. Тоа е сепак во телото на пораката, иако, па ако тие имаат пристап до тоа, тоа е навистина само like-- Тоа е како разликата меѓу нешто се напишани на надворешната страна на плик и нешто суштество напишана на парче хартија внатре. Тоа не е толку тешко да се отвори ковертот и да добијат парче хартија внатре. Готово, тоа би било многу полесно само да читате на надвор. Но, тоа е како може да вид на мисли на овие. Ниту еден од овие се навистина смета за безбедна. Во ред? Готово, навистина не важно за вашиот pset затоа што не си се занимаваат со трговски тајни, но тоа е обично една Она што ние навистина сакал да истакнам, бидејќи луѓето мислам, добро де, тоа е скриен. Тоа мора да биде супер безбеден. Број Тоа не е сигурно. Тоа е само малку помалку несигурни, претпоставувам. Или нејасно. Па ние всушност имаат еден пример. Како што знаете, јас сакам учат повеќе со примери. Се чувствувам како тоа им помага подобро. Значи, имаме неколку едноставни форма тука што всушност, ако вие момци се секогаш збунети за PHP, ова е навистина мал, но php.net е, всушност, навистина добра документација. Јас навистина ми се допаѓа. Го користат за да се подготви за овој делот, па можам да ветеринар тоа за вас. Ова е пример од нив за тоа како _POST $ и $ _GET работа. Единствената разлика помеѓу двете од овие, освен кога информацијата е прикажани, без разлика дали тоа е во URL-то или во телото, е, исто така, она што метод е. Значи во вашиот формулар за HTML-- Ова е многу едноставна HTML форма. Може ли некој да ми каже што го прави тоа? ПУБЛИКАТА: Прашајте за вашето име и возраста. ALLISON BUCHHOLTZ-АУ: Токму така. Значи ние треба некој вид активности. Која ни овозможува да знаат дека тоа е некој акт форма. И она што ќе се случи е, кога ние хит Поднесе, тоа се случува да се јавите action.php, што е она што ова е, и тоа се случува да го наречеме со метод на $ _POST. Значи во овој случај, вашиот информации е скриен. и тоа е само вашето име, некои вид на влез наречен име, некои возраст, влез тип = "текст" дека ние исто така, повик возраст. А потоа ако ние хит Поднесе, Поднесе ќе се јавите action.php. Значи, кога ние всушност го погоди Поднесе, ние знаат дека тоа има објавено, само по себе, и ние, всушност, ќе видите ова во вашиот проблем во собата што се надевам дека ние ќе се да одат низ малку. И сето тоа го прави тука е пост некои superglobal променлива дека ние разговаравме за време на предавањето. И како може да се размислува за $ _POST е дека тоа е само асоцијативна низа. Во ред? Значи ова е некои клучни, ова некои клуч, и без оглед на корисникот влез станува вредност за секој од нив. Во ред? Значи, ако ние требаше да се напише она што оваа низа всушност изгледаше како право откако ќе поднесува формуларот, ние би имаат, ова е нашата _POST $, и некои низа каде што имаме некои име. Да речеме ние ќе дадам име, и тогаш имаме некои возраст, 21. Уо. Така што ова е за сите $ _POST е. $ _POST е само асоцијативна низа, во ред? Тоа само вели, во ред. Кои се работите ние сме побара од корисникот? Кои се променливи дека ние сме минува низ дека ние сме побарале во оваа форма? И тогаш што се вредности кои се поврзани со тоа? Значи во овој случај, ако јас го поднесува со името на Ели и на 21 годишна возраст, тоа е она што $ _POST изгледа како. Во ред? И тоа е она што ова PHP фајл има пристап до. Сите нели? Значи во овој случај, тоа е исто како добивање на било која друга работа од нашата низа. Наместо на индекс во нашата низа, имаме некои клучни. Значи ова се случува да се даде мене на вредноста на главното име. Така што ова ќе биде сојузник, и ова право тука се случува да ми даде на вредноста на $ _POST каде Клучот е возраста, кој ќе биде 21. Си оди за да биде го прават тоа доста. Да, од кои дел? ПУБЛИКАТА: Кога сте биле покажувајќи кон долниот дел. ALLISON BUCHHOLTZ-АУ: Оваа долниот дел? ОК. Значи, да се разбере ова е нашиот HTML формираат, а ние имаме некои метод $ _POST, што е важно. Ова исто така би можело да биде $ _GET, но за оваа намена, ние сме само ќе да се каже тоа е $ _POST. Кога ќе поднесете овој образец, ова е дел од PHP фајл кој се вика. Значи ова PHP фајл сега оди да се изврши со оглед на информациите од нашиот HTML форма. Значи она што го прави е, кога ние хит Прати на нашата HTML форма, тоа ви поминува овој superglobal, што е само асоцијативна низа. Тоа е тоа. Тоа е исто како поминува дека во датотеката. И она што го кажува е, добро, тука е $ _POST. Тоа е вашата асоцијативна низа. Прави со него што сакаш. И ние велиме, во ред. Дај ми вредноста на името, и ќе ми даде вредност на возраста. Значи овие се само копчињата, и тоа е нашата низа. Дали тоа има смисла? ПУБЛИКАТА: Mhmm. ALLISON BUCHHOLTZ-АУ: Прекрасно. ПУБЛИКАТА: Ако треба да поднесете форма не е само пишувам во текот на податоци? ALLISON BUCHHOLTZ-АУ: Да. Mhmm? ПУБЛИКАТА: Зошто имате да се каже дека тоа е int? ALLISON BUCHHOLTZ-АУ: Во овој случај, корисникот е само да го принудува да биде int. ПУБЛИКАТА: Добро. ALLISON BUCHHOLTZ-АУ: Не знам ако, всушност, ќе треба тоа, но за нивните цели, тие одлучија дека тие сакаа тоа да биде int. Тие се само тоа typecasting. Можеби тие го користите како нешто друго подоцна. Ова е само еден фрагмент. Да? ПУБЛИКАТА: Што ако тие ја внеле 12, T-W-E-L-V-E, за возраст? ALLISON BUCHHOLTZ-АУ: Доколку тие се обиде да напишеш дека како int? ПУБЛИКАТА: Да. ALLISON BUCHHOLTZ-о: јас заборави она што го прави. Мислам дека тоа може да се обиде да го конвертирате првиот карактер на int, или да се вредноста и конвертирате тоа, но јас заборавам токму тоа што. Да биде забавно нешто да се напише програма и да се обидат. Направите неколку линии. Добро, така што ова е една од главните работи кои ви се случува да се прави. Одам да се надевам дека одиме преку неколку датотеки од pset со вас момци. Тоа изгледа како ние ќе време, за да можеме да го направите тоа. Но, си оди за да биде прават многу нешта како овој, каде што ќе се поминува работите од HTML форма во оваа форма PHP дека потоа ќе изврши некои сет на инструкции на податоците што се предвидени. Тоа е буквално главното обележје на вашиот pset. Да. ПУБЛИКАТА: Тип = "поднесе", што прави копче на HTML форма. Дали има начин да се јавите дека копчето нешто? Па ќе биде како име = "поднесе"? Или е тоа копче само ќе биде испразните токму сега, затоа што само му го даде еден вид, а не име. ALLISON BUCHHOLTZ-АУ: Мислам дека тоа е само ќе биде празна моментов. Ние дефинитивно може да се погледне во pset, бидејќи ние дефинитивно ќе се гледа во се регистрирате вид на работа. Но, да, дефинитивно да наведете текстот што сакате на вашиот копче. Добро, па SQL. Кога сте купување и продавање на акции, што треба да ги пратите на оние. Па начинот на кој ние се случува да го направите тоа е со SQL, која е само база на податоци. Сфатете го тоа како табела, каде што сте чување на сите овие информации за вашите различни корисници. А вие момци се всушност ќе создаде еден од нив. Тоа е прилично кул. И постојат само четири главни работи што треба да знаете за оваа pset, и тие се ажурирање, така што во основа ажурирање на податоците. Кои се претпоставува дека тоа е веќе таму. Ако тоа не е таму, тоа се случува да го погоди со грешка, па можеби ќе сакате да се провери. И ќе се ажурира on-- јас треба actually- имам време, Јас ќе пишувам на неколку од нив. Јас, всушност, ќе ви даде момци неколку примерок, полн SQL команди, затоа што овие се само главните оние, но можете да ги здружат. Па јас ќе го направи тоа и јас ќе испрати дека до вас со овие белешки. Значи, ако сакате да се ажурира нешто, треба да го кажам она што го ажурирањето и каде сте го ажурирањето. Толку типичен SQL командата ќе биде ажурирање Проект каде што нешто е еднакво на нешто. Или како ажурирање адреса каде проект еднаква на 3, и ова ќе се ажурира на полето за адреса на вашиот кориснички кој има проект на три. Во ред? Значи, ако одите на SQL и W3Schools, тие имаат страшни примери. Всушност, би можел да се повлече некои во малку. А потоа вметнете во, ти си само вметнување на одредени вредности таму. Значи, ако сте се обидува да создаде некои нови влез, па ти си создавање нов корисник, можете да направите вметнете во без оглед на вашата база на податоци се нарекува, и ќе ги имаат сите овие вредности. Тогаш мора да изберете, изберете вредности да ја видите. Значи, ако сте се обидува да се провери да види дали корисникот постои или сте обидува да го дофати специфични информации за корисникот ви се случува да биде со користење одберете. А потоа избришете, мислам, е прилично едноставна таму. Ти си само бришење нешто од масата. И всушност, дозволете ми да всушност се повлече некои примери за вас момци. Ох изгледа, тоа е мојот 61-страница. Значи, ако ние одиме на W3Schools, се надевам дека е повторно. Да, тоа го сакаат. Ние одиме на SQL. Значи, ова е нешто тука. Значи, ова е многу едноставен одберете. Човек, јас сакам оваа функција. Значи, може да имаат Избери некои поле од клиенти. Во овој случај, корисниците се однесува на онлајн база на податоци која што го користите, па без оглед на вашата маса се вика, и ѕвезда само значи изберете сè. Дај ми секој еден. Значи, јас само сакам да ви даде момци неколку примери за тоа каде е оваа. Значи имаме SELECT, UPDATE. Па овде е вид на општата синтакса. Па ажурирање, без оглед на вашата маса име, а потоа во собата е местото каде што сте, всушност, се случува да бидат она што на податоци што го менува. Па ова би можело be-- Да ме направи пример тука. Значи ова се случува да be-- ОК. Па јас создадени малку база на податоци за нас. Ние ќе имаме некои проект, некои година, а некои по име. Значи проект еден ќе биде '15 година, и ние сме само ќе го направи мене. Кој сака да биде втор лице во нашата маса? Никого. Јас сум само ќе го изберете Ема затоа што брзо го вашето име е. Ема, која година си? ПУБЛИКАТА: Која година? ALLISON BUCHHOLTZ-АУ: Да. ПУБЛИКАТА: '16. ALLISON BUCHHOLTZ-АУ: '16. Сте само ќе биде мојата морско свинче за денес. Добро, па ги имаме овие две лица. Всушност, дозволете ми да го направите тоа. Да речеме дека го слушав нејзиното погрешно, и јас всушност, рече таа е една година помлада. Таа е '17. Она што сакаме да го направите тука, ако ние сакаше да се ажурира година Ема да бидат точни користење дека, она што ние би направите е ние би рекол Ажурирање на податоците овде. И, сето тоа може да биде на една линија, но бидејќи јас сум компресирана за простор тука, Одам да се напише тука. И ние сакаме да го поставите. Значи ова е масата ние сме ажурирање. СЕТ се случува да биде она колона или што податоците се ние, всушност, се менува. Она што ние сме менување е година, па ние сме случува да се каже SET година = 16, а потоа КАДЕ ни кажува кој корисник или она што ред сме ние, всушност, ажурирање на оваа. Значи, каде? Имаме две опции овде. Кои се двата? Овие се уникатни, нели? Па нашите имиња се единствени и нашиот проект е уникатен, па што се двете опции за тоа каде би можеле да го направите ова? Ќе ти дадам еден. Ние не можеше да стори КАДЕ ID = 2, или ние може да го направи она што ако одиме од оваа парадигма тука. ПУБЛИКАТА: [нечујни]. ALLISON BUCHHOLTZ-АУ: Токму така. Па ние, исто така, може да се направи име = Ема. И било кој од овие ќе работат. И ние трчаше оваа, тоа би било како, во ред. Ние ќе го промени. Ти си, всушност, 16, па сега вие сте во право повторно. Добро, па ова ќе биде супер корисни во вашата pset каде што можеби некој одлучи да купи 100 акции на Apple, и тогаш тие беа како, само се шегувам. Јас само сакам 90 акции. И така тие ја продаваат 10 од нив, така што треба да се ажурира на износот на акции кои ги имаат. Значи, ажурирање на акции, ажурирање на табелата. ОК. Значи тоа е еден пример таму. Тоа е ажурирање синтакса. Delete. Ох. Вметнете во е другите наши еден. Значи, ова овде е многу сличен. Ние може само да се каже, во оваа случај ајде да додадете некого. Ние можеме да додадете бен тоа време. Ние го правиме вметнете во, и ние сакаат името на нашата маса. Во овој случај тоа е податоци. А потоа ние едноставно сакаат, си оди за да велат вредности, што ви се случува да се направи е, вие всушност треба да бидете сигурни дека имаш нешто за секој ред што сакате. Можете само да ги стави во ред. Значи во овој случај, би рекле 3. Ти си 18, нели Бен? ПУБЛИКАТА: 19. ALLISON BUCHHOLTZ-АУ: 19? ПУБЛИКАТА: 19. ALLISON BUCHHOLTZ-АУ: Вашиот годината '19? Ќе дипломираат во '18, нели? ПУБЛИКАТА: О. ALLISON BUCHHOLTZ-АУ: Дипломирање година. ПУБЛИКАТА: Добро. ALLISON BUCHHOLTZ-АУ: Јас бев како, дали сте веќе планира да земе една година надвор тука? Значи, '18, имаме Бен. Значи во овој случај, тоа ќе оди преку, тоа ќе се создаде нов запис тука. Кул. Не е премногу лошо, нели? Многу од ова ќе биде синтакса за вас момци. Концепти треба да дојде, се надевам, релативно лесно. Синтаксата е единственото нешто што може да биде малку незгодно. А потоа нашиот последен е Избришете, и штом ќе забележите, Силно препорачувам оваа веб-страница. Тоа е одлично. Има еден тон на работи. Значи, во истиот начин на кој имавме некои ажурирање, бришење е многу сличен. Наместо тоа, ние го избришете од податоци. Значи во овој случај, нашиот последен еден ќе се запишам тука. Да речеме дека ние сакаше да ме избришеш. Не можам да пишувам денес. DELETE од она што табела ние сме во, податоци. И таму се всушност три начини ние може да избере да ме избришеш. Вие момци може да ми каже што три начини се, како можете да ми го избришете? ID е еднакво на 1, каде што ID е еднакво на 1. Ние не можеше да стори, каде година е еднаква на 15, или каде име е еднаква на Алисон. Се разбира, постојат само три различни начини, затоа што сите тие се единствени. Обично во вашата маса, а особено во pset, сте ќе треба да се постави еден од овие колумни да биде уникатен. Тоа е веројатно нема да биде некои единствен број број, бидејќи ако have-- всушност, таа всушност може да имате два. Јас не се сеќавам дали тоа ќе те оставам имате две за една иста работа. ПУБЛИКАТА: Тогаш тоа би го промени своето однесување. ALLISON BUCHHOLTZ-АУ: Тоа би. Тоа ќе предизвика однесување кое е неочекуван, што навистина не може да се предвиди. Така да дефинитивно ќе има една колона во вашата база на податоци, која ќе биде уникатен, и тоа е обично можете да го поставите тоа, така што тоа е како единствен проект, и тоа само ќе се ажурира на секои пат кога ќе го вметнете во табелата. Во секое време ќе се создаде нова ред, тоа автоматски ќе прираст и ја даде некои уникатни проект. Така навестување за вашиот pset. ОК. Така што е SQL. Па сега ние ќе се зборува за самиот последното нешто што ги врзува во всушност прилично добро со вашиот pset, дали тоа ќе одиме напред. Па MVC, модел поглед контролер. Ова е навистина само еден начин да работи организирани. На ист начин со C бараме од вас момци да се создаде функции и одделни нешта , ова е само начин да се издвојат код кога правиш веб развој. Па тоа го прави работите многу поелегантни и поедноставен, и ова е всушност начинот на кој дека вашиот pset е, всушност, постави, па дали ви се допаѓа или не, си оди за да се научи, дури и ако не мислам сте го учат. И една работа е, исто така ви овозможува да се направи многу повеќе како корисник соработка. Значи, кога го зеде CS50, направив веб-сајт за мојата конечна проект, а јас бев како, јас ќе се справи со база на податоци работи. Ќе се направи задниот крај нешта, и мојот цимер кој Бев земајќи со него беше многу artsy. Таа го прави сценографијата, и таа сакаше да се направи сето тоа е убаво. Па јас сум како, во ред. Можете да се грижи за сите пред крајот нешта. И она е, како што ќе видиме многу наскоро, тој модел поглед контролер ви овозможува целосно одвои код, така што би можеле да работат на спроведување на нашите страници, и манипулирање со информации во нашата база на податоци, а таа само може да се направат работите убава, а и двајцата сме навистина среќни, затоа што ние мора да го направи она што обајцата сакаа и ние не треба да се занимаваат со другиот. Па ние дружевме заедно. Ние сакаме да се закачам. Јас едноставно не сакаат да се справи со сите CSS и HTML нешта. Јас бев како, ќе го прават тоа прилично. Јас ќе се справи со базата на податоци. Значи ние треба ова навистина кул, голем малку маса. Сакам маси. И во основа, моделот може да се се размислува за е само вашата база на податоци. Јас бев модел лице за мојот проект. Сето ова е за чување на информации и организирање на податоците. Така, тоа е она што сакаме да се јавиме крај. Па вие момци ќе се занимаваат со SQL база на податоци и датотеки со податоци. Тоа е вашиот модел. Вашето мислење, како што може да мислам, вид на прави смисла, е она што вашето корисничко го гледа. Тоа е корисничкиот интерфејс. Тоа е дека пред се соочуваат со компонента. Значи тоа е она што мојот цимер требаше да работи на цело време. Таа беше супер среќна. Значи тоа е сите на HTML, и има многу малку PHP. Ако сте само зборуваме за она што се прикажува на корисникот, ние зборуваме за хипертекст. Ние зборуваме за тоа како изгледа. Ние не зборуваме за логика, или услови, или какво ли не. Сето тоа добива ракува од страна на контролорот, во ред? Така што се справува со барања на корисникот и добива информации. Значи едно нешто што треба да знаете за вашиот pset е дека, во вашите ставови, нешто што е, всушност, прикажување на информации Никогаш не треба да се прави повици кон вашиот модел. Сето тоа се постапува во вашиот контролер. Вашиот контролер е оној посредување помеѓу овие две. Дека ќе побара од моделот за одредени информации. Тоа може да iterate во текот на овој информации, дознаам она што всушност треба од тоа, што да правам со него, и тогаш тоа ќе помине на само информации што ви треба да го видите за да го испечатите надвор или се прикаже на корисникот, во ред? Бидејќи гледаме видите како што се соочува на корисникот, па тоа ќе биде многу полесно за нив да дознаам, ох, ако сте прави некои повик за вашиот модел а ти си прашува за сите корисници кои започнуваат со буквата А, а ти правиш дека во вашето мислење, секој кој може да го видите вашиот веб-страница потенцијално би можеле да пристапите до тоа. Вие не мора да сакаат тоа. Вие не сакате луѓето да се види повеќе во базата на податоци од она што тие треба да се види. Само нивните специфични параметри. Па контролорот се справува со сето тоа. Значи сите ваши .php фајлови кои ќе видиме може да сметаат дека вашиот контролер датотеки. И тоа е каде си навистина се случува да биде прашува за работите од вашата база на податоци, и процесирањето или манипулирање тоа што е потребно пред полагање неа за да се гледа. Тоа е навистина кул pset, во моето мислење. Мислам дека тоа е малку повеќе како инстант задоволство, затоа што имплементира многу малку ситни работи, и секое нешто треба да работат на своја сопствена. Не се допаѓа, стори сé што е а потоа се види дали таа работи. Како и со софтвер каде сте како, јас сум навистина надевајќи се дека ова е право, затоа што ако тоа не е, постојат многу става тоа би можело да биде во ред. Сите во право. Само што си сигурен дека реков сè што е потребно да се каже за MVC. Да. Кул. Значи во CS50 финансии, имаме нашиот модел, како што јас само рече тука. Тоа се случува да биде MySQL и phpMyAdmin. Јас дефинитивно може да се повлече оние до толку вие момци добие шанса да се погледне во него. Како што реков претходно, тоа вашиот SQL база на податоци делува како вашиот модел, и можете да испратите она што ние го нарекуваме прашања, кои се само овие видови на нештата. Тие се нарекуваат пребарување. Ова е прашањето, каде сте само барајќи од вашата база на податоци за нешто, или сте менување на вашиот база на податоци на некој начин. Тоа е се што е. И да го направите тоа со функции ние ви даде тука. Вие исто така може да манипулира ги со рака преку phpMyAdmin, која ние дефинитивно може да ги погледне. Ќе се создаде примерок база на податоци со вас момци. ОК. Значи, контролорот. Значи во овој случај, ако известување, ова е за сите PHP. Забележите дека е вид на вашиот Главната работа на вашиот контролер е тоа што треба да биде главно PHP. Ако имате HTML во вашиот контролор, не се сосема сигурни што се случува таму. На ист начин како што реков, ако успеваат да [нечујни] со HTML, Јас сум вистински заинтересирани. Значи она што го имаме тука е имате некои пребарување. Барањето е функција која ние изградена за вас момци. Тоа е како да се направи обвивка прашања до вашата база на податоци е малку полесно. Ако не го имаат тоа, синтаксата за всушност да разговараат со вашиот SQL база на податоци ќе бидат различни, па ние само да го дадат за вас момци. Ние сакаме да го направи животот лесно. Значи во овој случај, може да ви момци да ми кажете што оваа линија е тоа? Избери * од некои маса. ПУБЛИКАТА: Изберете сè, од оваа табела. ALLISON BUCHHOLTZ-АУ: Токму така. Така, тоа е велејќи дека, дај ми сè, од оваа табела. И тоа е тоа чување во некои променлива резултат. И ова вели, ако резултатот не е еднаква неточно, тогаш го правиме секој од ова. Значи, ако нема ништо тука, ако вашиот маса е празна или едноставно не постојат, тоа се случува да се врати лажни. Значи во овој случај, ние сме само правење сигурни дека нешто не е, всушност, врати за нас. А потоа тука, имаме нашата голема foreach циклусот дека ние сме процесирањето над нашите резултат на тоа, и ние сме нарекувајќи ја ред, и ние велиме направат овој шаблон каде што вашите податоци е овој резултат. Во ред? Па тоа е само обработка редот на резултатот. Инаку, таа вика. Значи, ова е пример на контролорот. Како што гледате, ова е само place-- Да, жалам? ПУБЛИКАТА: Зошто постои на симболот пред ред? ALLISON BUCHHOLTZ-АУ: На симболот пред ред. Ние сме само процесирањето. Тоа е, исто така, на адреса of-- ПУБЛИКАТА: Значи тоа е како C референцирање. ALLISON BUCHHOLTZ-АУ: Тоа е што си сигурен дека ти си, всушност, менување на оригинални и не копија. Тоа е на ист начин со C каде ние сме поминува со повикување тука, само за да бидете сигурни. ПУБЛИКАТА: Дали тоа не == наместо да не = во PHP? ALLISON BUCHHOLTZ-АУ: Тоа не е ==. ПУБЛИКАТА: Бидејќи е еднаква во C е just-- ALLISON BUCHHOLTZ-АУ: Тоа не е само =. Да, бр. Тоа не е ==. Бидејќи == во PHP проверки за еднаквост со Вклучувам, готово, но екстра квалитет. Значи, тоа не е == во PHP. Тоа е една од малку синтакса разлики. Да. Значи ние сме само процесирањето преку секој ред, и ја даде, ако вие момци се чита преку вашиот спецификации, е само некоја друга функција која е всушност, се случува да се процесира сите HTML и го прикаже во вашиот веб прелистувач за вас. ОК. Значи, ние сакаме да мислиме на вашиот контролори како што се справува со бизнис логика. Како што гледате тука, ова е местото каде што ние сме преземање на нашите податоци од табелата, ние сме го обработка на некој начин, а потоа ние сме го поминува надвор. Кога ќе го прават некои дефиниција, некои дефиниција е наше мислење, и ние сме го поминува само податоците што треба да се добие. Не на сите податоци. Само податоците што сакаме да се добие. Во ред? Основа на податоците по обработка. Значи ова е на поглед, ова е збирот дефиниција што ги имаме, и сето тоа го прави е да, може да се имаат малку PHP во вашето мислење. Тоа не е како не PHP во погледот. Вие само треба да имаат многу минимален PHP во поглед, и никогаш не треба да биде доведување во прашање во вашето мислење. Вие никогаш не треба да се зборува до вашата база на податоци во вашето мислење. Тоа е голема разлика. Значи она што се случува тука е, мораме PHP дека е процесирањето преку ред. Значи во овој случај, бидејќи бевме процесирањето преку секој ред и рендерирање нешто, ова беше веројатно како две димензионална низа каде што имаме некои ред , само по себе, низа, бидејќи ние сме процесирањето преку него повторно. И ние сме само печатење името на ред, а потоа ја завршите. Вие не треба да треба ова во foreach. Никогаш не сум видел дека пред всушност. Јас само го направи foreach. Добро, па тоа е погледот. Ајде да видиме дали можеме да одиме преку малку од вашето pset. Имаме 15 минути, па јас сум сигурен дека момци би сакал повеќе од само завршува рано. Дозволете ми да видам дали можам да обелоденам ова. Па не знам колку од вас момци се симне и какво ли не уште, но ние имаме корисничко име тука, и ние имаме некои лозинка. И, за жал, право сега базата на податоци е празна, па ние всушност треба да се создаде база на податоци. Па, тоа е чудно. Не очекував тоа. Технички грешки. Технички тешкотии. Имаме некои pset7. Кул. Значи, една работа што можете да направите е, со на query-- Ќе се создаде маса. Така што ова ќе биде users-- што можете да го направите тука е, ако имаме some-- Навистина сега? ОК. Очигледно јас не правам толку жешко. Ох. Јас знам зошто. Бидејќи никогаш не сум создаден мојот вистински маси. Значи, кога за првпат на проектот со база на податоци, ти очигледно треба да се одлучи што се работи што мора да се има тука? Значи, ако ние само одиме надвор нашите податоци маса тука, имавме некои проект, кој само да остане на INT. И ако ние се погледне во текот тука, има кул работа that-- Така индексот. Ако го направите основно, тоа ќе го направи тоа Она што вашата маса е организирана од страна, а исто така ќе се направи уникатен. Значи во овој случај, ние ќе го направи тоа основното, а јас ќе одам да се направи ова име, тогаш ние само ќе го направи varchar на како 26 букви, затоа зошто да не? И тогаш можете да одите да се спаси, а потоа ако видите, ние имаме некои корисници тука. Значи, ако сакаме да се направи една вметнете, ние може да го направи на овој начин, или ако си сакал пракса со вашиот queries-- О момче. Не сум користел ова засекогаш. Ја користам оваа назад. Можете да ги менувате тоа на свој или само со рачно внесување на информации со нешто како, може да се промени било која од овие ако си сакал да make-- Ако сакате да одеднаш се ослободи од името, може да се намали, можете да го направите сите овие работи. Ако треба да некогаш рачно промените вашата маса, Препорачувам да го прави во phpMyAdmin наспроти обидот да дознаам на SQL прашања во целина. Кога за прв пат да почне вашиот pset, ви се случува да треба да работат овде, па се навикнеш на тоа. И тогаш кога навистина сакаш да вметнете нешта во вашиот table-- Јас навистина се прашувам каде што е, бидејќи there's-- Еве го. Тоа е она што сакав. Значи, ако одите на SQL, што би можеле да всушност гледаат, како што гледаме тука, имаме SQL queries. Значи, ако сакавме да изберете нешто или ако сакаме да се вметне нешто, можеме да направиме вметнете во корисниците, нели? Мислам дека ви треба обратна коса црта. Една работа е да се знае е, ако сте некогаш со користење на овој, што треба да ги користат овие назад апостровите, кои обично се, ако сте на Mac, веднаш над табот. Така добра работа да се знае. Можете да вметнете во корисниците, и ние имаме вредности, нели? Значи имаме вредности и нашите вредности во овој случај само ќе биде, имаме само еден проект, па ние може да се направи една, ако сакавме. Тоа е чудно. ОК. Па тоа е исто како и краток мала работа со SQL, но тоа би можело да биде повеќе корисни за да всушност се погледне во некои од фајловите тука. Па оди Преземања. Ох, не Преземања. Значи, само еден брз Можи на она што е во секоја од овие директориуми. Тоа вклучува, ние само треба нешта кој го конфигурирате вашиот интернет пребарувач, имаме овие константи, и ние имаме овие функции. Ако сте заинтересирани за некој од нив, Препорачувам да гледа во функции. Еден од нив, кој е супер корисни, всушност е ова тука, депонија. Значи, ако го користите овој, тоа ќе всушност само печати она променлива дека ви се допаѓа да. Значи, ако имате проблеми да пронајдат што оваа низа изгледа, или она што овие податоци, всушност, како е форматирана, ова е одличен начин да се постигне. Особено кога имате корисник со повеќе акции, ова ќе биде нешто големо за употреба. Бидејќи тоа би можело да биде formatted-- Знам барем за мене кога јас не ова pset, тоа е форматирана на начин дека јас не сосема да се очекува. Па јас се обидував да iterate во текот на тоа и се обидува да го манипулираат, но јас навистина не се разбере она што го правев. Значи, ако сте само да го шутнат, тоа ќе печати ја на прелистувачот, и може да се види точно како е форматирана. Тоа обично ќе го испечатите како низа со своите клучеви и неговите вредности. Па тоа може да помогне таму. Таа, исто така може да помогне да се направи Осигурајте се дека сте всушност грабање на податоци кои си мислел сте биле. Значи, ако беа како, мојата маса дефинитивно вели дека постои корисник со овој проект, но кога ќе одат да шутнат на променлива, тоа не е таму, очигледно знаете дека е каде грешка се случува да биде. Ова е еден од најдобрите алатки за дебагирање, во моето мислење. А потоа, тука е неколку други работи тука, но во најголем дел, тоа е еден Сакам да привлече вашето внимание на, поради тоа што е многу корисна. Јавноста, она што го имаме тука е, ова е сите наши CSS нешта. Значи, CSS, фонтови, нашите слики, какво ли не. Ова е за сите работи кои вие не мора да се менувате. Може да ви момци се размислува за ако овој има нешта како CSS во фонтови, ова ќе биде модел, или во поглед на, или контролор? ПУБЛИКАТА: [нечујни] ALLISON BUCHHOLTZ-о: тоа би биде повеќе од поглед, нели? Ова е обработка на сите работи, како работите изгледаат. Значи, ако ние се отвори овој тука, можеме да видиме дека сите што се случува овде е ние сме рендерирање нешто. Во ред? Значи ова би многу се квалификува како поглед за ова. Така што ова е само земање на некои, тоа е повикувајќи некои portfolio.php што ги имаме, а тоа е донесување во насловот и портфолио. И тоа е само рендерирање тоа. Всушност, јас земам дека назад. Ова е контролор, бидејќи направат, се сеќавам, го прави погледот. Па portfolio.php во оваа случај ќе биде вашето мислење. Жал ми е, момци. Portfolio.php ќе биде твојот поглед, и ова ќе само биде вашиот контролер за тоа. И ако ги погледнеме во овој последна тука, шаблони, шаблони се сите ваши ставови тука. Па ако гледаме, очигледно гледаме многу на HTML тука. Така што ова е само ви покажува она што на страната за логирање треба да изгледа. Ќе забележите имаме некои форма групи, имаат достават. Еве како можете да одлучи што се прикажува таму. Имате некои копчето тип = "поднесе", а потоа имате она што сакате да се прикаже во копчето. Значи тоа е тоа како ќе се направи тоа се појави како што сакате. И можеме да видиме тука имаме некои корисничко име, некои лозинка, и кога ние всушност хит Поднесе, тоа се случува да биде некој пост, и тоа се случува да ја објавите на што? Што е контролер за ова гледиште? Кога ќе се погоди Поднесе, она што се случува да се нарече? Да знаеме? Тоа е право тука, па login.php. Нешто што момци се ќе се имплементира. Така што секогаш може да се каже она што се случува да биде распишани откако го погоди Поднесе со оваа прва линија тука. Што форма акцијата е. Кога оваа форма се доставува, каква акција да се земе? Ние го нарекуваме login.php, а ние го нарекуваат со овој метод на пост, кој има скриени информации. Во ред? Значи ова е вашето мислење, а потоа очигледно ако отидовме login.php-- Дали ние го имаме уште? Да. Така како што гледаме тука, овој има многу повеќе логика. Тоа е сите наши PHP тука. Ние се обидуваме да се види дали тоа е $ _GET, ако тоа е $ _POST, проверување работи, доведување во прашање, сите овие работи. Па оние кои се само три различни нешта овде. вие не мора да се променат работите. Ќе биде создавање на работите во дефиниција, можеби, но колку што се HTML или стил на било кој од ова оди, можете да го оставите како обичен или како сложена како што би сакале. Некои луѓе се навистина во неа и направи некои прилично страшно веб-сајтови. Вие не треба да го стори тоа. Ако имате време, тоа е навистина кул нешто. Можете да се плеткаме околу со CSS и HTML и ќе добиете многу подобро чувство за тоа, но не се чувствуваат под притисок да. Има многу за вас да се направи на задниот крај со спроведување најавите, и да се регистрирате, и сите од овие работи. Па се надевам дека помага малку. Дали ви момци имате било какви прашања за ништо што сум качил над, било други ресурси? Јас дефинитивно ќе испрати сите мојот пример PHP код да ви момци, и тогаш се чувствуваат слободни да се земе слики или какво ли за тоа. Исто така тоа е онлајн. Секогаш може само да се види повторно. Значи, ако тоа е тоа, секој добар? Да. ПУБЛИКАТА: Јас само сакам да се потврди, кога сме прават изберете во SQL, на ѕвезда значи сè, нели? ALLISON BUCHHOLTZ-АУ: Да. ПУБЛИКАТА: И тогаш, ако немате ѕвездата, ако сакате тоа да се земе од одредена ред, а потоа само се стави името of-- ALLISON BUCHHOLTZ-АУ: Името на ред и она што го сакате сакате вредноста на. ПУБЛИКАТА: И тогаш датумот. ALLISON BUCHHOLTZ-АУ: Што сте во потрага за, да. На ист начин, ако го избришете * од некои маса, тоа ќе ги избришете сè. Значи, * е само дива картичка за сè. ПУБЛИКАТА: Добро. ALLISON BUCHHOLTZ-АУ: Кул. Страшни. Добро, имаат голема Понеделник, момци. Ќе се видиме следната недела. Среќно на вашиот pset.