SAM LEVATICH: Mirë se vini në seksioni për këtë javë. Unë nuk jam Andi. Andi ka rënë i sëmurë sot, dhe unë kanë qenë lloj i quajtur në minutën e fundit për të marrë përsipër. Është e sezonit të gripit, prandaj sigurohuni që ju të janë duke qëndruar të pastër, të larë duart tuaja, dhe ushqim të shëndetshëm në mënyrë që ju, gjithashtu, nuk janë dergjur. Por pa më tej ado, le të ketë filluar. Sot, ne jemi duke shkuar për të folur në lidhje me PHP pak bit-- si PHP ka të bëjë me HTML, si atë lidhet me CSS, dhe disa nga web gjëra që ju bëri në caktimin e fundit. Ne jemi duke shkuar për të folur një pak për SQL dhe se si ju mund të punojnë me bazat e të dhënave, e cila është një komponent mjaft i rëndësishëm i P vendosur 8-- P vendosur 7. P vendosur 7. Dhe pastaj ne do të flasim pak bit për mënyrën se si punojnë kontrolluesit view dhe pse kjo është një filozofi prapa disa faqet moderne web dhe dizajn të ndryshme. Pretty much shumë lloje të aplikacioneve dhe aplikacionet që ju mund anijes janë duke përdorur këtë model, Korniza kontrollues pikëpamje, që ju do të jetë duke përdorur në P vendosur 7, kështu që unë do flasim pak se pse kjo është bërë popullor, pse është e rëndësishme dhe e bukur. Dhe atëherë unë do të në fund të lëvizin për disa këshilla për trajtimin e P vendosur 7. Dhe në qoftë se ne kemi kohë mbetur në fund, ne fakt mund të bëjë disa punojnë në atë së bashku. Pra, PHP. Në fakt, ju mund të keni vënë re this-- ju nuk ka të vërtetë duhet të zhyten në it-- por P vendosur 6 pasur disa PHP Kodi që po ndodhte. Dhe për shkak se PHP është një C-si gjuha, PHP, ndryshe nga HTML dhe CSS, është një gjuhë programimi, kurse HTML dhe CSS janë statike. Ata janë gjuhë markup që kanë të bëjnë me stilin dhe paraqitjen vizuale. PHP është marrëveshje e vërtetë. PHP ka unazore, ajo ka conditions-- të gjitha këto gjëra që është argëtim për C. Ajo ka disa gjëra që janë pak pak më mirë se C, të cilat ne do të shohim, por unë mendoj se mënyra më e lehtë për të folur rreth PHP është vetëm të zhyten në. Kështu që unë jam duke shkuar për të shkuar drejtë në IDE në këtë pikë. Gjëja e parë që ne jemi duke shkuar për të bërë është në fakt duken pak në disa nga Kodi PHP që ishte në P vendosur 6. Pra, mënyra se si ne bëjmë that-- para, mënyrën se si ne u running server për aplikim ishte se ne do të duhet të type-- ose përdorni zbatimin tuaj ose zbatimin e stafit i server.c duke shkuar në directory dhe drejtimin server.c me ose jo argumente të kështu që vetëm e quajti atë mbi host lokale, e cila është ajo që ju ndoshta bëri shumica e time-- dhe pastaj ushqyer atë një directory-- me që të përdorin si rrënjë të saj ku në faqen e internetit do të të jetë e drejtuar, në thelb. Këtë javë për të vendosur P 7, si i madh si kod tonë për server.c është, ka njerëz të cilët kanë tashmë shkruar këto gjëra të bukura gjatë në CS50 që kanë pak më shumë funksionalitetin, një program server që është i aftë që kanë të bëjnë me një pak më shumë nga intricacies që ne do të shihni në të dy P vendosur 7 dhe P vendosur 8. Dhe mënyra që ju filloni deri server është vetëm duke shtypur "apache50." Dhe para se të bëni ndonjë gjë, ju doni të bëni të sigurtë se Apache 50 nuk është tashmë kandidon si ajo është në kompjuterin tim që kam bërë për të provuar atë. Dhe ju bëni atë duke e quajtur apache50. Stop, dhe ju do të shihni se ajo është ndalur web server, në qoftë se ju mund të shikoni atje në pjesën e poshtme të dritares terminal. Dhe pastaj vetëm për të filluar, ne jemi do të thërrasë "apache50 filluar." Dhe pastaj ne jemi duke shkuar për të ushqyer atë një directory. Tani, sepse ne duam të shohim në disa nga P vendosur 6 kodin që ne kishim zbatuar, unë në fakt kopjuar pak P vendosur 6 kodin në dosjen time, të cilat ju mund të shihni në të majtë atje. Ajo që quhet "SECTION8" në të gjitha shkronja kapitale sepse unë jam vetëm aq i ngacmuar të jetë live-Transmetuar sot. Pra, nëse kemi drejtuar këtë, ajo duhet të të gjithë punojnë mjaft efektive. Ajo thotë, në rregull, faqen tonë është tani në dispozicion në adresën e IDE, në thelb, e cila është ajo që ju jeni duke përdorur pikërisht ashtu siç ishte në P vendosur 7-- P vendosur 6. Të gjitha indekset e mia janë një indeks sot. Pra, ne mund të shkojnë në atë adresa, në qoftë se ju do të mbani mend, duke klikuar vetëm kjo pak button në të drejtën e sipërme. Dhe ju do të kujtojnë këtë kod, i cili ndodhi kur shkoi në hello.php. Dhe çfarë kodi është projektuar për të bëni është kur ju të shtypur në një emër here-- qoftë se ju thonë Sam sepse kjo është name-- mia dhe unë klikoni them hello, kur shkuam në faqen tjetër, që emri është dashur të shfaqet. Ajo do të thonë: "Përshëndetje, Sam" ose "Përshëndetje," Çfarëdo që emri vënë në të, edhe pse shkuam në një faqe krejtësisht të re web. Dhe kjo është gjë e tillë që PHP mund të bëjë për ju. PHP është në gjendje të kalojë të dhënat e në mes të dy faqet e internetit. Kjo është një faqe krejtësisht të ndryshme. Ju do të shihni titulli është "hello" këtu. Në fakt, ata kanë i njëjti titull, por unë premtim ata janë web të ndryshme Faqet e nëse ne shikojmë në burim. Dhe ju mund të kalojë të dhënat që është hyrë në këtë fushë të tekstit, ju dërgojë atë të ardhshëm faqe që është duke u thirrur, dhe pastaj që të dhënat është në gjendje të të jetë atje në formën e tanishme. Tani ne nuk e kanë zbatuar ende kjo veten, e cila është ajo që ne jemi duke shkuar për të bërë tani për lloj të merrni një shije për mënyrën se si funksionon PHP, por ideja kryesore është që PHP-- ju mund të lloj të mendojnë për atë si një funksion. Diçka që mund të ju lejojnë PHP nuk është ajo mund të marrë parametrat që ju të dhëna në një faqe HTML nëpërmjet përdorimit të PHP dhe formave, dhe kjo mund të kalojë ato si parametra në faqen tjetër që ajo ngarkesa lart. Në këtë rast, ne jemi ngarkimit deri këtë faqe me "thonë hello" button. Por tani për tani, unë në fakt fshirë disa prej se kodit në hello.php që ishte duke u drejtuar që në fakt është shfaqur "hello, bota "apo" hello, Sam ", ose "hello", çfarëdo që ishte input vetëm. Pra, për tani, ne jemi do të bëni atë, në thelb. Ne jemi duke shkuar për të rikrijuar atë dhe të shtoni disa funksionalitet më shumë, të bëjë pak më shumë me të, shih çfarë PHP është me të vërtetë e aftë të. Pra, së pari, le të flasim për këtë fotografi, hello.php. Pra, nëse ne zoom në një pak bit-- dhe tani unë jam i lloj e duke u përpjekur të lëvizni të gjithë mënyra around-- atje ne do të shkojmë. Ju do të shihni është quajtur hello.php, por sintaksa e saj duket si një skedar HTML. Kjo është për shkak se PHP aktuale në këtë skedë është e mbërthyer në mes të gjitha këto Pyetja bllokon mark-caret. Çdo gjë e drejtë këtu është konsideruar si kod PHP. Dhe ju do të vëreni se kur kam bërë një koment, ju do të shihni të njohur dy përpara ul. Dhe në qoftë se ju do të kujtohet, në HTML, nëse unë lloji një koment, duket diçka më afër kjo, e cila është një koment në HTML. Pra, me të vërtetë çdo gjë në mes këto dy kllapa kënd tani është kodi PHP, e cila pasqyrohet në faktin se këtij komenti simbol të vogël është kthyer në një koment. Pra, çdo herë që ju shkruani kodin PHP, madje në qoftë se nuk ka asnjë Kodi HTML jashtë saj, ajo gjithmonë do të jetë mbyllur në këto kllapa kënd me pikëpyetje. Ju mund të lloj të mendojnë për it-- si të gjithë e kodit që u zhvillua në programet tuaja C është mbyllur në një int kryesor, i pavlefshëm, mbajtëse kaçurrel, fundi kaçurrel deklaratë mbajtëse. Dhe ju do të shihni në formatimin e teksteve kaçurrel PHP, gjithashtu, por kjo është lloj i si metodë kryesore të PHP. Deri tani, si nuk kemi bërë asgjë në PHP? Tani, PHP është një programimit gjuhë që është shumë e C-si, por ajo vepron në web. Pra, një gjë që ju do të immediately-- një nga gjërat e para që ju të vërtetë e bëri me C u ju shtypur sende jashtë, e drejtë? Pra në C ne e bëmë atë me një funksion printf. Ne i patëm dhënë asaj një varg, ndoshta me një linjë të re, dhe pastaj ne ndërpritet ajo me pikëpresje. Pra, mënyra se si ne jemi duke shkuar për të bërë këtë në PHP-- për shkak se ajo nuk është mjaft printf. Kjo është pak e sintaksës ndryshme. Mënyra që kemi shkruar gjëra jashtë në PHP është themi, "Echo përshëndetje" ose "echo" ndonjë fjalë. Dhe kjo ka efektin e të bërit printf me një varg, "hello". Dhe kjo shton linjën e re të saj. Pra, le të tani të bëjë sure-- Unë do të zoom jashtë përsëri pak bit-- le të sigurohemi që që kodi është duke punuar sepse ka fuqi shumë të jetë një bug në këtë kod se ne do të kemi për të trajtuar. Pra, serveri është duke punuar. Pra, nëse ne lëviz përsëri poshtë në fund, Yup, server është ende running. Pra, nëse ne vetëm trokitje e lehtë në këtë e drejtë pak here-- welcome-- ne duhet get-- madhe. Ne ende jemi duke njohur "Thuaj përshëndetje" dialog, por kur unë lloji në "hi", ne do të shohim se teksti "hello" ishte me të vërtetë shtypur, e cila është pikërisht si ne prisnim sepse jehonë në PHP është vetëm si një deklaratë printf. Pra, përsëri në kod, si në P vendosur 6 bëri kodin e shpërndarjes ju janë dhënë bërë atë mënyrë që do të PHP Prodhimi gjë që ju shtypur në në ekranin e mëparshëm? Dhe të lloj shqyrtuar pse ndodh kjo, ne jemi do të shkojnë në index.html, e cila është skedari origjinal, fotografi që tregon deri në këtë ekran me "thonë hello" button. Ju vini re se nuk ka të gjitha gjërat klasike ne kemi ardhur për të presin nga HTML i tillë si këto gjëra, këto tags mbyllur në kllapa kënd, si PHP por pa pikëpyetjeve, që tregon një gjë të veçantë për HTML. Ne kemi titull, i cili është "hello". Dhe ju do të vëreni se si e pamë, titulli është "hello" në të dyja rastet. Le të ndryshojë këtë një të "thonë" vetëm kështu ne mund të dallojë veten ku jemi. Por ne kemi marrë një trup. Dhe pastaj pak interesante është fakti që bit që tregon deri në HTML, është ky element formë. Dhe kështu që ne kemi marrë një formë. Dhe ky është çelësi. Kjo është se si ne jemi duke punuar me PHP. Veprimi parametri i Forma thotë se hello.php është ajo që ne jemi duke shkuar për të dërguar vlerat këtë formular për. Kjo është ajo ku ne jemi duke kaluar parametrat, kështu që të flasin. Ju do të vëreni një tjetër gjë këtu është se metoda është "marrë". Ka dy kryesore metodat me të cilat do të të jetë duke përdorur PHP për të kaluar të dhënat e në mes të faqeve të internetit websites--, rather-- në këtë detyrë. Dhe këto metoda janë "të marrë" dhe "post". Ka disa të holla dallimet në mes të merrni dhe postë se ne do të merrni into-- ne do të "marrë" në, nëse ju do. Por, për të gjitha qëllimet dhe qëllime, të merrni dhe post janë të dy vetëm mënyra se ju të kalojë parametrat me ekzekutimet paksa të ndryshme. Tani për tani, ne jemi duke shkuar për të përdorur marrë, sepse marrë ishte ajo që është përdorur fillimisht në PHP dosjen e P vendosur 6. Dhe në fakt, në qoftë se ne do të shkojmë në dhe të kërkoni para se ne kemi redaktuar asgjë tjetër, Unë jam duke shkuar për të thënë hi to-- çfarë është emri juaj? Audienca: Elliot. SAM LEVATICH: Oh, Zot. Unë nuk e di se si për të përcaktuar atë. Mund të shkruhet se për mua? AUDIENCA: E-L-L-I-O-T. SAM LEVATICH: I-O-T? Audienca: Po. SAM LEVATICH: Perfect. NE RREGULL. I guess unë nuk e di se si për të përcaktuar atë. Me fal per ate. Kurse po t'i themi "Thuaj hello," kjo nuk është kjo nuk do të shfaqen në ekran por sepse ne modifikuar kodi pak. Por nëse ne nuk "Thuaj përshëndetje" - OK, kështu që "hello" është këtu. Por nëse marrim një më afër shikoni në URL vetë, ne do të shohim se ajo mbaron me hello.php? name = Elliot. Pra, kjo është një mënyrë e komunikimi në web faqen tjetër parametrat që ne kemi kaluar. Ne i thamë name = Elliot. Dhe kjo është në fund të fundit si P ngritur 6 arrihen ndryshueshme që kemi përshkuar në nëpërmjet forme. Dhe kjo është diçka që është e veçantë për një kërkesë të merrni. Një kërkesë get bën parametrat i njohur në URL e internetit. Dhe ju do të kujtojnë, gjithashtu, në P vendosur 6 që ju kishte për të shkruar një funksion që merrej me faktin se ky varg pyetje mund të ekzistojnë pas një skedar. Nuk mund të jetë një pikëpyetje e ndjekur nga thelb ndonjë numër të karaktereve. Dhe kjo është pikërisht ajo që po ndodh këtu. Dhe arsyeja që ju është dashur të kuptoj se në zbatim tuaj të server.c në P vendosur 6 është kështu që ju mund të them kodi PHP që emri = Elliot. Ju nevojitet që të jenë në gjendje të kuptoj se nga URL në mënyrë që skedari PHP në fjalë e dinte se çfarë ishte që kanë të bëjnë me të. Kështu që shpresojmë se kjo i jep motivimi për server.c tani që ne jemi duke ecur në jashtë C në PHP. Pra, le të vërtetë të përqëndrohet në të qasjes në gjëra të kaluar përmes një kërkese get tani në këtë pikë. Unë jam duke shkuar për të shpëtuar këtë. Ne nuk ka ndryshuar asgjë. Ajo duket si ne kemi marrë një fushë input. Ne jemi ngritjen e disa prona, si ne mund të bëjmë një HTML. Këto janë gjëra të thjeshta. Ne nuk kemi nevojë për këto. Por ne kemi marrë autocomplete jashtë, e cila në thelb says-- ju e dini, kur ju shkruani gjëra në web, ndonjëherë ajo përpiqet për të mbushur atë në për ju. Pra, kjo është një gjë e bukur. Ne duam ta kthyer atë për këtë qëllim. Ky ishte një vendim CS50. Pra, ne mund të fshini se në qoftë se ne të kërkuar. Automatik vetëm shkopinj kursorin në të djathtë formë në fillim. Përsëri, jo shumë të rëndësishme. Por emri = "emri", - kjo është pak ndërlikuar për shkak se kjo është emri dhe emri. Por ne mund të kemi ndryshuar kjo për diçka tjetër. Dhe në fakt, kjo është çfarë ne do të bëjmë tani. Ne do të themi "njeri", e cila është lloj i si emri i nëse një person është përcaktuar me emrin e tyre. Pra, le të mbyllet këtë, rihap up faqen tonë të internetit që nga serveri jonë është ende running Apache 50, dhe ne do të të thonë: hello, këtu është Elliot përsëri. Pse jo? Përshëndetje. Dhe në qoftë se ne do të shkojmë deri këtu, ne do të shohim atëherë në vend të emrit = Elliot, ajo thotë se personi = Elliot. Dhe kjo është një rezultat i drejtpërdrejtë i faktit që ne vetëm ndryshoi name = "person". Pra, në një element të dhëna të një formë HTML, fushën e emrit është identifikues për parametër që është duke kaluar. Kjo është si në qoftë se ju jeni duke krijuar një funksion "shtoj", që mori në dy integers dhe ju tha se int a dhe int b. Kjo do të jetë emri i një, dhe në qoftë se keni kërkuar një formë tjetër, e cila ne mund të bëjmë vetëm nga kopjimi dhe pasting, atëherë ne do të kemi emrin b. Deri tani ne do të kemi dy parametra që janë duke kaluar nëpër marrë në website-- ardhshëm web faqja tjetër, hello.php. Dhe ne mund të vërtetë shohim se përsëri në qoftë se ne duam. Kjo është mënyra më e lehtë për t'u marrë me kodi web në IDE, në thelb. Ju nisni serverin, të merrni atë drejtimin, dhe pastaj çdo herë që të bëjë disa ndryshime, vetëm afër që skedar vetëm të jetë e sigurt. Shtypur butonin e mbrapa është pak i ndërlikuar për shkak se ajo mund të ngarkesës një më parë version, jo më e përditësuar. Dhe pastaj ju vetëm klikoni tuaj button përsëri, pop drejtë up-- oh, dhe tani ka dy forma. Dhe kështu që nëse ne shkruani një gjë në çdo one-- "hirshhorn Jason," për instance-- ne thonë hello. Ne shohim në parametrat tona. Ajo duket si ne kemi marrë, si pritej, një = Jason dhe b = hirshhorn, e cila përfaqëson dy parametra që kemi kaluar në këtë funksion. Pra, tani le të vërtetë të merrni për të implementimin se funksionalitetin që ne kishte në P vendosur 6. Deri tani ne jemi vetëm duke i bërë jehonë përshëndetje. Dhe kjo nuk është shumë i dobishëm. Ne duam të echo disa ndryshore që u miratua për ne. Dhe ne e dimë emrin e kësaj variable. Ne kemi një dhe ne kemi b. Pra, ne mund të zgjedhin për të jehonë ose një të tillë. Por si nuk kemi hyrë në të? E pra, ka disa Variablat globale në PHP. Dhe unë jam duke shkuar për të shkruar ato në komentet këtu. Dy më të rëndësishmet janë get dhe pas për qëllimet tona tani. Këto janë vargjeve ose, teknikisht, fjalorë ku variabla tanë që ne jemi duke kaluar në nivelin e ardhshëm jetojnë web faqe. Dhe ne së shpejti do të shohim se si të përdorin ato. Një tjetër shënim të shkurtër në lidhje me kodin PHP dhe disa specifikat e it-- në C, të deklarojë një ndryshore ose për të përdorur variabla, ju së pari është dashur të deklarojnë ato. Dhe çfarë ju duhet të bëni kur ju deklaroi tyre ishte të themi int A ose char b. Ju kishte për të deklaruar llojet e këtyre Variablat para jush krijoi ata. PHP-- ju nuk keni nevojë të bëni ndonjë nga se. PHP nuk kërkon lloji i variablit. Dhe mënyra që ju të krijojë një variable-- mjaft se duke thënë se int, char, string-- e cila është me të vërtetë char *, si ne vet e dini, në vend se duke bërë të gjitha se, për shkak se çdo gjë është i të njëjtit lloj, typeless, ne mund vetëm përdorni një karakter, i cili është shenja e dollarit. Dhe ju do të shihni se është tashmë popping up, pak gjëra autocomplete. Dhe kjo është thënë se _GET dhe _POST dy opsione që unë kam në dispozicion për mua. Disa nga këto gjëra të tjera janë variabla të tjera globale në PHP që ju do të përdorni gjatë Kursi i P vendosur 7. Tani për tani ne jemi duke shkuar për të përqëndrohet në dhe të marrë postin. Por kjo është një e dobishme gjë që e bën IDE ku një herë ju keni shtypur në këtë shenjë dollarit, ajo do të fillojë plotësuar variablave globale ose variablave të keni përcaktuar tashmë. Pra, nëse ju të kërkuar për të përcaktuar një ndryshore të quajtur "string" ju mund të krijojë vetëm të barabartë me "hi". Dhe kjo është në thelb aq e thjeshtë sa se. Dhe pastaj ne mund të bëjmë diçka si "varg jehonë $." IDE duhet të jetë hedhur disa gabime në qoftë se unë jam duke bërë asgjë të gabuar, kështu që shpresojmë se unë jam duke bërë çdo gjë të drejtë. Por mete gjithmonë lindin. Një tjetër gjë e ndërlikuar për PHP është se nuk është hartuar. Pra, me programet C, ju do të bëni rutina e përditshme of-- në thelb, ju do të bëjë redaktime për kodin tuaj, ju do të shpëtuar atë, dhe pastaj ju do të e bëjnë atë, ku make ishte hapi që quhet përpilues, tingëllimë, për të bërë kodin tuaj, ky tekst fotografi, në një ekzekutues. PHP është C-si, por ajo është ekzekutuar të fluturojnë me shfletuesin tuaj web. Pra, nuk ka asnjë mënyrë për të ditur. Bëni do të hedhin ato gabime të dobishme, e drejtë? Ajo do të jetë si ju, nuk e deklarojnë këtë variabël para se ju u përpoq për të përdorur atë. Ju e bëri gjithë këtë segfault keq stuff--, segfault, të gjitha atë gjë e fun herë që erdhi me make. PHP është një shpatë me dy tehe sepse ju nuk do të merrni ato gabime, por kjo gjithashtu do të thotë që ju nuk do të dini me të vërtetë çfarë është e gabuar me programin tuaj në qoftë se ju vetëm të drejtuar atë dhe ajo nuk është duke punuar. Por debugger duhet të theksojnë disa gjëra me shpresë të dobishme të vogla sintaksore që ju mund të rregullojmë. Pra, tani, nëse ne do të shkojmë mbi to-- thonë, le të mbyllë atë. Rihap. Dhe ne jemi kthyer në këtu. Pra, ne kemi marrë një ndryshore dhe një variabël b. Dhe këto nuk do të në fund të fundit rëndësi. Ne do të thërrasë ata h dhe g për asnjë arsye të veçantë. Dhe ne thonë hello. Tani ajo duket si vargun tonë "hi" është me të vërtetë shtypje. Ne kemi krijuar një ndryshore të quajtur "string", të vendosur atë të barabartë me "hi". Vini re se ne nuk duhet të bëjmë malloc ose të bëjë një koleksion karakter. Në PHP, sepse variablat janë typeless, një varg është njëjtë si një char për gjitha qëllimet dhe synimet. Kjo mund të jetë "hi". Kjo mund të jetë vetëm karakter k. Kjo mund të jetë një numër 1. Dhe kjo nuk ka kujdes. PHP nuk kujdeset për tipi i variable tuaj. Ose, ajo bën kujdes. Ajo kujdeset kur ju përpiqeni dhe të bëjë gjëra me të, por kjo nuk ka kujdes në hapi deklaratë. Dhe ashtu si ju mund të në C, ju mund të deklarojë strings në rafte si kjo edhe pse duke thënë "pirg" është pak pak e një term i gabuar të mundshme kur është ne jemi duke folur për PHP. Por ne nuk duhet të shqetësohen për këtë. Pra, ne mori vargun tonë "hi", dhe ne jehonë string. Deri tani ne kemi diskutuar variablave. Deri tani ne duhet të flasim për të marrë dhe postoni dhe të kryejë Gjëja e fundit që është e nevojshme për të vërtetë të marrë këtë back up në funksionalitetin e P vendosur 6. Deri tani ne jemi duke i bërë jehonë string, por ne kanë këto variabla të marrë dhe pas. Dhe për shkak se ne jemi duke përdorur metoda të merrni, ajo duket e natyrshme që ndryshueshme ynë që ne jemi të interesuar në të, të dy A dhe B, do të vendosur në vektorit apo fjalor, teknikisht të merrni. Pra, nëse ne kemi ngritur të marrë si kjo me groups-- tuaj unë presion hyj dhe kjo nuk ka si it-- por këtu kemi marrë. Dhe kështu që të merrni tashmë ekziston. Pra, ne mund të fillojë tashmë për qasje disa nga elementet e marrë. Nëse ne do të merrni, kjo sintaksë për Vargjeve në PHP është shumë i C-si. Ne kemi dy kllapa tona katrore. Pra, nëse themi të merrni në një normale grup, ne mund të hyni në indeksi 0, indeksi i parë. PHP është indeksi zero. Ne mund të themi zero, një, gjëra two-- si kjo. Dhe unë kam qenë duke thënë se të merrni është teknikisht një fjalor. Pra, çfarë PHP është duke bërë nën kapuç, i cili është pak nicer se C, është ajo tashmë është duke ju dhënë disa funksionalitetin fjalor, i cili është me të vërtetë tavolina hash, ose përpiqet të, gjoja. Ose, teknikisht atë mund të jetë një provoni si. Por PHP është duke zbatuar një tabelë hash, e cila formon një fjalor efektive. Dhe kështu ne e dimë emrin i ndryshore tonë, e drejtë? Është duke u kaluar në string query nga PHP. Ne kemi një = H dhe b = G ku dhe b janë emrat e variablave. Pra, mënyra se si ne mund të hyni në vlerë që korrespondon me çelës në fjalorin tonë është vetëm duke thënë _GET_GET ["a"]. Deri tani ne kemi _GET ["a"]. Dhe nëse ne vetëm të zëvendësojë brenda Echo ynë, në qoftë se ne jehonë _GET_GET ["a"] - dhe ne do të shohim nëse Rregullues hedh ndonjë gabim rreth this-- ne do të kurseni se dhe të mbyllë këtë. Hapur atë. Pra, ne jemi vetëm duke bërë një të drejtë tani, kështu që b nuk ka rëndësi. "asaj" dhe "atij" - "hum". "asaj" dhe "hum". Duket mire. Dhe kjo shtypur "e saj", e cila është i çmendur. Por kjo është pikërisht ajo po ndodhte në P vendosur 6. Në thelb, ajo P vendosur 6 ishte doing-- Echo hello, name-- ku ajo kishte një Emri ndryshueshme dhe ajo vetëm kërkon që ju të shkruani në atë pak të tekstit. Ka pasur edhe disa Kodi shtesë ku kjo përfshinte nëse deklaratat, të cilat ne mund të bëjmë tani. Ne mund të themi, nëse ekziston, të cilat është një funksionalitet brenda PHP, _GET Me nënvizë, "emri" - e cila në thelb është thënë: "në qoftë se emri ka qenë i mbushur në" sepse ne mund të kemi klikuar vetëm butonin të paraqesë formularin e pa shtypni ndonjë gjë në këtë fushë. Dhe ne të përfundojë atë në tonë formatimin e teksteve kaçurrel miqësore. Ne mund të kemi një deklaratë tjetër. Dhe kjo është e gjitha brenda kënd PHP kllapa, pikëpyetje, kllapa kënd, nëse ju do. Dhe tani ne do të shohim nëse kjo funksionon. Unë mbaj duke pritur për të që të korrigjoj dhe kar jashtë në mua, në thelb, por ajo nuk e ka ende. Ndoshta ajo do tani sepse kam biseduar rreth. Yup. Ajo e bëri, në fakt. Pra, asgjë nuk është duke treguar deri. Kjo për shkak të diçka të gabuar që kam shkruar në kodin PHP. Dhe unë përmendi debugging është i ndërlikuar për shkak se në PHP, ne nuk e përpilojnë atë paraprakisht dhe përpiluesit nuk u pëlqen, këtu është ku gabimet tuaja. Por çfarë mund të bëjmë is-- njerëzit mbaj mend Si të shikoni në rrjet të ndryshme kërkon që PHP-- ose që faqet e internetit dërgoni? [? Malin?] E bëri këtë në leksion një herë ose dy herë. Ju kujtohet se ku ne do të shkojmë për të gjetur borxhet ndryshme dhe 200 miraton, të gjitha këto kodet që janë duke u dërguar përmes HTTP nga web faqe në web faqe? A ka dikush kujtohet ku ne do të shkojmë për të bërë këtë? Audienca: Page Burimi. SAM LEVATICH: Internet burim. Pikërisht. Nëse ju shkoni në Internet Source-- përsosur. Pra Faqe Burimi tërheq lart inspektori. Dhe unë jam duke përdorur Safari. Një shumë prej jush ndoshta do të të jetë duke përdorur Chrome ose Firefox. Por për aq kohë sa ju jeni në çdo browser-- moderne dhe të ndjehen të lirë për të ndjekur së bashku në qoftë se ju dëshironi. Ju mund të shtypni lart këtë kod ose vetëm shikoni brenda P grup 6 Lista për disa gjëra të ngjashme. hello.php është ajo që ne jemi duke punuar në imituar. Pra, ka një shumëllojshmëri të skedave. Ne mund të shohim në të gjitha burimet. Ne mund të shihni kodin burim. Pra, duket si ajo nuk e bëri merrni trupin kaluar në fund. Ajo gjeti një gabim në PHP dhe të ndaluar ngarkimin e tërë web faqe. Ne as nuk kanë fund tag për HTML ose ndonjë gjë. Dhe nëse ne shikojmë në rrjet, ne mund shihni se ne jemi duke u dërguar një kërkesë. Kjo është e domain. Kjo është adresa. Është një dokument. Ne jemi duke përdorur metodën e marrë. Dhe kjo është e kuqe. Ose, ajo ishte e kuqe kur unë nuk ishte zgjedhur atë. Si mund ta Unselect atë? E pra, kjo ishte e kuqe. Më lejoni refresh. Aty ajo është. Tani është i kuq. Pra, kjo është e kuqe, që do të thotë ajo nuk arriti, e cila është e keqe. Pra, le të shqyrtojmë pse mungoi. Pra, të gjitha ato që mund Faqe Burimi në thelb thoni ju është gjë e juaj nuk ka punë, të cilat ne tashmë mund të shohim. Pra, në mënyrë ideale atje do të të jetë një mjet më të dobishme. Dhe ka disa zgjerime shfletuesit që ju lejon të korrigjoj PHP, por ne nuk jemi duke shkuar për të shkruar një ton të PHP, kështu që është ndoshta vetëm më të mirë për të parë përmes kodit tuaj me kujdes dhe vetëm sigurohuni që kjo nuk është bërë asgjë tjetër. Pra, le të shohim nëse formati i kësaj nëse deklarata është ku është problemi. Unë dua të ngarkesës që back up këtu. Përshëndetje, hi. Pra, ka një problem atje. Pra, për sintaksë korrekte e PHP, PHP po shkon të jetë C-si në atë që ju do të shihni sythe. Ju do të shihni nëse deklarata. Ju do të shihni të gjitha këto shokët që ju keni bërë të njohur me gjatë i këtij semestri CS50. Por mënyra më e mirë për të kuptoj se si për të të bëjë diçka në PHP është Google atë ose për të parë disa shembuj të kodit PHP sepse ju e dini funksionalitetin. Ti e di atë që ju mund të bëjë me programin. Ju mund loop. Ju mund loop sa herë që ju dëshironi. Ju mund të lak në të gjitha llojet e mënyra të ndryshme. Ju mund të krijoni funksione. Ju mund të krijoni funksionet që quajmë funksioneve të tjera, funksionet e që e quajnë veten. Dhe ju keni emra për këto koncepte. Keni recursion, unazore, në qoftë se, flukset e tjera të kontrollit. Dhe kështu Google është miku juaj më i mirë. Madje thonë: "PHP nëse Deklarata "dhe aty do të të jetë ton e postimeve me përgjigje për njerëzit e tjerë që kam pasur pyetje të ngjashme me ju, që janë vetëm duke filluar nga me PHP dhe janë kurioz për një gjë të sintaksës. Sepse ne kemi luksin e të qënit në gjendje të shikoni në kodin në P grup 6, ne fakt tërheqë atë dhe të shohim se OK, këtu është diçka interesante. Pra, kjo është ajo që në të vërtetë dukej si në P vendosur 6. Pra, nëse ne do të shkojmë nëpër këtë, ne mund të shohim se ne kemi mori disa nga këto pak Bit pikëpyetje PHP-si. Dhe nuk ka formatimin e teksteve kaçurrel. Nuk janë colons. Dhe ka kaçurrel formatimin e teksteve në PHP, por kjo është një format dhe një mënyrë e të bërit PHP që punon mirë me HTML sepse si ju do të shihni, ne jemi mbyllur off këto PHP bits-- elses dhe ifs dhe të gjithë that-- dhe pastaj ne jemi duke interspersing HTML brenda tyre ndërsa ende duke ndjekur Flow Control përcaktuara nga PHP. Kështu që unë jam vetëm do të shëtitje të shpejtë përmes kësaj sepse kjo është një shumë e njëjtë koncepte që ne ishim duke bërë para. Ne kemi marrë në qoftë se nuk i zbrazët, kllapa, _GET_GET ["emër"]. Kjo është e gjitha të njëjtën stuff. Ne jemi duke përdorur fjalorin _GET që PHP dërgon me kërkesën e formave, sepse ajo është parametrat e veprim, dhe metodë është marrë. Dhe pastaj kjo përfundon se. Zorrë e trashë është një shenjues të vetëm të bëjë këtë në qoftë se në qoftë se deklarata e vlerëson të vërtetë. Është si një mbajtëse kaçurrel. Dhe në fakt, kjo është një mbajtëse kaçurrel në gjuhë të tjera, si Python, që ju mund të hasni në qoftë se ju vetëm të bëjë që për projektin tuaj përfundimtar. Dhe pastaj kjo linjë, përshëndetje. Atëherë ne kemi marrë këtë gjë të pazakontë. Ne kemi marrë shumë kllapa. Nuk ka HTTP there-- apo PHP, sorry. Por ka një shenjë të barabartë. Dhe pastaj ne kemi një funksion, htmlspecialchars (_GEThtmlspecialchars (_GET ["emër"]). Kjo është lloj i si një më shumë version të përparuar të jehonë. Ashtu si ne kishte jehonë, si një mënyrë për të shtypur gjërat në PHP. Ky është një funksion që është përcaktuar në PHP që do të merret me disa më shumë të keqe karaktere dhe vlerat byte që ju mund të kalojë atë. Është gjithmonë më e sigurt për të përdorur këtë. Por jehona do të bëjë punë vetëm gjobë në qoftë se ne nuk jemi që kanë të bëjnë me ndonjë gjë shumë të keqe. Dhe kështu kjo ka të njëjtën Efekti i në thelb, kjo stuff në mes pyetjen Marks është vlerësuar nga PHP. htmlspecialchars kthen një HTML bukur Vlera e shtypur e _GET_GET ["name"], dmth çfarëdo që shtypur në formë. Dhe atëherë ajo do të thonë hello, hapësirë ​​presje, dhe pastaj se. Kjo gjë e tërë mes kllapa kënd do të zëvendësohet nga çfarëdo htmlspecialchars vë jashtë. Pra, kjo është në thelb të ngjashme me atë që ne jemi duke bërë. Dhe ne kemi një deklaratë tjetër që është Hello World, gjë që e bën kuptim. Pra, tani le të kthehemi në tonë Kodi dhe shikoni exactly-- oh. Unë i thashë ekziston, e cila nuk është një gjë që kemi dashur të bëjmë. Ne kemi kërkuar për të thënë jo bosh. Dhe kështu kjo duhet të punojnë pak pak më të mirë, jo bosh _GET_GET ["emër"]. Dhe kjo mbajtëse kaçurrel ndeshjet që mbajtëse kaçurrel. Ne kemi marrë formatimin e teksteve kaçurrel tona këtu. Echo përshëndetje _GET ["emër"]. Le të shohim nëse kjo funksionon pak më të mirë. Ne jemi ende duke serverin tonë. Përshëndetje Jason. Përshëndetje Jason. Dhe ai ka punuar në këtë kohë. Dhe kështu që është një dëshmi që ju mund të vërtetë përdorin formatimin e teksteve kaçurrel që ju dinë dhe dashuri në kodin e PHP në HTML. Kodi PHP ofrohet ju në pset 6-- pset 6-- siguron një mënyrë tjetër e duke bërë që të njëjtën gjë. Deri tani ne kemi fuqinë. Ne kemi funksionalitet të zbatojë kodi PHP që pamë në pset 6 nga vetja, në thelb. Para se të lëvizin në, çfarë janë disa nga pyetje që ju keni në këtë pikë? Po [e padëgjueshme]. Audienca: Pra, në versionin në pset6, kur ju drejtuar atë, ka një hapësirë. Dhe unë mund të shoh se ku hapësira është pas presjes. [Padëgjueshme] start kllapa hapur. Si mund të përfshijnë hapësirën në në mënyrë që ju ka shkruajtur kodet tuaja? SPEAKER: Kjo është një pyetje e mirë. Dhe kështu që le të kuptoj se nga. Pra, kjo është një pyetje me të vërtetë e mirë dhe një që unë nuk e konsiderojnë. Por le të bëjmë atë së bashku. Pra, para së gjithash, çfarë Unë jam duke bërë me jehonë është kur ne vetëm jehonë hello, ajo nxjerr përshëndetje. Nëse ne jehonë tani kjo të marrë në një rast i veçantë line, le të shqyrtojmë se çfarë ndodh. Pra, ne të klikoni këtë. Ne vazhdojmë duke thënë: hi Jason. Pra, përsëri, nuk kemi këtë hapësirë. Dhe kjo është për shkak se, në PHP, kur kemi jehonë, pa marrë parasysh se sa shumë spaces-- Jo, jo V-- pa marrë parasysh se sa shumë hapësira ne kemi vënë në here-- në qoftë se ne tani ngarkesës se përsëri, hi Jason. Po, shikoni, të gjithë ata Hapësirat u ngrënë. Dhe kjo është diçka që funksioni echo bën. Pra, të kujdeset për atë hapësirë, dhe kjo është një nga shkaqe pse ju nuk e përdorni jehonë dhe e keni përdorur htmlspecialchars vend. Unë jam kurioz se çfarë do të ndodhë në qoftë se ne e bëmë këtë ku kemi mbyllur një hapësirë ​​në një varg. Unë nuk jam i sigurt se çfarë sinqerisht do të ndodhë kur unë bëj këtë. Kështu që kjo është një mënyrë. Kjo është një mënyrë për të kujdeset për atë. Në qoftë se ju të përfundojë hapësirën në një varg, atëherë hapësira Do të dalë mjaft mirë nga jehona. Gjëja më e sigurt për të bërë është për të bërë htmlspecialchars. Kjo është gjithmonë bast të sigurt. Por tani ne kemi një mënyrë për të bërë ajo me jehonë nëse është e nevojshme. Dhe në mënyrë të ngjashme, ne mund të Echo linjave të reja, të gjithë Lloj gjëra që ju jeni të njohur bëni në PHP. Dikush tjetër, çfarë janë më pyetje që njerëzit e tjerë kanë në këtë pikë rreth PHP? Nëse njerëzit tregoi deri pak vonë, Unë jam i lumtur për të qëndruar pas pak dhe flasim për disa nga fillimi. Dhe kjo është gjithashtu të gjithë livestreamed, dhe arkivuar, i cili është i çmendur. Gjithsesi, kështu që tani le të bëjmë disa më shumë sende të avancuar me PHP. Dhe një nga gjërat më të hershme të u prezantua në C ishte për sythe. Dhe PHP ka një më të fuqishme për lak quajtur lak foreach. Dhe kjo duket si this-- për çdo bosh si bosh, kllapa kaçurrel, të bërë gjënë. Pra, kjo është në thelb një stenografi. Shih, për lak si një ndërtimi sintaksore u krijua në C dhe në asamble gjuhë dhe gjëra të tilla si. Hartuar në C, pikërisht, si një stenografi për një shumë të llojeve të sythe se njerëzit do të shohin. Ashtu si kur ju ka shkruajtur një lak, atje ishte shpesh një hap initialization ekzekutuar të drejtë në fillim, a kushtëzojnë ku lak do stop-- dhe kjo është tipar kjo është vetëm në një lak, ndërsa, apo që një kohë ka saktësisht vetëm se feature-- dhe pastaj nje hap Incrementation në fund. Dhe kështu që ju do të shpesh e gjeni veten shkruar kodin si në vijim. Unë jam duke shkuar për të zhdukur disa prej kësaj. Por, nëse ne jemi iterating përmes karaktere në një grup, për shembull, si ne kemi mori një grup të karaktereve. Më vjen keq për të sjellë përsëri C. unë e di, keni menduar ju janë bërë. Por kjo është vetëm për qëllime e të mësuarit PHP, unë premtoj. Pra, nëse ju mori një rr char e gjatësisë 8, dhe le të thonë se ai thotë se hellooo me një null zvarritës. I madh, kështu që kjo është varg ynë. Dhe pastaj kemi pasur një për lak. Ne kemi int i barabartë me 0. Dhe ne duam që të dalë kur rr e unë nuk barabartë barabartë me null, sepse ne dalje kur ajo është e barabartë null. Dhe pastaj ne bëjmë unë ++ në çdo pikë në për lak. Të bësh diçka me rr të i. Pra, formula themelore ishte, kemi pasur këtë koleksion që ne donte për të trajtuar si elemente të veçanta. Por ajo që ne kishim të bëjmë është që ne kishim për në thelb të krijojë një numër i plotë më vete variabël që u numëruar deri çdo herë kemi shkuar nëpër lak. Dhe atëherë ne do të duhet të atëherë telefononi strstr [i] kur ajo që ne me të vërtetë të kërkuar për të bërë është thjesht shkoni karakter nga karakteri, e drejtë? Ne nuk duam të ardhura një numër i plotë dhe pastaj të përdorin këtë numër i plotë për të hyrë në çdo karakter individualisht. Ne me të vërtetë duam karakter nga karakteri. Dhe kështu për çdo inteligjente llogarit që për ne. Në qoftë se ne kemi një grup, i cili ne mund të deklarojë në PHP si just-- në qoftë se ne kemi një ndryshore quajtur, le ta quajmë atë grup. Mrekullitë e pa shtypur, kjo është ashtu si çdo variabël tjetër. Kjo është vetëm një koleksion. Dhe ne kemi pak [e padëgjueshme] si 1, 2, 3, vetëm një lloj grup nisur. Kjo është në rregull, ajo nuk i pëlqen foreach tim. Por nëse ne nuk foreach-- fakt I shtypur që një gabim të vogël. Ka dy mënyra për ta bërë një lak foreach. Nuk është në sintaksë dhe si sintaksë. Dhe ne jemi duke shkuar për të bërë në sintaksë e parë, jo si. Ky është gabimi im. Num Pra, foreach në grup, jehonë num. Dhe PHP është yelling në mua për disa arsye. Është gjetja e një e papritur në në diçka, e cila është pak e një shqetësojë. Por ne do të gjej pse kjo është në një moment. Pra, jo si kjo. Le të provoni duke përdorur si. Ajo preferon si sintaksa është duket. Pra, le të bëjë koleksion foreach si num. Pra, një shpjegim pak e asaj që ndodhi vetëm është si sintaksa është saying-- mirë së pari, le të shohim se çfarë kjo printime jashtë. Pra, ne të hapë IDE tonë. Ne do të shkojmë këtu. Ne themi, Përshëndetje Jason. Dhe ajo e bëri 123, të cilat ishin përmbajtja e grup që kemi krijuar deri të lartë. Pra, zhyten në këtë lak foreach, ne kemi një ndryshore të quajtur rrjet i cili është një grup prej tre numra. Dhe atëherë ne jemi duke bërë foreach array si num, jehonë num. Dhe kjo është më shumë intuitive se një për Lop. Ne jemi duke thënë, duke e trajtuar secilin prej gjërat në grup si num, Unë dua që ju të më jepni Num. Dhe kjo është pikërisht ajo që e bën. PHP është llogaritur se kur ju thoni array foreach, dhe ju jeni që kanë të bëjnë me një grup, çfarë ju jeni do të duan të iterate mbi është personazhet në atë grup, është Ints në atë grup, është elementet në atë rrjet. Dhe kjo është duke ju ruani këto variabla si num, dhe num pastaj vetëm prodhimi menjëherë në vend se duke i thënë: Unë kam një ndryshore të quajtur unë, dhe atëherë unë dua të prodhimit strstr [I]. Dhe kështu që na lejon të bëjmë gjëra të ftohtë. Ashtu si në thelb ne nuk kemi për të krijuar këto variabla si unë-së dhe të bëjë të gjitha kjo stuff Incrementation në fund. PHP kujdeset për të gjithë që për ju. Pra, tani le të flasim për foreach si kjo vlen edhe për fjalorin tonë _GET. Pra, ne do të komentojë këtë shpejt. Pra, ne kemi koleksion tonë _GET. Ne kemi këtë variabël. Dhe atë e mori disa sende në të. Tani për tani, ne kemi vetëm një variabël duke kaluar në atë, i cili është emri. Por nëse shtypni Enter, tani ne mund të kemi dy variablave. Ne mund të kemi emrin dhe moshën, për shembull, në qoftë se ne duam që të merrni moshën dhe gjithashtu emri i një personi, në mënyrë qesharake të mjaftueshme. Pra, tani _GET do të jetë një fjalor me dy elemente, me dy palë kryesore me vlerë. Dhe key-- parë unë jam duke shkuar për shkruaj këtë një deri në bord shumë. Ne kemi fjalorin tonë është _GET. Na vjen keq, është është pak e vështirë për të parë. Por brenda fjalor tonë ne kemi emri, e cila do të jetë diçka që ne jemi duke i dhënë. Dhe ne do të kemi moshë, i cili është edhe do të jetë diçka që ne jemi duke e dhënë. Dhe kjo është tërësia i fjalorin tonë. Pra, atë e mori dy elemente në të. Dhe kështu për shkak se foreach sythe janë të zgjuar, ne mund të mendoni, dhe të saktë mund të mendojnë se foreach mund iterate përmes këtij fjalor, shtypje nga vlerat e dhëna me emër dhe moshës. Pra, le të në fakt të bëjë vetëm se. Le të ndërtojnë një lak foreach. Dhe ne jemi duke shkuar për të bërë për _GET si. Dhe ne jemi duke shkuar për të bërë në vijim. Pra, le të shohim se çfarë ndodh në qoftë se ne shkruani vetëm fjalë, dhe pastaj të thonë fjalën jehonë. Ne jemi gjithashtu do të jehonë një linjë të re vetëm për të bërë atë një pak më të qarta, Çfarë po ndodh. Pra, le të shohim. Kjo nuk është dhënë mua ndonjë gabim. Dhe ne do të mbyllim këtë. Në faqen tonë të internetit, ju jeni do të jetë bërë një shumë që gjatë rrjedhës së pset7. Pra, ne themi emri im është Sam. Mosha ime është 45. Nuk eshte. Por ajo printon jashtë, siç pritej, Sam 45. Dhe kështu që ju do të vëreni se çfarë loop foreach did-- këtu, le të kthehemi në atë kështu që është e deri në board-- marrim _GET si fjalë. Kishte katër gjëra në _GET. Por kjo shtypura vetëm jashtë dy gjëra. foreach, duke qenë vetë e saj të inteligjencës, Supozohet se ajo që ne me të vërtetë të kërkuar ishte vlerat, jo çelësat. Por ka një mënyrë që ne mund të shtypura nga çelësat, si dhe, në qoftë se ne të kërkuar për të. Nëse ne të kërkuar të dini se çfarë të këto variabla janë quajtur, ka një mënyrë që ne të mund të hyni në këtë si edhe. Dhe mënyra për të bërë këtë lloj, kështu që ne mund të themi, lejon të vërtetë ndarë atë në çifte kyçe me vlerë. Pra, le të shohim se çfarë ndodh tani. Pra, ne kemi çelësin. Ne kemi vlerë. Ne kemi një tjetër i ri linjë për lexueshmëri. Dhe le të shohim se çfarë ndodh kur ne e bëjmë këtë tani. Unë nuk e di se sa e vjetër Jason është. Jason-së 15. Pra, ne kemi emrin Jason, mosha 15. Pra, ne ishim në gjendje për të hyrë në kyç dhe palë Vlera e këtij fjalor vetëm duke thënë si pika kyçe në vlerë. Dhe kjo është një sintaktik foreach bit sheqer që lejon ju për të hyrë në gjërat në fjalor. Pra, shpresojmë se ky lloj i thekson fuqia e lak foreach. Ju mund të pretty much hedhin çdo gjë që duket iterable, si çdo gjë që ka të shumëfishta Elementet si një grup, si një dictionary-- ato janë dy gjëra kryesore që ju do të punojnë me si në jetë dhe në pset 7. Kështu që ju mund të hedhin stuff në të, dhe ajo do të kuptoj se çfarë doni të bëni me të. Ajo do të thotë: OK, unë jam duke shkuar për të marrë këto gjëra nga të dhënat që u miratua me mua. Dhe kjo është diçka që ju jeni do të jetë duke përdorur një shumë e në pset 7. Unë jam duke shkuar për të lëvizur të shpejtë poshtë vetëm për të parë se ku unë jam në. A njerëz kanë pyetje në këtë pikë? Pyetjet në të gjitha? Po? Audienca: Pra, me kyç dhe vlerë, ju mund të emërojë atë asgjë tjetër dhe ajo do të punojë ende? SPEAKER: Oops. Wow, unë fshihet tërësisht linjë e tërë. Punë e madhe. Pra, një, një. Key dhe vlera është vetëm një konventë. Është e dobishme. Ju do të merrni disa dizajn pikë, ndoshta disa pika stil për të bërë atë, sepse ajo me të vërtetë përcjell qëllimin. Por ne themi një dhe yarp. Audienca: Ju nuk keni për të ndryshojë asgjë në skedar HTML në mënyrë të pasqyruar se? SPEAKER: Jo në të gjitha. Audienca: Dhe kjo vetëm e di se për shkak të barabartë than-- madhe Kryetari: Po. Audienca: tregues --that që that's-- Kryetari: Po. Kjo është një sintaksë foreach, por po. Audienca: Nuk ka lloje. Pra, çfarë nëse do të donit mosha të jetë vetëm një numër? A ka ndonjë mënyrë për të bërë këtë? SPEAKER: Ka shumë mënyra për të parë nëse variabla në përputhje me lloje të caktuara. Pra, PHP kërkon pak më shumë nga ju sepse nuk ka lloje në. Disa mënyra ajo kërkon më pak. Në disa mënyra, ai kërkon më shumë. Sepse në qoftë se ju keni vetëm diçka në një variabël, ju nuk kanë idenë se çfarë lloji është. Por nëse ju jeni i zgjuar në lidhje me variablat që ju të caktojë lloje të dhe të sigurohemi që funksionon vetëm return-- ju dua funksione të vetëm të kthimit një lloj i vlerës kështu që ju në thelb mund të presim që ndryshorja ju merrni mbrapa nga nje funksion do të jetë i tipit se ju mendoni se do të jetë, në thelb. Por ka disa metoda me të cilën ju mund të kontrolloni. Unë nuk e mbani mend ato pjesa e sipërme e kokës sime. Unë jam duke pritur që ajo të kthehet blu. isint? isstr? Ka metoda ndërtuar në PHP që mund të kontrolloni llojin e variablave për ju. Por nëse ju caktoni variabla smartly, ju nuk duhet duhet të bëjë që shumë në pset 7. Por këto metoda nuk ekzistojnë. Dhe kjo është diçka që është në gjuhën e vetë. Dhe unë nuk e mbani mend sintaksë saktë. Ne mund edhe të shohim atë. Por koha është thelbi. A ka dikush tjetër të ketë keni ndonjë pyetje më shumë? Po. Audienca: Unë kam vetëm një më shumë. Pra, ju përmendët metodën GET, por ju nuk e përmend metodën POST. A jemi të vijnë në atë? SPEAKER: Po, ne do të të vijnë në atë. Kjo është pikërisht ajo që unë isha duke kërkuar në telefonin tim, i cili tani ra në gjumë, por unë do të gjeni atë. Vetëm duke u siguruar ne goditi të gjitha shënimet e PHP. Po, nuk ka asnjë version debugging. Po, ne kemi disa gjëra më shumë se ne duam të bëjmë tani në këtë pikë. Pra, duke folur për POST, që ju përmendët, i vetmi ndryshim midis GET dhe POST është që kujtohet kur kemi shikuar në këtë URL e pamë, oh, Emri barabartë me një dhe moshë është e barabartë me yarp jeni të drejtë në URL atje për ne. POST është pak më i fshehtë me kalimin e saj e informacionit. Pra, nëse ju nuk doni një përdorues të dini, për shembull, ju nuk duan emrin e përdoruesit dhe fjalëkalimin e personit aktualisht keni hyrë brenda për të shfaqur në URL, e cila është një gjë e arsyeshme për të mos duan në URL, sepse dikush mund ta shohin atë. Nëse ata lidhin dikë në një faqe, ju nuk duan URL e tyre suvatuar atje, sepse kjo do të lejojnë njerëzit që të identifikoheni vetëm me pasting e një URL në vend e vërtetë të plotësojë një formular. POST është pak më i fshehtë. Dhe vetëm gjërat e që ne do të duhet të ndryshojë janë kjo metodë, ndryshim nga të merrni të postoni. Dhe pastaj brenda HTTP, në vend e qasjes në _GET array, ne jemi duke shkuar për të hyrë në _POST array. Dhe ne do të vini re se, në qoftë se ne kemi hapur këtë përsëri përsëri, Jason ngadalë rënie në moshë. Emër Jason, mosha 14. E njëjta gjëra pops up. Por ne do të shkojmë në URL dhe këto variabla nuk janë atje. Dhe mënyra se POST passes-- kështu që mos harroni Si të shikoni në burimin e një faqe. Ne do të shkojmë në rrjet. Ne refresh. Dhe kjo është një tjetër gjë që POST do t'ju japë paralajmërime rreth. Ju mund të keni parë një kuti, një tekst kuti si kjo në shfletuesin tuaj. Jeni te sigurte qe doni të dërgoni një formular përsëri? POST është ajo e dërgimit të këtyre formave. Sepse në thelb, nëse ju dërguar tuaj kartë krediti informacion për dikë, se nuk do të shfaqen në URL. Kjo do të jetë një kërkesë POST. Pra, kur ju të rifreskoni faqen, ajo resending këtë kërkesë pas. Pra, tani ne duam të dërgojmë formojnë përsëri për shkak se ajo nuk do për të krijuar ndonjë blerje kopjuar. Dhe ne do të vëreni se këtu poshtë, metoda ne jemi duke përdorur është POST. Dhe kjo me të vërtetë ka transferuar bytes. Ajo transferuar 401 prej tyre. Programi është goxha e vogël. Por nuk ka askund që ne mund të shohim vlerat që janë duke u kaluar. Web faqet vetë mund të shihni, por ne si përdoruesit nuk janë në gjendje për të parë, nëse ju jeni një haker. Nëse ju jeni një hacker i mirë, ju mund të shikoni. Nëse ju e dini themelore format e HTML, vlerat do të bëjnë veten të njohur në faqet. Ju do të jetë në gjendje për të parë. Vlerat do të jetë atje, ata janë të vetëm pak më pak të dukshme për ju për qasje, në thelb. A kemi ndonjë më shumë pyetje në lidhje me të merrni, POST më herët, ajo që ne jemi duke shkuar për të bërë tjetër është në të vërtetë shikojmë disa të kodit që ju jeni duke i dhënë në pset 7, flasin për se si ai përdor disa nga këto koncepte, dhe të flasim për gjëra që ju do të ketë të bëjë pak në pset 7. Çdo më shumë pyetje para kësaj? Më shumë pyetje që ju djema keni? I madh. Të gjithë të drejtë, le të shohim pak në pset 7, nuk ka dyshim se çfarë ju jeni të gjitha më i ngacmuar në lidhje. Unë do të thotë, kjo është diçka që David shkon përmes një pak. Por ne do të kemi tre drejtorive në të lartë, si dhe një file i konfigurimit. Kjo është për të bazave të të dhënave, të cilat ne do të mundësitë për të marrë rreth pesë minuta. Përfshin, ju kurrë nuk duhet për të parë në këtë directory në qoftë se ju nuk doni të, por është e mirë për e di se nuk janë të gjitha llojet e ndihmës. Ndihmëtarë është si funksione të dobishme. Dhe pastaj ne kemi config, i cili përcakton disa stuff up. Ka disa funksione që CS50 ka shkruar që janë në ndihmës dhe config. Dhe disa nga PHP që tashmë del në fotografi do të bëjë një shumë të shumë lloj Puna e mpirë këmbën për ju. Ashtu si në qoftë se ne do të shkojmë në publik login.php, cila është ajo që tregon deri drejtë, kur ju shkoni në pset 7. Ne do të shohim se nuk ka kjo kërkojë deklaratë. Dhe kjo lloj si një mprehtë përfshijnë, hashtag përfshijnë në qoftë se ju jeni i një brezi më të ri. Por kjo në thelb thotë se kam nevojë për qasje të gjitha funksionet në config.php. Dhe ju mund të ketë një të kërkojë për të gjitha llojet e gjërave të tjera. config fakt kërkon ndihmëtarë. Pra, sa herë që keni nevojë për config, ju jeni gjithashtu përfshirë ose kërkon ndihmës si. Kështu që ju jep juve akses për të gjithë Funksionet e ftohtë që ne jemi duke shkuar për të përdorur, Gjëra të tilla si bëjnë. Unë jam duke shkuar për të lehtësuar në fakt kjo poshtë pak. Pra, funksionit, atëherë ne jemi do të ecin nëpër vetëm para se të lëvizin për në SQL pak bit është funksion login.php, vetëm sepse ai përdor disa nga temat që ne vetëm biseduar rreth në PHP. Ju shikoni gjëja e parë është nëse $ _SERVER. Ky është një tjetër variabël globale që ju do të jeni të merret me. Është si _GET dhe _POST, por çfarë Serveri përmban po kjo mund të ju lejojnë di nëse metoda kërkesa ishte një GET apo një post. Ashtu si më parë çfarë po bënim është vetëm në kodin tonë që kemi shkruar, ne ishim vetëm duke ndryshuar ajo të jetë GET dhe POST në varësi të asaj HTML ka. Por ka faqet që mund të jetë arrihen me të dy llojet e kërkesave. Dhe ju mund të dëshironi të bëni gjëra të ndryshme në varësi të llojit të kërkesës, ashtu si login bën. Kështu që ju mund të kontrolloni këtë kërkesë Metoda me anë të çelësat qasjen, nëpërmjet përdorimit të një çelës dhe për të gjetur Vlera e diçkaje në fjalor _SERVER. Pra, kjo është një tjetër globale variabël si _GET dhe _POST. Nëse është e GET, ne duam të bëjnë formularin login. Render është një funksion që në thelb vetëm vendos HTML duhur dhe kalon atë disa parametra. Ky titull është një parametër që është të përdorura në shfaqjen, kaq të çuditshme të mjaftueshme, titulli i faqes në pyetje, gjë deri këtu, thonë apo përshëndetje në shembullin tonë të mëparshëm. Tani ne kemi një gjë tjetër. Tjetër në qoftë se është POST, ne të bëjë disa sende të tjera. Ne jemi duke përdorur këtë metodë bosh. Kjo nuk është të ekzistojë, është e zbrazët. Dhe ne pamë më parë, PHP ka një sasi mjaftë e ndërtuar në metodat që Davidi will-- nëse ka janë metoda që janë të dobishme për ju, ata do të alarmuar për ju në shëtitje nëpër që Davidi jep në pasqyrë fillim, dhe gjithashtu copa të dobishme Zamyla së. Ajo është kthyer të gjithë. Ne të gjithë mund të gëzohen. kërkoj falje është një funksion quajtur me vend se vetëm në thelb printime nga disa mesazhe gabimi, sepse CS50 është shumë i sjellshëm. Dhe tani kjo, kjo është një pak i ndërlikuar për shkak se ky është ajo ku ne jemi duke querying bazën e të dhënave. Tani ne nuk kemi biseduar në lidhje me bazat e të dhënave. Dhe ne jemi duke shkuar për në tjetër pesë minuta apo më shumë, maksimale. Por ky është një funksion që CS50 ka shkruar për të marrë një tavolinë në thelb nga një bazë të dhënash se ne jemi duke punuar me të në pset 7. Unë jam me të vërtetë keq me tim zero indeksimit sot. Por po, është 7. Pra query ajo do të kthehet një grup, në thelb është bit kyç. Dhe për shkak se këto gjëra nuk kanë typing, kështu rreshtave është një grup i vargjeve. Sepse kur ne jemi duke menduar për një tavolinë, ajo që ne jemi duke shkuar për të bërë është, siç keni mësuar në psets si lojë e 15, gjithsesi ku ju kishte për të përdorur një array dyfishtë, ne thelb kanë grup të tjetrit Vargjeve bën një tryezë. Dhe ju keni marrë rreshtave dhe kolonave. Dhe pastaj ju mund të përdorni ato si [0] [1], që ju të merrni [0] [1]. Gjëra themelore si kjo. Pra, ajo që ne jemi duke bërë këtu në këtë funksion, ne jemi duke kërkuar bazën e të dhënave nëse përdoruesi që është duke u përpjekur të identifikoheni, që do të jetë dërguar përmes metodës POST. Ne do të shohim ne jemi duke marrë username nga _POST. Ata do të kanë dërguar, përdoruesit apo ju, do të dërgojë një vlerë përmes një formular përmes POST sepse është username dhe password sende. Ne jemi të kontrolluar emrin e përdoruesit për të parë, është kjo në tryezë? Sepse në qoftë se një përdorues është prerjet në, pastaj emrin e tyre duhet të ruhen në tabelën e Përdoruesit që ekzistojnë për këtë faqe interneti. Pra, në thelb, nëse përdorues është në bazën e të dhënave, query do të kthehet që rresht, e cila është një grup. Por pjesë e ndërlikuar është se në qoftë se edhe në qoftë se array dyfishtë është vetëm një rresht, edhe në qoftë se kjo është një rresht një array-- si keni basically-- në qoftë se ju keni marrë një madhësi array që e mban një rrjet, ju jeni me të vërtetë që kanë të bëjnë me një kolonë. Por është trajtuar ende si një grup të dyfishtë. Dhe ky është vendi ku ajo ndonjëherë mund të merrni ndërlikuar, sepse ne kemi marrë rreshtave këtu. Ndryshueshme ynë është rreshtave. Dhe pastaj ne jemi duke krijuar një rresht të ri të quajtur variabël dhe vendosjen e atë të barabartë me në radhën e parë të rreshtave. Dhe ju do të vëreni se koment thotë se është në radhën e parë dhe e vetme. Pra, kjo është e ndërlikuar Pjesa ku tani funksionon mund të kthehen vargjeve shumë lehtë. Nuk është mallocs. Ju nuk do të shihni mallocs. Pra, ju nuk do të shihni gabimet seg. Por funksione do të vazhdojë të jetë duke kaluar rreth vargjeve dhe të dhënave në grupe. Dhe ju duhet të jetë i kujdesshëm për çfarë saktësisht funksionet tuaja do të kthehet. Dhe edhe në qoftë se kjo është një kolona si kjo, query është ende do të kthehen një rrjet të dyfishtë. Pra, për qasjen që column-- ose ju mund të mendoj për të gjithë këtë si përmbysur pasi ne jemi duke folur për rreshtave. Por për të hyrë në atë një rresht, ju nuk mund të them vetëm rreshtave. Edhe pse kjo është një rresht, ju duhet të mos rowsrows [0] në lloj të eliminuar këtë bit jashtme e vektorit dhe kanë vetëm një rresht tuaj. Të bëjë disa gjëra të tjera. Ka një funksion quajtur password_verify që vërteton Fjalëkalimi që ishte postuar. Dhe pastaj ne shohim një tjetër globale ndryshueshme këtu, _SESSION. Në thelb sesion id është se si ju ndiek e në qoftë se dikush është i regjistruar ose jo. Deri tani me login.php, ne jemi duke prerjet një përdorues në. Pra, ajo që ne duam të bëjmë është që ne duam të thonë sesion ID është e barabartë me radhë id, i cili vetëm ka kuptim për shkak se çdo rresht do të ketë një id të ndryshëm Numri i si pjesë e tabelës. Ne do të merrni në SQL në një e dytë, kështu që nëse ndonjë nga këto duket pak si llafe, atëherë të gjithë do të sqarohen. Por, ne jemi duke shkuar për të vendosur id barabartë me gjëja e duhur, prerjet përdoruesit në. Kërkoj falje nëse diçka shkon keq. Dhe kjo është qëllimi hyrje në Jeta si Profesor Malan do të thonë. Kështu që ishte login.php. Dhe një shumë të kodit PHP ju shkruani në pset 7, ata do të jenë pak. Mos harroni të chmod të lejet e duhura. Nuk do të jetë një pak për që në fillim të spec. Por PHP që ju jeni shkrim do të jetë duke bërë gjëra që është e ngjashme me këtë. Ju jeni do të jetë qasjen disa gjëra që janë dhënë për ju në variabla globale të PHP që që kanë të bëjnë me aktuale përdorues të regjistruar, nëse ka kanë qenë kërkesat e dërguara në këtë faqe, gjëra të ndryshme të tilla si kjo. Dhe kjo do të jetë potencialisht iterating nëpër rreshtat e këtij gjë. Në një funksion të ndryshëm, query kthen këtë koleksion të dyfishtë. Dhe në qoftë se ka më shumë se një rreshtave në të, nëse ka are-- po, në qoftë se ka më shumë se një rreshtave në të, atëherë ajo do të jetë një tryezë. Dhe ju mund të dëshironi të iterate nëpërmjet rreshtave të këtij grup përdorur lak foreach që kemi përshkruar. Pra, nëse ju bëni foreach në një të dyfishtë array, çfarë do të word-- këtu, Unë në fakt do të shkruaj atë. Unë do të shkruaj atë të shpejtë këtu. Në qoftë se ne kemi një foreach të rreshtave si rradhë, çfarë është lloji i rresht? A e di ndokush? E kuptove? Pra rreshtave është një koleksion të dyfishtë. Pra, çfarë po foreach do të konkludoj që ne duam nga ky grup të dyfishtë në qoftë se ne jemi duke iterating mbi të? Ne thelb mund të supozojmë se ajo do të jetë ose elemente, ose rreshtave ose kolona, ​​në thelb. Dhe kështu rreshtave dhe kolonave ne mund të trajtojnë si të njëjtën gjë. Në thelb ajo që lak foreach po shkon të bëni është se do të kthehen rreshtave. rresht do të jetë i tipit rresht, ndërsa rreshtave është një koleksion të dyfishtë. Pra, nëse ju jepni foreach një grup të dyfishtë, është nuk do të iterate më shumë se një nivel thellë. E cila është në thelb do të thotë në qoftë se nuk Janë tetë qeliza në këtë table-- 1,2, 3 4, 5, 6, 7, 8-- foreach lak nuk është do të kalojnë nëpër secilën prej këtyre qelizave. Çfarë lak foreach do të bëjë ishte ajo do të kalojnë nëpër këtë rresht, ju jap këtë rresht të tërë. Dhe pastaj do të shkoni nëpër atë rresht. Pra, kjo vetëm iterates një nivel të thellë. Nëse shtoni një mbivendosur foreach loop, atëherë ju mund të trajtojnë çdo rresht kthyer nga rreshtave, ju bëni rresht foreach si element, le të themi. Dhe pastaj ju mund të përsërisnim element. Pra, kjo është një e shkurtër pak përmendore mbi atë se si ju mund të jetë duke përdorur foreach unazore në kontekstin e pyetjes. A ka ndonjë pyetje në PHP? Çdo gjë në të gjitha para se të lëvizin për folur për SQL dhe argëtim të dhënave? Ndjehem mirë? Ndjehem mirë. Në rregull. Le të lëvizë përsëri në PowerPoint, të cilat ju ndoshta humbasë. SQL, yay. Njerëzit të cilët janë në seksionin e mia në mënyrë tipike do të dinë se nenkreret e akronimeve janë gjithmonë vetëm fjalë e para Unë mendoj se për atë ndeshje që algorithm-- këtë akronim. Kjo nuk është një algoritmi. Pra SQL është një bazë të dhënash. Kjo është një gjuhë që punon me bazat e të dhënave. Dhe të gjithë bazat e të dhënave janë të është tavolina, të paktën në mënyrë që SQL përfaqëson ata. Një tjetër mënyrë për të menduar për bazat e të dhënave është Bazat e të dhënave janë një grup i çelësat dhe vlerat në thelb. Ju mund të mendoni për një bazë të dhënash si një fjalor dhe gjithashtu si një tryezë. Në thelb kjo është një mënyrë që të lidhen të dhëna të ndryshme me të dhëna të tjera, shpesh përmes rreshtave dhe kolonave. Dhe kjo është mënyra kjo është SQL punon më mirë. Pra, ky është një shembull i një tryezë. Unë kam marrë disa shembuj të njerëzit në seksionin tim, i cili Unë nuk kam kohë për të ndryshuar. Por ne kemi marrë gjëra të tilla si ID, Emri, superfuqi, dhe qytetin e lindjes. Unë nuk e di se ku dikush është nga në seksionin tim, kështu që unë jam vetëm duke shkuar për të marrë të gjithë është nga Nju Jorku Qyteti sepse unë kam një të lartë statistikore Gjasat për të qenë korrekt. SQL automatikisht do të marrë kujdesit të kolonën ID për ju. Nëse ju futur një rresht të ri në një bazë të dhënash SQL, ajo do të ardhura që Numri i ID dhe vetëm në thelb të rrinë si pesë emra, superfuqi, qytetin e lindjes, kushdo që në fund të asaj tabelës. Pra ID është një kolonë që ju do të kurrë nuk duhet të shqetësohen për. Por, si në rastin e login.php, kur ne po merrnin ID sesion nga një tavolinë dhe vetëm duke përdorur ID, ID është një mënyrë për të identifikuar në mënyrë unike një element i një bazë të dhënash. Pra, nëse do të kishim dy Sams, të dyja i cili mësoi CS50, dhe të dy të cilët ishin nga Milwaukee, ato do të ende kanë numra të dallueshme ID dhe kështu të jenë të dallueshme në konteksti i tabelës. Pra, kjo është ajo që SQL merret me, duke punuar me në fund e pasme. Këta janë katër komandat që ju do të duhet të punojnë me SQL. Dhe unë e hodha gjithë ata në një rrëshqitje. Por, ne jemi duke shkuar për të shkuar nëpërmjet të gjithë ata individualisht. Komanda e para është UPDATE, e cila e bën atë që ju mund të presin. Thonë se ju keni disa të dhëna në tryeza që është nga data. Ashtu si në qoftë se ju jeni duke e mbajtur gjurmët e emrave të njerëzve dhe moshave, nëse dikush është rritjen e moshës, atëherë ju jeni do të duan të shkojnë në dhe rinovuar moshën vetëm atij personi. Për shembull që punon me table-- tonë të parë mos u bëni merak për të shkruarit e të gjitha këto komanda në të njëjtën kohë. Por në qoftë se ju keni marrë përditësimin poshtë, që do të jetë e mirë për këtë pjesë, sepse ne jemi duke shkuar për të kthehemi në tryezë. Pra, nëse ne do të shkojmë përsëri në tryezë, le të themi diçka që ka ndodhur u ka pasur një tërmet apo një linjë faj që u nda direkt nëpër New York City. Dhe ne të kërkuar për të rinovuar të gjithë i cili ka jetuar në New York City. Ata të gjithë kishin për të lëvizur në Pensilvani. Kjo nuk është një qytetin. Ata të gjithë kishin për të kaluar në New Haven. Atje shkojmë. Kështu që të gjithë në Nju Jork lëviz në New Haven. Dhe kështu që kjo është diçka që është redaktimi tre rreshtave në këtë tabelë. Por në SQL, ju mund të bëni që në vetëm një deklaratë. Pra, ne kthehemi për të rinovuar. Më lejoni të shpejtë shuaj këtë bord përsëri. Kur ne jemi duke folur për përditësimin, ka disa pjesë të sintaksës që janë të rëndësishme. E pra, të gjithë e sintaksës është çelësi. Por gjëra në gjelbër është fakultative. Të bardhë janë të nevojshme, emra si të paracaktuara. Dhe blu drita janë gjëra që ndryshojnë në varësi në tryezë. Pra, kjo është ajo që po ndodh me Skema ngjyra këtu, deri atje. Pra, nëse ne duam të rinovuar vetëm ato rreshta e njerëzve që jetojnë në Nju Jork, kështu që çfarë ne do të bëjmë nëse kemi thënë UPDATE? Pra tabelë është ajo ku ne kemi vënë emri i tryezën tonë. Le të them vetëm emrin e tryezën tonë është tryezë një. Pra, ne duam të rinovuar tryezë një. Dhe ne duam të set-- Çfarë duam të vendosur? Pra ne duam të themi, PHP kështu column-- trajton rreshtave si identifikues unik. Dhe pastaj kolona janë fushat e ndryshme e atyre elementeve të dhënave. Pra, elementin e parë të dhënave ka emrin e Sam, superfuqia e CS50, dhe një qytetin e lindjes të Milwaukee. Pra, nëse ne seti, le të shohim në parametrat përsëri që set merr. Ne kemi kolonë është e barabartë me vlerën. Pra, ne duam të themi disa column-- që mbani mend është një nëpër fusha, ne duam të shohim një fushë e barabartë me diçka të re. Pra, nëse ne vetëm tha përditësim Tabela 1, i vendosur emri i barabartë Elliot. Merr disa njerëz nga seksion i ri në për këtë. Por nëse ne vetëm e bëri freskimit tabelën 1 vendosur emri i barabartë Elliot, çfarë do duken si tabela pas kësaj? Njerëzit kanë ndonjë ide? Po. Audienca: Çdo gjë në atë rresht do të bëhet Elliot. SPEAKER: Çdo gjë në cilin rresht? Audienca: Në radhë të parë. SPEAKER: Në radhë të parë? Pse në radhën e parë? Unë nuk do të thotë të marr mbi ju. Audienca: Ndoshta gjithçka në të gjithë tryezë? SPEAKER: Çdo gjë në tërë tryezë, po. Dhe kjo është saktësisht e drejtë unë because-- ishte vetëm ju ndihmuar nga pak there-- sepse ne i harruar klauzola opsionale KU. Nëse ju nuk keni ku Klauzola, çfarë do të bëjë këtë komandë është ajo do të punojë me çdo rresht të vetëm në tabelë. Emri i të gjithëve do të bëhet Elliott, në thelb, cila Elliot është shumë i lumtur për. Ose Yanni, një nga dy. Por emri i të gjithëve do të ndryshojë. Pra, mënyra që ne përdorim KU clause-- dhe kjo vlen për të gjitha Wheres që janë në secilin këto gjëra të ndryshme. Pra, ju do të vëreni atë grup ka vlerë të barabartë kolonë. Dhe kështu bën KU. Por këto janë të ndryshme llojet e deklaratave. Pra, kolona është e barabartë me vlerën e në grup është në detyrë. Ashtu si ne jemi duke thënë se ne duam për të vendosur emrin e barabartë me Elliot. Por në klauzolat ku, këto janë deklarata për barazi. Pra, le të thonë se ne vetëm të kërkuar për të ndryshojë emrin e personit të Elliot nëse emri i tyre ishte Ryan, le të themi. Pra, kur themi Emri KU barabartë Ryan, që do me sukses vetëm ndryshim name-- ajo vetëm do të ndryshojë fushën e emrit në rreshtat ku fusha emri është i barabartë me Ryan. Pra, nëse do të kishim njerëz të shumta me emrin Ryan, të gjithë emrat e tyre do të ndryshojë për Elliot. Kjo është e ngjashme me shembullin e në qoftë se një linjë faji ndahet New York City dhe të gjithë duhet të të shkojë në New Haven, mënyrën se si ne mundemi bëjnë që në një deklaratë është UPDATE Tabela 1 qytetin SET = New Haven ku vendlindja e barabartë New York City. Kjo është fuqia e deklarata UPDATE. Ne mund të zgjidhni çdo numër të rreshtave nëpërmjet deklaratave të vërteta për fushat në këto rreshta. Ne nuk mund të themi grup UPDATE Tabela 1 Emri = Elliot KU rreshti = 1, përveç se ne mund të, nëse themi id = 1. Pra, ne jemi duke shkuar për jetë duke punuar me barazinë e fushave, barazia e shtyllave. Por duke përdorur fushën ID është një mënyrë për të zgjidhni rreshtave individuale në mënyrë specifike, sepse fusha ID është një unike identifikues në një bazë të dhënash SQL. Pra, si përditësimin rresht një, ID e barabartë me 1. Përditësimi rresht dy, vetëm ndryshojë këtë numër ID. Por pushteti i Shumë të KU deklaratë është se ne mund update gjëra të bazuar në atë që e tyre Vlerat aktuale të gjëra të caktuara janë. Po Elliot? Audienca: Dhe çka nëse ju doni to-- përsëri, kjo është një tjetër pyetje. Por pyetja ime e parë ishte, ku po ndodh kjo? Ku jam përditësimin kjo? A është kjo në një kod PHP? SPEAKER: Ku ju update, po. Ne jemi duke shkuar për të folur se ku e gjithë kjo ndodh lloj dikur ne do të shkojmë nëpër të gjitha komandat. Por ajo që ju duhet të e di tani për tani është në thelb që bazën e të dhënave tuaj SQL ekziston si diçka që do të arrihen nga query funksion, e cila përcakton CS50. Pra, nëse ju përdorni funksionin pyetje, ju mund të hyni në këtë tryezë. Pra, ju do të dërgojë këto urdhëron në tryezën tuaj në fotografi PHP përmes funksionit query. Ju gjithashtu mund të luajnë rreth me tryezën tuaj direkt. Dhe kjo është mënyra më e mirë për të provoni këto llojet e komandave. Dhe ne do të shkojnë nëpër saktësisht se si për të bërë këtë në vetëm pak. Pra, kjo është komandës UPDATE. Dhe pjesa tjetër e komandave do të jetë lloj i ngjashëm, duke punuar në gjëra të ngjashme. Fut në është ndoshta më të ndryshme nga UPDATE. Unë jam duke shkuar për të lënë atë deri atje për vetëm pak dhe të punojnë këtu. Pra futni në, ju do të shihni që tabela është ende e njëjtë. Ju dëshironi për të futur në. Kapitalizimi, SQL është rast i pandjeshëm. Pra, ju nuk keni për të germa këto gjëra. Sipas marrëveshjes, fjalët në të bardhë janë të kapitalizuara. Por unë gjithashtu koduar me ngjyra e tyre. Arsyeja e vetme që ju germa ata kur ju jeni shtypja e tyre është vetëm për të theksuar se ata janë konstante. Dhe kështu që ju mund ta shikoni në kapitalizimi ose fakti që unë kam me ngjyrë ata ndryshe. Pra, ne kemi marrë të futni në, le ta bëjmë Tabela 1 përsëri. Kjo është e gjitha në një rresht. Unë jam vetëm ndan atë nga deklaratat e ndryshme. Pra, mos u bëni merak për faktin se Tabela 1 e bëri atë mbi rreshtin e dytë. Pra, ne duam të futur NË Tabela 1 disa vlera. Dhe ju do të vini re opsional bit, që unë do të merrni në një të dytë. Pra, ne kemi marrë vlera. Pra, le të thonë se ne duam të shtoni Andi në tryezën tonë, sepse ne të humbasë Andi. Andi është i sëmurë. Pra, le të shtoni Andi në tryezën tonë. Mos harroni se numri i ID është përditësuar automatikisht. Kështu që e vetmja fushat ne duhet të shqetësohen për janë emri, superfuqi, dhe qytetin e lindjes. Dhe kështu mënyra që ne bëjmë atë, duke kërkuar në sintaksë tonë, është ne kemi mori vetëm një kllapa, me presje vlera të ndara, secila prej të cilave është një vlerë. Pra, nëse ne të kërkuar për të futur Andi në tonë tavolinë, të gjithë ne duhet të bëni është e drejtë Andi. Çfarë është superfuqi andi, njerëzit në seksionin andi-së? Ajo pëlqen fluturim, ose si shpejtësi, ose diçka. Çfarë ne tashmë kemi deri atje? Ne kemi CS50, fluturim, shpejtësi, dhe forcën. Audienca: Koha e udhëtimit. SPEAKER: Koha e udhëtimit, e mahnitshme. Pra, ne kemi marrë Andi, kohë të udhëtimit, dhe qytetin e saj. Kjo është një pyetje me të vërtetë mirë. New York City, nëse dikush e di. Gjithkush është nga New York është mësim për të marrë larg nga sot. Pra, kjo deklaratë do të futur, si një rresht të pestë, me kohën e udhëtimit superfuqi dhe një qytetin e New York City. Por fusha opsionale është në thelb një mënyrë të përcaktojë saktësisht që kolona ju doni të futur gjërat në. Mënyra se ne jemi duke bërë atë tani, Andi, udhëtimi në kohë, New York City, është duke shkuar në mënyrë të saktë të tonë Emri table--, superfuqi, qytetin e lindjes. Dhe në qoftë se ju të kërkuar për të bërë diçka tjetër se kaq, si thoni ju nuk e dini superfuqi dikujt, si si unë nuk e di Andi-së superfuqi në fillim. Pra, të gjitha dija ishte e saj emrin dhe vendlindjen e saj. Ajo që unë mund të bëj është që unë mund të do-- Unë do të shuaj këtë të shpejtë. Unë dua të vetëm të rinovuar kolona. Dhe ky është vendi ku fakultative Lista kolonë vjen në lojë. Unë vetëm dua të rinovuar emrin dhe vendlindjen. Dhe atëherë unë do të them vlera. Unë do të bëj Andi dhe New York City. Po të kisha lënë jashtë listën e kolonave dhe bërë vetëm këto dy gjëra, ku do të New York City kanë shkuar? Kolona e cila do New York Qyteti janë vendosur në? Njerëzit kanë ndonjë ide? Superfuqi, pikërisht. Pra, kjo do të shkojnë vetëm në rregull. Dhe një herë ai arrin fundin e lista, ajo do të ndalet vetëm të plotësojë gjërat në. Dhe vlerat që ajo do të rrinë në të gjitha shtyllat vetëm do të jetë NULL. Pra, për shkak se ne e specifikuar emrin dhe qytetin e lindjes, ne do të kemi ID 5, emrin Andi, superfuqi NULL. Pra superfuqi është një vlerë uninitialized. Ju nuk domosdoshmërisht do të marrë gabime të njëjta Shprehje qoftë se ju provoni dhe të hyni në atë. Çdo gjë do të zeroed bukur jashtë, sepse NULL është një vlerë në SQL. Kjo është një konstante. Dhe pastaj do të jetë në qytetin e New York City. Pra, kjo është INSERT INTO komandës. Para se të shkojë, nuk ka dy komandat më shumë. A njerëz kanë ndonjë pyetje në lidhje UPDATE, për të futni në, për SQL zakonisht para se të shkojë mbi copa tonë përfundimtar? Njerëzit të ndjehen mirë, të madh. E dua. Pra, le të flasim për SELECT. Shkuarja minutës UPDATE mbi këtu. Dhe zgjidhni do të jetë shumë i ngjashëm. Qëllimi i SELECT, Qëllimi SELECT në jetën është që të ju jap një bandë e shtyllave që të plotësojë disa kushte. Dhe kur them të kënaqur kushte të caktuara, Mendja juaj mund të menjëherë të kthehemi në atë KU klauzolë që erdhi në UPDATE. Dhe kjo klauzolë është pikërisht atje në SELECT. Nëse ne nuk e vënë ku klauzolë dhe ne themi emri SELECT, hometown-- shkruar se pak Emri wrong--, qytetin e lindjes NGA Tabela 1. Nëse ne vetëm të themi se, çfarë SELECT do të na japin është ajo e do të na japin një double-- një tryezë, në vend. Një koleksion të dyfishtë në qoftë se ne jemi të menduarit në lidhje me PHP shqisat. Por kjo është vetëm do të na japin një array dyfishtë e dy emrit columns--, dhe qytetin e lindjes. Dhe kjo do të injorojë ID. Dhe kjo do të injorojë superfuqi. Dhe kjo vetëm do të na japë çdo rresht i vetëm i kësaj tryezë. Pra, nëse ne vetëm futur Andi, ne do të kemi Andi. Dhe ne do të kemi katër origjinale. Nëse ata kanë qenë të përditësuar, që do të të reflektohet, e të tjera, e të tjera. Pra, kjo është sepse ne nuk e përdorin klauzolë ku. Por ne mund ta përdorin atë në pikërisht të njëjtën mënyrë kemi përdorur atë në UPDATE. Në qoftë se ne duam vetëm një tabelë e emrave dhe kompetencat super e njerëzve që jetojnë në Nju Jork, ne mund të ekzekutojë një deklaratë si emri SELECT, superpower-- Unë jam vetëm duke shkuar për të lënë that-- NGA Tabela 1 KU qytetin = New York City. Pra, kjo shkon për të treguar se ju mund të merrni kolona krejtësisht të ndryshme, dhe pastaj kolonat që ju nuk jeni madje duke u kthyer në pikën ku. Ne nuk duam as qytetin e lindjes e të gjithëve. Por ne duam emrin dhe superfuqi e njerëzve vendlindja e të cilit është New York City. Pra, kjo është diçka që ne mund të bëjë me ku Klauzola është që ne mund të merren me kolona që ne nuk domosdoshmërisht duan përsëri. Në të njëjtën mënyrë në UPDATE, ne mund të merren me kolona që ne nuk domosdoshmërisht duan për të rinovuar. Ne mund update qytetin e të gjithëve i cili është emri është Sam, për shembull. Ne mund update qytetin e kushdo ID cilit numri është 2. Pra, vetëm update qyteti i rreshtin e dytë ku ne nuk duhet të merren me e domosdoshme pyetja e zakonshme. Dhe Delete është, si ju do të presin, fshini nga Tabela 1. Dhe pastaj ne kemi marrë edhe një klauzolë ku. Pra, ne mund të themi se ku id = 1. Fshij rreshtin e parë. Dhe DELETE gjithmonë do të fshini një rresht, ose ajo do të fshini disa numrin e rreshtave. Fshini nga tabelë ku vendlindja = New York City do të fshij të gjithë në New York City. Kjo është në qoftë se ka pasur një fatkeqësia e papritur tragjike dhe ju vetëm të kërkuar për të hequr secili nga tabela që jetonte në një qytet të caktuar që u godit nga murtaja. Le të pushoni në paqe. Këto janë katër komandat SQL që ju do të duhet të përdorni. Ju nuk mund edhe nevojë për përdorimin e tyre të gjithë. Por këto janë katër që CS50 ju pret të jenë të kënaqur me të shkojnë në dy quiz 1 dhe gjithashtu pset7 dhe pset8. Ka vetëm që tryezë përsëri. Në këtë, superfuqia Roy ka është përditësuar për të laser beams, të cilat është një shembull unë nuk e përdorin. Unë nuk e di që një Roy preferon, por forca. Roy ka një superfuqi të forcës. Katherine nuk e ka bërë atë sot. Kjo është për të ardhur keq. Por ajo ka shpejtësi super. E pra kjo ishte PHP. Para se të flasim për MVC, bën dikush ka pyetje në lidhje me PHP? Tani SQL, ose PHP nëse ju papritmas duhet të dalë me një pyetje në lidhje me PHP? I madh. Të gjithë të drejtë, ne jemi të vendosur të gjithë pastaj. Pra, flasim pak për kontrollorët Model Shiko, le të kthehemi në disa e gjëra në pset7. Pra, çfarë Model Shiko kontrollues is-- unë nuk jam duke shkuar për të ruajtur ndryshimet e mia të identifikoheni sepse unë plotësisht therur atë. Por në thelb ne kemi dy gjëra të ndara në vazhdim e sipër. Ne kemi një publik Lista e cila përmban kodi që do të ekzekutohen dhe faqet e internetit që do të vizitohen. Dhe ne gjithashtu kemi këtë shikime directory. Dhe pikëpamjet përmban templates. Kjo është ajo që funksioni render-- pamë bëjnë funksion në një bandë të kodit PHP që CS50 ka shkruar tashmë për ju, që merr në parametrave të caktuara. Çfarë që kodi është duke bërë është ajo që po ndodh në pikëpamjet, të cilat janë grupe të si Kodi HTML prewritten, dhe kjo është futur vlerat në vende të caktuara. Kjo është se si kur ju shkojnë në CS50 Financave, e njëjta header është në çdo faqe. E njëjta footer është në çdo faqe. Kjo është për shkak të rrugës që bëjnë vepra është ajo do të automatikisht patch në atë kokë dhe shikues të cilat ju mund të gjeni në pikëpamjet. Ne fakt mund të shkojnë në kokë, dhe shikoni, kjo është një skedar HTML me një kokë. Ajo mori disa stili. Ju nuk keni nevojë të shikoni në CSS për pset7 nëse ju nuk doni të. Por ju mund të modifikoj ata në qoftë se ju doni, bëni Financë tuaj duken pak më ndryshe. Ajo ka disa PHP në header pak për të parë në qoftë se ka një titull tjetër ajo duhet të vënë në këtë kokë. Por vetëm disa Scripts tjera, dhe lidhjet, dhe gjëra të tjera. Kreu përfundon, trupi fillon, dhe Oops, ne kemi këtë pazakontë pak fund. Dhe ka një div, ashtu si një lloj çrregullt i elementit që ka një ide të mesme. Dhe pastaj kur ne shohim futboll, ne kemi fundin e një div. Kemi poshtme, e cila është ku teksti futboll është. Fundi i div, në fund e trupit, fundi i HTML. Pra, çfarë bëjnë është duke bërë po bëjnë është lloj i patching up header, një skedar PHP ndryshme që do të përmbajë gjërat aktuale që ju do të shihni, si tavolina juaj e rezervave në qoftë se ju jeni duke blerë ose shitur aksione. Dhe atëherë ajo do të shtoni në futboll. Dhe modeli pamje Ideja kontrollues është që ne duan për të ndarë si gjërat duken nga kodi. Është e ne duam për të ndarë frontend dhe backend, ku frontend është sende që përdoruesi sheh, Nicës visuals-- HTML, CSS, gjëra të tilla si kjo, imazhe, e të tjera. Dhe backend është PHP. Ky është kodi që ju shkruani. Kjo është ajo ku kodi që është bërë operacionet aktuale. Kjo është kur ju jeni duke shtuar një aksioneve në tryezën tuaj, kur ju jeni duke blerë dhe shitjen, kjo është backend. Dhe ne mund të, siç e patë, përfshirë PHP direkt në HTML. Pra, ajo që ne mund të kemi bërë për kjo detyrë është vetëm e kishte një skedar HTML për çdo faqe, si login. Dhe pastaj në atë faqe, vetëm kishte një bllok të madhe të kodit PHP, duke përfshirë të gjitha kodit që kjo faqe në mënyrë specifike do të ketë nevojë. Dhe pastaj ne mund të kemi bërë që për portofolin. Ne mund të kemi bërë të gjithë të blerjes dhe shitjen brenda faqeve individuale. Por sepse ne jemi duke e bërë veçmas nga ku ne jemi me shkrim backend Kodi, ne lehtë mund të ndryshojë mënyrën se si gjërat duken pa duke ndryshuar çdo skedar të vetëm. Ne bëjmë gjëra të tilla si vetëm të shtoni një div i ri në fund of-- Përshëndetje unë modifikuar futboll. Ju mund të bëni vetëm stuff like that. Por gjithashtu, ju mund të ndryshojë tërë paraqitjen vizuale pa ndikuar çfarë është duke shkuar në backend. Dhe ju mund të ndryshojë tërë backend dhe ende kanë atë të duket tamam si ajo e bëri më parë. Kjo Është ideja e Model Shiko kontrollues. Dhe kjo është në fakt një paradigmë imponuar në disa nga gjuhët e programimit ju mund të dëshironi të përdorni për projekte finale. Nëse ju bëni të zhvillimit IOS, ata kanë pikëpamje, e cila është ajo që ju shihni në iPhone, dhe pastaj Backend si si një gjë e veçantë. Ju mund të mendoni për një pak. Nuk është një shumë e binare në shkenca kompjuterike, e cila është qesharak, sepse çdo gjë është në binar. Unë nuk e kam planifikuar atë. Kjo ishte një lojë fjalësh paparamenduara. Po, lojë fjalësh jo qëllim. Por si fotografi .H dhe fotografi .c, ka një shumë e ndarjes së gjërave që ne nuk mund të kenë nevojë. Pra, ne vetëm mund të redaktoni fotografi h, ose dikush mund të shikoni vetëm një fotografi .H dhe e di pikërisht funksionet që janë në Dosja .c pa domosdoshmërisht ditur zbatimi i tyre. Kjo ide i komponentëve ndan që varen nga njëri-tjetri por lloj mund të hyni në njëri-tjetrin përmes kanaleve të ndryshme, kalimi e variablave, vetëm përfshijnë deklarata, gjëra si se, ky parim ndihmon për të krijuar aplikacione që mund të jetë më lehtë redaktuar nga njerëzit të shumta, mund te ndryshohet më të lehtë ose modifikuar në një shkallë të madhe, dhe janë më të lehta për korrigjoj në shumë mënyra. Të vërtetë të shpejtë, unë kam disa këshilla për pset7, që unë do të bëjë ekran të plotë kështu që ju nuk vetëm duke kërkuar në the-- tippee Tip Tip. Nuk janë aq shumë këshilla. Por unë përmendur PHP është e vështirë të korrigjoj. Të dyfishtë dhe trefishtë kontrolloni atë. Nëse kodi juaj nuk është vetëm duke treguar deri në faqen e, kjo është ndoshta një gabim PHP, sorry. Ju kurrë nuk duhet të shikoni në CSS në qoftë se ju nuk doni të. Por sapo të keni mbaruar, ajo mund të jetë një gjë e vogël e bukur e bukur për të vetëm të shkojnë në dhe bela me parametrat CSS. CSS dhe HTML janë një shembull i një modeli Shiko kontrollues stil diçka që është shumë, e drejtë? Ju mund të keni tags stil brenda elementeve të HTML. Por në qoftë se ju lloj kontraktimi me ta në CSS, ata janë të lehtë për të redaktuar, dhe të luajë rreth me, dhe të argëtohen me. Treat ndihmëtar CS50 funksionon si kutive të zeza. Ju nuk keni nevojë të dini saktësisht se çfarë veti e bën, por me besim atë për të gjithmonë të bëjë të drejtën gjë në varësi të asaj që ju të kalojë atë, gjëra të tilla si kjo. Dhe unë do të rekomandojë shikuar walkthrough Davidit, duke kaluar nëpër të gjitha sende, jo vetëm todos, por ju me të vërtetë mund të trajtoni këto kuti si zeza. Mos shkoni në këto Funksionet në kërkim të mete. Dhe të mirëpritur kthimin i Zamyla tonë sundimtari. I madh. A ka ndonjë pyetje përfundimtare para ne lloj kërcej për ditë? Jam unë ende jetojnë? I madh. Njerëzit hi Livestream. I madh. A ka më pyetje? Nuk ka? Dhe atëherë unë mendoj se ne jemi mirë për të shkuar për sot. Unë do të rrinë rreth një grimë të vogël mbas kësaj, në qoftë se njerëzit kishin pyetje ata kishin frikë ta pyesnin në lumë. Por përndryshe, të ketë një ditë të mirë.